Brackenmere / dev log

Posts Building Brackenmere

Immersion: a world that answers the hero

One quiet night I asked the agents to research what makes game worlds feel real and build it in three independent rounds: the hero's touch, a world that lives, and places that tell stories. Then three more rounds paid for it, and my own play the next morning found the rough edges.

G30 6 min read

How shall I tell it?

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 treasure chest in the hedge maze, its lid up, warm light and motes rising from inside and gold coins spilled round it 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 village green in snow, the same walk before and after: on the left no marks, on the right a line of prints behind the hero 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 his anvil in the forge yard, arm raised mid-swing, the forge glowing behind him, with the hero standing on the cobbles 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.

The same chest a moment after opening, before and after: on the left the lid flat open and coins already out, on the right the lid rising with light inside and no coins yet 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.

Inside the Apothecary, with the place's name written large across the top of the room and Tilly and Mother Agnes by the counter 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.

The hero on a dirt lane at night, before and after: on the left two glowing yellow blobs at the hero's feet, on the right a faint dark puff 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.

By the night of 14 October the computer had nothing to do, so I gave the AI helpers a job I couldn't have drawn on paper. I asked them to look into what makes game worlds feel real and build what they found. Not realistic graphics, but the little touches and reactions that pull you into a world. Then I stepped away for the night.

A treasure chest in the hedge maze, its lid up, warm light and motes rising from inside and gold coins spilled round it A chest in the hedge maze: the light comes first, then the gold.

Three teams, one foreman

I wanted three separate rounds of ideas, each working on its own so they'd come up with different things. One helper acted as foreman, making sure no two rounds did the same job. Each took a theme: the hero's touch, a world that lives without you, and places that tell stories. They started by reading about how much-loved games do it, and wrote down one rule: every effect belongs in the world itself, never confetti stuck on the screen.

The hero's touch

The world now answers the hero's body:

  • Standing still, the hero breathes and glances at things nearby they can use.
  • Hedges and reeds bend and rustle as you push past.
  • Things you pick up arc into your bag.
  • A soaked hero shakes off the rain under cover.
  • Feet leave marks: dust when you start running, ripples in the ford, and prints in snow that fade.

The village green in snow, the same walk before and after: on the left no marks, on the right a line of prints behind the hero The same walk across the snowy green. Right: now you leave footprints.

A world that lives

Things now happen whether or not you're watching. Bram swings at his anvil, and people chatting take turns to talk and listen. The chapel bell rings the hours and a cockerel crows at dawn. A cat and a dog go about their day, moths gather round lamps at night, and chimneys smoke when someone is home.

Bram at his anvil in the forge yard, arm raised mid-swing, the forge glowing behind him, with the hero standing on the cobbles Bram at work in the forge yard.

Places that tell stories

Opening a chest is now a little moment: it rattles, the lid swings up, a warm glow rises, and only then does the gold spill out.

The same chest a moment after opening, before and after: on the left the lid flat open and coins already out, on the right the lid rising with light inside and no coins yet Half a second after opening. Left: before, the gold was already out. Right: now the light comes first.

When you arrive somewhere new, its name appears once. Shop doors ring a bell and the keeper says hello. Torches flicker near a hidden door, so you sense the secret before you find it. And dead ends in the mazes now hold little scenes, like an abandoned camp or a card game left half played.

Inside the Apothecary, with the place's name written large across the top of the room and Tilly and Mother Agnes by the counter Walking into the Apothecary: the name appears, then fades.

Keeping it quick

The next day three more rounds made the game run faster without removing anything or changing how it looked. Entering the village, for example, got noticeably quicker.

Then I played it

I sat down and played, and came back with a list. Two were about the new touches. The hedges rustled whenever you were near them, even just walking alongside, so now they only rustle (more quietly) when you walk into them. And at night I saw glowing yellow footprints. They were actually the running dust puffs, shown at full brightness whatever the time. Now they fade with the daylight.

The hero on a dirt lane at night, before and after: on the left two glowing yellow blobs at the hero's feet, on the right a faint dark puff Running at night. Left: the "yellow footprints". Right: now barely there.

And one note was just: "Smith needs a hammer." Bram had been swinging at his anvil with nothing in his hand.

What I learned

Asking for research rather than a list of features was the best decision of the night. I'd have asked for footprints. I'd never have thought of a chest that makes you wait. And none of it was finished until I played it myself.

Building Brackenmere

G20 5 min read

Far tiles and tree cards

The valley I had just laid out was 448 metres across and you could not see the other side of it. In a day the agents drew the far land as baked tiles and the middle distance's trees as cards: the view opened up, but the frame time I hoped it would fix barely moved.

Building Brackenmere

G18 6 min read

The village becomes a streamed region and Kit Yard retires

On 3 October the village moved onto the open-world engine without a single building moving, and Kit Yard, the test hamlet, was retired. The proof was boring on purpose: every village test passed without changing what it checked.

Building Brackenmere

G15 7 min read

Streaming an open world: chunks, paths and haze

Over three days the agents built the groundwork for Brackenmere as one seamless, ever-growing valley: chunks that stream in round the hero, a test square kilometre, people who can walk across it and haze instead of fog. The real faults were found by walking it, not by the tests.