The empty box that wasn’t nothing: proving a save can hold what it doesn’t use yet

← All field notes

A save file can’t tell an empty container from an absent one on its own. Both come out looking like nothing, unless someone writes the code that tells them apart. Before the game could track any of its off-screen animal populations for real, that was the box we had to solve first: not what goes inside it, but what it means for a save when there’s nothing there yet.

What the empty half already proves

The empty-versus-absent problem, and how the store was made to save byte-for-byte the same as before, is told elsewhere on the site. The fast checks confirmed that much and passed. What they couldn’t reach is what follows.

The half nobody had watched run

There was one thing those checks couldn’t reach. All three ran as fast, isolated checks — call a function, hand it a value, read back the answer — and that’s exactly what they’re good at. But the code that carries a loaded, populated record through the game’s own startup sequence only runs inside a full boot of the game world, assembling a real scene in the right order before there’s anything to check at all. No fast check can enter that far.

That left two small hand-off points, the exact moments the record passes from one system to the next during startup, genuinely unproven. They read correctly on inspection. Nobody had ever actually run them.

A scene built only to prove it

So we built one. A dedicated test scene boots the game’s real startup and level-loading sequence end to end, the same full path a player’s machine runs. Into that boot we fed a store already carrying a made-up population record, with numbers distinctive enough that nothing else in the project could produce them by accident. If the wrong data ever turned up downstream, there would be no mistaking it for something else’s. The record travels through the real hand-off points, gets saved, gets reloaded into a fresh copy, and every field is checked against what went in.

A full boot has to actually run before this counts as proven. There’s no shortcut that stands in for having watched it happen.

It’s slower than the checks that run dozens of times a minute elsewhere in the project — a real scene has to assemble itself before anything can even be asked of it. But that weight buys something the fast checks structurally can’t: a witness. It added nothing a player would ever notice. Its only job was closing the gap the isolated checks couldn’t reach.

Nothing about this changes what a player sees today. The feature this store belongs to still ships off, and every existing save still looks precisely like it did before any of this landed. What changed sits underneath: a save file that used to only have to prove it could hold nothing now has to prove it can hold something too, and for the first time, we watched it do both, instead of just trusting it looked right.

Keep reading

Concept art · pre‑alpha