The game's vision had one line I thought was settled: "Monsters live outside the gate, and people live inside it." The village was the safe place.
Then, on 18 October, while asking the agents how to make Brackenmere feel less like a to-do list, I wondered aloud: "Should we have little attacks on the village? Should there be orcs in the village? I don't know, like other things."
The kids overrule the vision
None of the three AI designers I asked wanted a fight in the square. One suggested goblins nicking turnips at the village edge, two wanted danger kept beyond the gate, and the consolidated proposal recommended the edge, adding that it changes a vision line and "only he can decide".
So I asked for "a .html file to show this to my 8yr old, interactive, so he can see what he thinks". One question on that page was whether goblins should ever come to the village. His answer, as I typed it back: "Yes! Goblins run INTO the village and I fight them there."
That settled it. The vision gained a sentence: "Now and then a few goblins come over the wall after the turnips, and the hero sees them off." But one rule from the proposal stayed: nothing timed, missed forever or punishing. A raid would never damage the home, take gold or items, or cost a run.
The first raid, 18 October: four goblins trot in from one road. Nothing on screen says a raid has started.
The first raid
I went AFK with a short instruction: "You are the orchestrator. Let's build." The raid was one of thirteen pieces. A bell rings, people shout and hurry indoors, goblins run onto the sparring green, and you fight them there. If you fall, you wake in the square with everything you had, and Garrick sees the goblins off.
A fall loses nothing: "Restored at the square with all your items."
The worry was the frame rate: the village was already the most expensive place in the game, so the plan wrote a number down first.
Under the hood The limit was +1.0 ms over the same spot without a raid. The first timing was not conclusive: the noise was about ±4 ms on a machine that was not quiet, and one run had the raid cheaper than no raid. It was recorded as not conclusive rather than written into the baseline.
The next morning I asked: "What is the raid re-timing?" The cheap fix would have been to switch off the goblins' shadows. I said no: "I want it to be realistic, so I don't want them not to have shadows. But if there's some kind of savings we can make here, then yes, let's definitely explore that." The agents found one in the sun's shadows, so the raid now costs about two thirds of a millisecond on High, shadows kept.
Under the hood Characters near the hero no longer draw into the far shadow map, since the sun reads it only at its edge. Separately, each goblin's sword was four meshes, so four goblins added 19 draw calls; merging the sword took that to 7.
"NO goblins yet?"
Then I played it. The first try failed for a dull reason: the raid switch in the address worked only in test mode, so the agents added one that starts a real raid after some play.
The second try failed for a better one. With goblins on the green, I had questions: "When a raid is happening, how do I know it's happening and how do I know I finished the raid? I thought there'd be a few different goblins from different directions coming in. Is that not true? And where do they run to? ... What do I get for finishing a raid?"
The honest answer: the raid worked and the player could not tell. I said build all the agents' fixes, and kept adding. A goal: "if they've got a goal, could they actually succeed and run away?" A clock: "Be fairly generous with it so the user can kind of succeed fairly easily at first, but at least that gives it some urgency." And a pointer, because "the user might not know where they need to go to find the goblins".
So the goblins got three ways in and something to want: the turnips. When the clock runs out, whoever still holds a turnip gets away with it, and the thanks follow how it went.
A raid you can see
I walked it again and sent a punch list. The arrow "is just swaying all over the place all the time... It just going left to right, left to right, and I was just walking in a straight line." The goblins were "completely standing still and not facing me... moving goblins are more fierce than a non-moving goblin." Markers floating over their heads "look really weird", so they became rings on the ground. And the raid's counter belonged in the quests: "It's almost like a temporary quest."
19 October, same spot: the raid takes the first quest card with its clock, and the goblins come from three directions with rings under them.
One more round. The arrow still swayed, and "it was quite off-putting when I was on the green attacking". It now points at one spot for the whole raid and hides when you get there. And I wanted the ending to be a person, not a pop-up: "I think it would be better if Garrick spoke to you saying 'Well done, and here's your reward, etc.'"
Under the hood Garrick's thanks are six recorded lines in a voice cloned from his own, 557 characters in all, played once and only when you were there.
"Every one stopped, your first time." The first raid driven off also gives the turnip sack, a trophy for the wall.
What I took from it
The first version met every line of its plan, passed review and verification, and still felt broken. The plan described the raid from the town's side: a bell, shelter, a fight, a reward. Nobody had described it from the player's.
The other lesson was about the vision. It is a list of choices, and my kids can win an argument with it. What survived was the part that mattered: it is still a kind place, and you cannot lose anything by being brave in it.
Where Brackenmere stands
On 19 September Brackenmere was 90 lines of canvas: a lane, four house plots, a gardener and a gate. A month later it is a streamed village whose people keep their own weeks, a generator that builds adventures, and a family server. And goblins come over the wall for the turnips.
Two branches are not on main yet. The same day I asked about cheating: "right now I can change the URL to just be like maze equals castle... which means I wouldn't walk there." And: "We don't want a URL to be shared that someone could kind of just paste into their network request to get a good item." I wanted it "really secure", and the agents began making the server check every gain and every journey.
That afternoon I started this blog, asking the agents to read back through the history so it would read "like a learning exercise". Writing it has been one too.