Brackenmere / dev log

Posts Building Brackenmere

Village life: 22 new people, their weeks and how they walk

In one day Brackenmere went from fifteen people in a village of empty houses to thirty-eight with homes, trades, bedtimes and a week of named days, and they stopped walking like chess pieces. The surprise was how empty the old village really was once the agents measured it.

G31 6 min read

How shall I tell it?

The night before, the agents had spent three rounds making the world answer the hero. On the morning of 15 October I asked for the same again, aimed at the people:

"I want you to do this kind of process again, i.e. three independent rounds each using superpowers, subagent driven with their own review rounds, etc. on village life... I think we could do with some more characters. There's obviously quite a lot of houses dotted around, there's farmers, there's all this kind of stuff, and I think we should try and create a slightly more engaging busy Brackenmere."

"That's after performance," I added; those rounds were still running.

Peg and Hal by the washing stones on a Monday, with washing on the lines behind them Washing day at the mere: Peg Lathom and Hal by the stones, with the washing pegged out behind.

An empty village

"They don't have to be part of story quests, but they can have their own dialogue of what they're doing. Yeah, just more activity." I wanted to know "what do they do? How do they move around? You know, their schedules if you will. And is there like certain days they do things?"

And: "Let's give everyone a character. Like, maybe someone likes to go to the inn to drink, maybe someone goes to bed early... it just adds to that whole immersion of more of a buzzing busy village life."

Before building, the agents counted. The village drew about forty homes nobody lived in, and four of its fifteen people were nameless stallholders. Then they ran a week of the town with no graphics. Outside festivals, nobody chose to spend time in the square. One person went for a stroll in eight days. On a Monday morning, three people were drawn in the whole village. Agnes, who is seventy-one, was drinking at the Arms late at night.

That probe set the tone for all three rounds: not more simulation, but a day you can read.

Three rounds side by side

Each round had its own worktree, Opus owner and reviewer, and the three plans agreed a contract before anyone built.

Who lives here. Twenty-two newcomers: elders like Nan Greave the sexton, farm households, a laundress, a ratcatcher, four children, Nance the carter, and the traveller I'd asked for: Madoc the pedlar, up the high road every second Thursday with news of far places. Much was already waiting. The lore had sixty-three proposed folk, and most of their greetings were recorded on 9 October, when I'd said, "Let's create greetings for all the characters and any future ones as well." Walk past Peg at the stones now and she says something about the wash.

Under the hood Seven new Meshy bodies, four of them children, cost 287 credits. The other twelve newcomers share existing folk bodies, each with its own fixed tint so no two look alike.

Their days. Everyone got a time to rise and retire, and habits with hours. Stardew Valley's lesson was that a town feels alive when each person has a home, a trade and a weekly rhythm, so the week now has names. Monday is washing day, Thursday market day, Friday music night at the Arms, Sunday chapel. Rain sends people under the porches. Children do chores, play chase on the green, and go home at dusk.

Market row at midday on a Thursday before village life Market day before: a few browsers and the stallholders.

Market row at midday on a Thursday after village life The same camera after: named stallholders, the lamplighter, the ratcatcher and the ranger among the browsers.

Under the hood All of it is data in the headless town, and the bodies never feed back into it. A game day of the town now costs about 3.5 ms against 2.8 before, and the town ticks once every 20 real seconds.

How they move. This was the part I cared about most. The immersion rounds had given the hero a lean, and "people kind of like lean a bit before start walking. That stuff I really like. So rather than they turn, they walk, they turn, they walk, it should look a little bit more realistic and fluid. Obviously we can get so far with Meshy and the animations they give. So some of this will be programmatic."

I wanted more: "maybe they bend down to pick something up. Maybe when they're talking, they don't just stand there still. They just move the arms or nod the head." And age: "Maybe old people walk slower than a young kid might be able to run a bit more. And maybe there'll be a group of kids."

Borrowing from Reynolds' steering behaviours, people now follow a point a little way along their path, ease in and out of every stop, and lean into turns. Elders stoop, children run. Talkers gesture while listeners nod, and people sit, carry baskets and wave to friends in passing.

Four of the village children at play on the green Monday afternoon: Moll's gang playing chase on the green.

Playing it while it was built

Mid-morning I asked for "a branch freeze on a new worktree so I can play the game after last nights immersive and performance work". My list that came back had two notes for the people. "Smith needs a hammer when doing this." And: "When 2 people are walking the same way... They are in unison, their walk speeds should vary and maybe walk and chat together... this may be part of the worktrees already in motion."

Both went straight into the running rounds: a hammer in Bram's fist, a pace and stride for each person, and friends who fall in beside each other. By the afternoon I had a fresh freeze "for my kids to play on for feedback".

What the checks caught

A separate verifier played the merged village: fourteen people at the Arms' tables on music night, seventeen in chapel on Sunday. Two of six checks failed. Some pairs straggled a metre or two apart, and the first rigged villager to load after the world opened compiled a shader mid-play, which the game's rules forbid. An integration piece fixed both that evening.

