Why ASSIMILATE is deterministic (and why you should care)
Same seed, same inputs, same run — byte for byte. The engineering constraint that gives us shareable replays, fair daily leaderboards, and a test suite that catches balance drift.
Every run of ASSIMILATE is a pure function of its seed and your inputs. Play the same run twice and the simulation produces byte-identical results.
What that buys players
Replays as links. A finished run compresses to a short code — anyone can watch your exact run, because their machine recomputes it. Fair dailies. Everyone's daily run is the same seed with the same modifiers; the leaderboard measures decisions, not luck. Trust. No hidden rubber-banding, no server-side dice.
What it costs us
Discipline. The renderer may never write into the simulation; every visual system — gore, terrain evolution, cinematics — reads snapshots and keeps its state on its own side of the wall. A "golden test" pins six seeded runs byte-for-byte in CI, so a stray floating-point reorder or an accidental sim read fails the build before it ships. It is the strictest rule in the codebase, and the one we would never trade away.
engineeringreplaysfairness