I redrew my map of Brackenmere on 3 October. This post is about what happened underneath it that same day, which was less visible: the work the new map was waiting on.
By then the open-world engine worked, but only on the proving ground, a test world. The village, the place my kids actually play, was still built whole at load time, with every spot in it written down as a number.
The village as a streamed region on 3 October, with the keep on its crag on the horizon for the first time.
Where it started
On 30 September I had asked for the village to stop being a test bed, and asked the awkward half of it too: "whats the idea on doing this, removing the old brackenmere and old kit yard etc". My one condition: "Nothing we've done is to be thrown away, just ported over".
The agents broke the open world into numbered specs. I wanted to see the whole road: "Whats spec 2, 3, 4 and 5? SHould we be holistic in all this and plan everything upfront in detail then let agents work through systematically after". Spec 5 was the port, in three parts: 5a, 5b and 5c.
Then I stepped away: "I am AFK now so any future issues or decisions go with you recommendation so we get it built." Every plan would go to a Codex reviewer first, and "if critical survives 3 rounds, take the last round and start building... Dont park". Spec 5a alone carries sixteen rulings "made on Nick's behalf while he was away".
The morning of 3 October
Usage was running high that week. "Don't worry about my usage. Just carry on in the best way." Then I asked for a gut check: "Whereabouts exactly are we in all of this game building end to end?... as a kind of gut instinct from you? I know you won't know everything."
The orchestrator guessed "about a third of the way to a playable V1", with the new map at about 10%: "The village isn't on it." I handed the map work to a separate agent ("Shall we do this on another agent?... so we don't confuse you as the orchestrator of it all?"), told the orchestrator "please do push as you go", and the port started.
5a: names, not numbers
The spec's audit was blunt. The save did not know where the hero stood, and the tests set the hero down at written-out coordinates, position.set(8.5, 0, 12) for "on the cobbles". Move the village and every one of them breaks "for a reason that has nothing to do with behaviour".
So 5a gave every spot a name. Worlds declare anchors, tests say goTo('bakery'), and a code rule stops a village test importing the layout. The save now remembers where the hero stood in a region, with one firm rule from the spec: "the hero must never open inside a wall". A spot that does not fit opens at the spawn instead.
Under the hood Before 5a, 23 test and script files imported the village's layout constants. Afterwards a code rule kept them out of the village's browser tests and shot scripts, so the village can move without rewriting them.
5b: inside eight milliseconds
5b was about what an area can carry: house doors, hedges, the windmill. The limit was the streaming budget: no more than 8 ms of a frame spent bringing a chunk in on High, 6 ms on Low, or the hero feels a stutter.
The first measured walk blew straight through it. A hedge, then a house door and the windmill, were each built in one go, so the fix was to build them in steps: the windmill a course of boards at a time, the door's textures painted a band at a time.
Under the hood Worst streaming update on the proving ground walk, High, cold: 85.3 ms on the first run, 6.4 ms on the fifth.
That morning a separate piece built a far landmark: a keep on a crag, meant to sit on the village's horizon.
5c: the port
5c's goal was strict: "Today's village, unchanged in layout, becomes a streamed region." Same URL, same coordinates, every door and anchor landing on the same spot. Success meant "the village's browser tests pass with no change to what they check". The whole-world village builder was then deleted.
Left half before the port, right half after, same camera. The point was that nothing moved.
It was not free. The old builder had merged every fence post and gate into one mesh per material, and the region at first drew each piece on its own. The ground lookup was slow enough to break the budget in snow. And the look review found the market stalls had vanished: each stall hid its stand-in when its model arrived, and the stand-in turned out to be the whole stall.
Under the hood Merging the fences again took the village from 839 draws to 553 on High. Fixing the ground lookup took the worst update on the village walk from 11.9 ms to 5.2.
That evening I told the orchestrator: "lets let open-world-5c-build to finish, then lets pause there. Get that to a nice stopping point and let me know, dont start anything after that." Usage was at 88%, and it gave the port the remaining room "since it's the step that unblocks your map".
Then I wanted to see it: "can I take a look at the working world so far somehow?" It started a server from the work in progress, with a caveat: "It's still today's village layout, now loaded as a streamed region; your redrawn map comes in the next spec."
The visible change was the sky. The village swapped its old fog for the haze, so the edge of the world became distance instead of a wall.
Market Row before (left) and after (right): the same street, with a horizon behind it.
Kit Yard retires
Kit Yard was the hamlet the agents built on 26 September to test the kit. By October it did three jobs: a showcase, a cheap open-sky world for tests, and the only horizon in the game. The catalogue page already showed every piece, the village could host the sky tests, and the haze had replaced its hills.
Kit Yard on its last day, 3 October.
So it went, and its buildings stayed in the catalogue for the new map to place. The one thing that existed nowhere else was the stream, and because I had said nothing was to be thrown away, it moved into the kit as water/stream, laid across the proving ground under a stone bridge.
The same stream as a kit piece on the proving ground. The blind reviewer called it "a concrete gutter".
The blind art review scored the port 4.65: the village views in line with earlier reviews, the open ground far lower. Most of its broken list was already on main: right-angle ruts, a square with ruler edges, a village sitting in an empty field. The port had not made it worse, only easier to see.
What I took from it
Names over numbers was the real win. With a new map about to move the village, every relayout would have been a test rewrite without it.