Rewrite¶
The Python + raylib implementation and the native Zig port reproduce Crimsonland Classic v1.9.93. Both have live gameplay and deterministic replay tooling. Native behavior is established from the executable and recovered source; passing port regression tests alone does not establish parity with the original.
Start with setup, coverage and scope, or Zig build and tooling.
Architecture and contracts¶
- Module map: package boundaries, screen ownership, and runtime components.
- Deterministic session: live/replay tick order, input, and presentation.
- Run startup: shared initialization, native capture boundary, and terrain RNG.
- Perks architecture: explicit effect phases and ordering.
- Rendering pipeline and terrain: drawing and decal application.
- Local multiplayer: the ¾-player extension to native ½-player behavior.
- Netplay: deferred scope and requirements for a replacement.
Parity work¶
- Original bugs: intentional fixes and
--preserve-bugsbehavior. - Float policy and precision map.
- Trace contracts and CDT format.
- Differential playbook and evidence records.
- RNG caller mapping.