The Bracken Arms on a Friday evening before village life The Arms on a Friday evening, before.

The Bracken Arms on a Friday evening after village life, busier and with people seated The same camera on music night after: the room filling, Lob Hatherley seated at a table.

The bigger town also outgrew a save limit I'd set. Asked whether to keep the larger limit or change the save format, I said, "Town budget is fine."

Under the hood The town's save grows with the square of the head count, because every pair of people has a relationship. With 38 people it reached about 170 KB after sixty game days, over the 150 KB limit I'd set in September, so the limit rose to 224 KB.

Two days later

Not everything showed up on day one. On 17 October I noticed that "some of the characters are walking around like zombies with their kind of arms up... rather than natural gait. One of those people's Old Nat, for instance." A shoulder load had been playing a two-handed carry, so arms stuck out before an empty chest.

And the dog: "when I looked at it, its legs were moving, but it wasn't moving... It kind of looked like it was moonwalking." I had been standing in its way. Animals now walk only as far as they actually move.

Bun up on the roof of the well in the square Market day in the square, and Bun Shaw, seven, has climbed the well.

What I took from it

The probe mattered more than the research: a week with no graphics showed an empty square I had walked past for days.

Keeping the bodies out of the town's decisions let three rounds run side by side: who people are, when they do things, how it looks. Playing a frozen build between rounds caught what the plans had missed.

After making the world answer the hero, I wanted the same for the people. There were lots of houses dotted round the village, and I wanted a busier, more lived-in Brackenmere: more characters, each with their own habits. Someone who likes a drink at the inn, someone who goes to bed early.

Peg and Hal by the washing stones on a Monday, with washing on the lines behind them Washing day at the lake: Peg and Hal by the stones, with the washing pegged out behind.

An empty village

Before building anything, the AI helpers counted. About forty houses had nobody living in them, and some of the fifteen villagers didn't even have names. Then they ran a week of village life behind the scenes, with nothing on screen. Hardly anyone went to the square. On a Monday morning there were three people in the whole village. And Agnes, who is seventy-one, was drinking at the inn late at night.

Who lives here now

Twenty-two newcomers moved in, including:

  • elders like Nan Greave, who looks after the churchyard
  • farming families, a washerwoman and a ratcatcher
  • four children
  • Nance the carter
  • Madoc the pedlar, who comes up the high road every other Thursday with news of far places

Many of them already had greetings recorded, so walk past Peg at the washing stones and she'll say something about the wash.

Their weeks

Everyone now has a time to get up and go to bed, and habits through the day. The week has a rhythm: Monday is washing day, Thursday is market day, Friday is music night at the inn, and Sunday is chapel. Rain sends people under the porches. Children do chores, play chase on the green and go home at dusk.

Market row at midday on a Thursday before village life Market day before: a few shoppers and the stallholders.

Market row at midday on a Thursday after village life Market day now: much busier, with the lamplighter, the ratcatcher and the ranger among the shoppers.

How they move

This was the part I cared about most. People used to turn, walk, turn, walk, like chess pieces. Now they lean into turns and ease in and out of stopping. Old people stoop and walk slowly, and children run. When people chat, the talker moves their hands and the listener nods. People sit, carry baskets and wave to friends.

Four of the village children at play on the green Monday afternoon: Moll's gang playing chase on the green.

When I played it, I noticed two people walking side by side in perfect step, like soldiers. Now everyone has their own pace, and friends fall in beside each other. Bram also finally got a hammer in his hand.

The Bracken Arms on a Friday evening before village life The inn on a Friday evening, before.

The Bracken Arms on a Friday evening after village life, busier and with people seated Music night now: the room filling up, people sitting at the tables.

Two days later

Not everything showed up straight away. Some villagers, like Old Nat, were walking like zombies with their arms stuck out, because they were carrying something invisible. And the dog was moonwalking: legs going, not moving, because I was standing in its way. Both are fixed.

Bun up on the roof of the well in the square Market day, and Bun Shaw, aged seven, has climbed onto the well.

What I learned

Running a week of the village with nothing on screen mattered more than any research. It showed me an empty square I had walked past for days without noticing.

Building Brackenmere

G11 6 min read

The living town, written overnight

I gave the agents my biggest brief yet, a town of people with back stories, memories and gossip, told them not to ask me anything, and went to bed. By morning Brackenmere had sixteen characters, four running stories and a simulation that could live through months in a unit test.

Building Brackenmere

G37 6 min read

Four rooms, built from the pictures I sent

I sent the agents an isometric picture of the inn I wanted, then three more for my home, the Forge and the Apothecary. All four were rebuilt in one evening. It took a second day, and my complaint that the inn felt stale, to make them warm.

Building Brackenmere

G35 6 min read

A world, not a to-do list: the village changes because of you

I played Brackenmere end to end and found an errand chain: talk, fetch, return, repeat. Three AI designers diagnosed it independently, my son voted on their ideas, and by the evening every quest left a mark on the village.