Sculpted ground that survives a save: proving a replayed hill is the hill you made

← All field notes

Once you can raise, lower, soften, and roughen the land, a quiet question follows you home: when you close the world and open it again, where did your reshaping go? The honest answer was uncomfortable. We never save the carved ground at all — and if we’d done nothing else, every load would have politely erased your work.

The land you never saved

Here is the fact that makes terrain shaping awkward, and it’s worth stating bluntly: the terrain is not a file. There is no carved-stone snapshot of your world sitting on disk waiting to be loaded. The land is grown fresh from its seed every time the world opens — the same seed always grows the same hills and the same valleys — and the saved life, the plants and creatures and soil, is layered back on top. That keeps saves small and is the spine the whole project rests on. But it has a sharp consequence the moment a god can lay a hand on the ground.

If the world rebuilds itself from seed, then a hill you raised by hand has nowhere to live. A literal snapshot of the changed voxels was deliberately never written. So a freshly loaded world would come back as pristine, untouched ground — every ridge you carved and every hollow you dug quietly reverted to the procedural land the seed first grew. Do nothing, and the save undoes you on every open.

The terrain rebuilds from seed on load — so a hill you carved by hand has nowhere to live unless we remember the carving, not the carved dirt.

The answer is to treat each sculpt as a remembered deed rather than a saved result. The four shaping verbs — raise, lower, soften, roughen — are recorded as a replayable list of acts, and on load, after the land has finished rebuilding from its seed, those deeds are re-applied in order, in a single pass, through the very same machinery the live edits ran through. The carved hill comes back not because we photographed it, but because we kept the recipe and did the carving again. That this is one application of a broader idea — remember what you did, not what it did — is a sibling’s story: remembering what you did, not what it did. What I want to follow here is narrower and, frankly, harder: making the replay land the exact same terrain, every single time.

The replay has to be bit-for-bit, not close enough

“Re-do the deeds” sounds easy until you notice that “close” is not good enough. If a replayed hill came back a hair taller, or a slope softened a touch more than you left it, the world would feel subtly wrong on every load — a place that doesn’t quite remember itself. The deliverable was never “the edits replay.” It was “the edits replay identically.”

Three of the four verbs are obediently deterministic: raise this column by this much, soften this slope by this amount. Feed them the same parameters onto the same freshly-grown land and they produce the same ground, full stop. The troublemaker is roughen. It scatters small random bumps across a patch, and randomness is the enemy of a faithful replay — draw the bumps from an ordinary roll and the reloaded terrain roughens a little differently every time you open it.

So roughen doesn’t roll fresh dice. Its randomness is drawn from the world’s own seeded source — the same deterministic stream the terrain itself is grown from — keyed to the world seed and the exact in-game moment the edit happened, which is recorded right there in the log of deeds. On reload, that same random stream is rebuilt from the recorded timing, and the identical bumps fall in the identical places. You get back the precise patch you roughened, not a plausible cousin of it.

A soft voxel hillside at golden hour where one patch of ground has been roughened into small scattered bumps, standing out against the smoother wild slopes around it.Concept art · pre‑alpha
A roughened patch — its scattered bumps fall in exactly the same places every time the world reopens.

Proving it on the real path

A claim like “it replays identically” is worth exactly nothing until you’ve checked it on the real save-and-reload path — and proving that the replayed hill is bit-for-bit the hill you carved, by reading the ground back voxel by voxel and demanding exact equality across two separate launches, is a whole story of its own, told by the proof that only runs in a window. What that proof leans on is the persistence trick this post is about: there is no saved hill to compare against, only a seed and a log of deeds, replayed onto fresh ground.

The detail that bites: when the replay is allowed to happen

One subtlety nearly made all of this inert, and it’s the kind of thing you only learn by running the path. Voxel edits need a live render context to actually take — the land isn’t truly editable the instant a save is read. Replay the deeds a moment too early, before the world is fully present, and the edits silently do nothing: no error, no complaint, just flat untouched ground where your hills should be.

So the replay deliberately waits. It runs as a single pass on the first frame after the world has finished loading — late enough that the terrain is live and real, early enough that the player never sees the pristine land flash before their edits arrive. Once is enough: one walk through the recorded deeds, in order, and the landscape you left is the landscape you’re looking at. (The record those deeds replay from has its own subtlety about being restored early in startup, which belongs to a sibling.)

There’s a small dividend in being strict about the deeds, too. An edit that can’t be afforded, or isn’t allowed, is rejected cleanly — no cost is charged, nothing is written to the log, and the land is left exactly as it was. Because the record only ever holds edits that genuinely happened, the replay never has to second-guess what it reads. The history is true by construction, so re-running it is safe.


The bug the test dragged into the light

Wiring up terrain replay did one more thing we didn’t plan for: it forced the first honest, end-to-end save-then-load-then-look exercise of the whole chain, and that exercise tripped over an older, quieter defect — the log of past deeds was being written to the save file but never read back in on load. It had been silently broken for a while, which meant earlier powers weren’t really persisting either. The full story of that leak, and the one-step fix, belongs to its sibling: the power that reset itself on load. The lesson it left on our side of the fence is the one this whole post turns on.

A feature merely reported as working is just a hope until it’s been exercised on the real save-and-reload path. We could have read the replay code, reasoned that it was correct, and shipped a world that erased itself on every load — the code on both ends looked fine. What caught it wasn’t a sharper reading. It was a reading-back: pulling out a few hundred voxels after a full round trip and refusing to accept anything but an exact match. A sculpted hill that survives a save isn’t a thing you argue your way to. It’s a thing you prove, one voxel at a time.

One companion piece — painting different soil types onto the land — we set aside on purpose, waiting on a design decision about how soil types should work, so it isn’t part of this. What shipped is the quieter promise underneath: you can lay your hands on this world, close it, walk away for a season, and come back to find the ground exactly as you shaped it. You don’t win here. You tend — and the land keeps the shape of your tending.

Keep reading

Concept art · pre‑alpha