Brackenmere / dev log

Posts Building Brackenmere

Goblin raids, kept forgiving

My son voted for goblins running into the village, so the game's one safe place got a fight. The first raid worked in the tests and meant nothing to a player; it took my own walk on the green, a few dictated paragraphs and a day of fixes to make it a raid you notice, can win and can never really lose.

G36 6 min read

How shall I tell it?

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 village green during the first raid, 18 October 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.

The hero wakes in the square after falling in a raid 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."

The raid as the first quest card, with its clock 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.

The end of a raid, with Garrick's thanks and the rewards "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.

Now and then a few goblins come over the village wall after the turnips, and the hero has to see them off. A bell rings, villagers hurry indoors, and you fight the goblins on the green. But it is still a kind game: a raid can never damage your home, take your gold or cost you anything.

The kids overrule the plan

The village was meant to be the safe place, with monsters kept outside the gate. I had written that down as a rule. Then I wondered aloud whether there should be little attacks on the village.

My AI helpers were careful: none wanted a fight in the square, and changing the rule was my call. So I had a little interactive page made to show my 8 year old. One question asked whether goblins should ever come into the village. His answer: "Yes! Goblins run INTO the village and I fight them there."

That settled it. One thing stayed from the careful version: nothing timed that you miss forever, and nothing that punishes you. If you fall in a raid, you wake in the square with everything you had, and Garrick the guard chases the goblins off.

The village green during the first raid, 18 October The first raid: four goblins trot in from one road, and nothing on screen tells you a raid has started.

The hero wakes in the square after falling in a raid Falling costs nothing: you wake in the square with all your things.

"How do I know it's happening?"

Then I played it, and I had questions. How do I know a raid has started? How do I know I've finished? Where do the goblins run to? What do I get for it? The raid worked, but as a player I couldn't tell.

So it changed:

  • The goblins come from three directions, and they want something: the turnips.
  • There is a clock, generous enough that a child usually wins, but enough to feel a bit urgent.
  • When time runs out, any goblin still holding a turnip gets away with it.
  • An arrow points you to the fight, and rings on the ground mark the goblins.
  • The raid shows up as a quest, with its clock, while it lasts.

I walked it again. The arrow swayed all over the place and the goblins just stood still, so both were fixed. And I wanted the ending to be a person, not a pop-up, so now Garrick thanks you himself, in his own voice.

The raid as the first quest card, with its clock The next day: the raid is the first quest with its clock, and goblins come from three directions with rings under them.

The end of a raid, with Garrick's thanks and the rewards Garrick's thanks. Your first raid also gives you a turnip sack to hang on your wall.

What I learned

The first version did everything the plan asked and still felt broken. The plan described the raid from the village's side: a bell, people hiding, a fight, a reward. Nobody had imagined it from the player's side.

And the rules I wrote for the game are just choices. My kids can win an argument with them. What survived is what matters: it is still a kind place, and you can't lose anything by being brave in it.

A month in

A month earlier Brackenmere was a lane, four house plots, a gardener and a gate. Now it is a living village, and goblins come over the wall for the turnips. That afternoon I started this blog.

Building Brackenmere

G34 6 min read

Renown that matters: I reverse the vision

The first version of Renown gave my kids a rank, a title and a Book of monsters, and kept my own rule that the hero's health never grows. A day later I shot up four levels without getting any stronger, and asked for levels that really mean something.

Building Brackenmere

G33 6 min read

Combat for kids who love fighting

My kids told me fighting was their favourite part of Brackenmere, and that it was dull. In one day it became a one-button fight with five moves you discover by playing, a maze full of easy monsters, and a slow-motion kill cam that a research agent had warned me against.

Building Brackenmere

G39 6 min read

The quest ledger, and five worlds finally joined up

Brackenmere had five worlds that no quest sent you to. I asked for the quest ledger to be redrawn as a map, sent it to two AI reviewers to play it in their heads, and the agents built the chapter that threads those worlds into the story: the Five Stones.