By the night of 14 October every panel in the game spoke the same picture-first language, and the machine had nothing to do. So I asked for something I could not have drawn on a mock-up.
"The machine is quiet. Let's do 2 things." The first: "Let's go through the world, do research into computer game effects, tricks, what makes worlds more 'real' and let's implement what we find." I was clear about what I did not mean: "I do not want to go hyper realistic in terms of graphics, but the touches, the interactions, the game effects that immerse a user into the world." The second, once that was done: "let's run performance tuning and tweaks."
Then I pasted my usual note for going away, which ends "I want to return to the finished result, with only genuinely unavoidable decisions left for me", and stepped away.
A chest in the hedge maze after the night's work: the light comes first, then the gold.
Three rounds that could not see each other
I wanted three rounds, "each one independent of each other, so they can come up with their own solutions and thoughts." But I also told the root agent: "You are the orchestrator so you need to ensure they do not overlap and carry out the same things." I left the method to it: "I will let you decide on the best way of doing all that."
It gave each round a lens: the hero's touch, a world that lives without you, and places that tell stories. All three started from the same commit, researched on their own and wrote a plan. Root then read the plans side by side and ruled on who owned what: round one got the water, the puddles and the flight of a coin.
The research is the part I enjoyed reading. Each plan opens with references: Steve Swink's Game Feel (polish never changes the simulation), Astro Bot's "everything reacts", Ghost of Tsushima's single wind that every system reads, Red Dead Redemption 2's prints in snow, Zelda's pause before a chest gives up its treasure, and Tunic's secrets you sense before you can reach them. Round three wrote down the rule: every effect is diegetic, with "no screen-space confetti".
I had also handed over a budget: "I authorise the use of OpenAI up to $10, and any and all Meshy credits that I have on my account, if either of those are needed."
Under the hood All three rounds together made 32 ElevenLabs sound effects and bought 8 animation clips from Meshy's library for 24 credits. OpenAI was not used at all: the footprint is drawn on a canvas in code.
The hero's touch
Round one made the world answer the hero's body. Standing still, the hero breathes and glances at whatever can be used nearby. Hedges and reeds bend away and rustle, pick-ups arc into the bag, and a soaked hero shakes off the rain under cover. Feet leave marks: puffs of dust on a running start, rings at the ford, and prints in snow that fade after about 20 seconds.
The same walk across the snowy green. Left: before that night. Right: after round one.
A world that lives
Round two was about things that happen whether or not you are looking. The town simulation already chose what each person was doing; now that choice reached their bodies. Bram swings at his anvil, and people chatting take turns to talk and listen. The chapel bell tolls the hours and a cockerel crows at first light. A cat and a dog have their own day, moths gather round the lamps at night, and chimneys smoke when a household is home.
Bram at work in the forge yard, which the street can see.
One item was honestly not built: lanterns swaying in the wind. The village had no outdoor hanging lanterns, and its lanterns were single meshes whose flames would have come away from their cages. The round recorded that rather than faking it.
Places that tell stories
Round three gave thresholds and treasure their moment. A chest now rattles, its lid swings up with a little overshoot, a warm glow rises from inside, and the gold spills only once the lid is up.
Half a second after opening a chest. Left: before, the gold is already out. Right: after, the light comes first.
Arriving somewhere new, its name inks in once. Shop doors ring a bell and the keeper says hello. Torches near a hidden door gutter in its draught, so you sense the secret before you find it. Generated adventures got small scenes in their dead ends: an abandoned camp, a card game left mid-hand.
Walking into the apothecary: the name arrives once, then fades.
Paying for it
The next morning I asked "still going?", then "what were the changes made in the 'immersion' rounds we did?" The performance rounds were meant to need a quiet machine, and I was not giving them one: "I'm about to jump on a zoom call now, so performance measurements may be off." An hour later: "Machine is clear, can do performance benchmarking."
The rule for the three performance rounds was that nothing new could be removed and nothing could look different, proved with pixel comparisons and geometry checked bit for bit. Some first attempts failed honestly: one way of skipping matrix work cost exactly what it saved, and was replaced.
Under the hood In the hedge maze the frame was the hedges' shader, not their triangles: the same 3.4 million triangles drew in 5.6 ms with a plain material against 18.4 ms. Making the open-sky shaders skip weather work that comes to nothing took the maze from 18.4 to 11.8 ms on Retina High. Entering the village went from 12.6 to 9.6 seconds.
A read-only verifier then checked every feature in the real game, across all 13 worlds at High and Low: 27 PASS and one FAIL, the lanterns.
Then I played it
Late that morning I asked for "a branch freeze on a new worktree so I can play the game after last night's immersive and performance work." Half an hour later: "Right, I've got a list of feedback from that frozen worktree/branch that I was playing."
Two were about the new touches. "Hedge moving noise a little too loud, only use if walking 'into' it, not alongside it." The hedge had answered whenever the hero was close, whichever way they were going. Now it rustles, more quietly, only when the hero walks into it.
The other: "Footprints at night time are weird here, like way too yellow. I wouldn't really see them at night." They were not footprints. They were the running dust puffs, drawn at full colour whatever the hour. Puffs and prints now darken and thin with the daylight, as the smoke and butterflies already did.
A running start at night. Left: the "yellow footprints" I saw. Right: after the fix the same puff is barely there.
A third was two words: "Smith needs a hammer." Bram had been swinging at his anvil empty-handed.
What I took from it
Asking for research rather than features was the best decision of the night. I would have asked for footprints; I would not have thought of a chest that makes you wait.
Independent rounds only worked because someone could say no. Three agents researching one brief will reach for some of the same things, and the root agent's ruling on who owned what kept them out of each other's files.
And none of it was finished until I played it. Every number passed, and I still found a yellow glow at night that nobody had looked for.