Where it came from
Brackenmere started as a conversation, not code. On a Sunday in September I sat down with my son and typed: "We've got an idea for a game. I'm going to give you a kind of brain dump between me and my son of all the things we're thinking about... I don't want you to build anything yet."
It was huge (eras, a growing town, families over generations), but one idea sat in the middle. "The maze would be part of the world that we live in. So, for instance, maybe early on, it's like a farmer's patch, and you're going through all their field to collect things." Every adventure would be a maze you walked to, not a separate level.
My son set the tone for combat: "My boy thinks we should keep it simple. The computer just does it for you. So if I'm attacking and maybe if I move forward and attack, it decides to go under legs to look cool."
Six days of questions
The agent asked questions one at a time and we answered them. On how dark it should get: "I don't want it to be too frightening, but I want it to be kind of Dungeons and Dragons style level. I don't mind an 8 year old playing it." On the very first quest: "something like finding a lost dog... or finding a mole that's been bothering a garden... something very easy and friendly and welcoming."
By the fifth day we were defining gem-socketing specialists, and I pulled us out: "I think we're spending too long trying to define every single little mechanic of the specialist here." That same morning I changed how the questions came: "for all the rest of the questions can you give me options (1, 2, 3 etc...) and I can just type the number. Also say the recommended route."
On the Saturday morning I ran out of patience: "Moving forward, can you just ask us some core high-level questions? And then I want you to go with all your recommendations... This kind of Q&A is taking a long time." Two answers from that round set the course. "I'm not going to handcraft every single maze. That should just be procedural driven." And: "We haven't got time, this is only me and my son, to be fully involved in all the aspects. There's going to be a lot of AI generated stuff, either in the game or pre-game."
The greybox
That afternoon I asked for something to look at: "I'm wondering whether to create a very simple isometric corridor / village to walk down so we can start to nail down the way it works and feels. Can work on detailed textures and stuff later on."
Minutes later the first commit landed. You can still open it from disk and walk around.
The first commit, opened from disk: a lane, four house plots, Mara the gardener and the old gate. "Day 03" was already in the corner.
It is a 2D canvas in fake isometric: a lane, houses so thin they read as rugs, and Mara the gardener, who says "The old gate leads to the garden paths." The brain dump in miniature.
Under the hood The whole first commit was 90 lines across three files: a canvas, a game loop and a stylesheet. No framework, no build tool, no models.
Within the hour: Three.js
Then: "What tech stack are we using? I'll probably end up with a Laravel backend as I know it, but front end are we using Three.js? Something else?" We settled on Vite, TypeScript and Three.js, and I was impatient: "Can we spin up 3 concurrent agents to work on this more quickly? Let's go." One built scenery, one movement, one the HUD, with a root agent integrating. The plan ended with something I want in every plan: a runtime verification list, each check marked PASS with evidence.
The same lane rebuilt in Three.js, later that afternoon. Every model here is procedural geometry.
Under the hood The rebuild was 23 files and about 2,200 new lines. The verification notes counted 558 draw calls for that little square.
A sword and an orc
Next came a HUD, a sword and a practice dummy, then: "Create one orc to test it against, and have them attack / defend as well. Let's see how health works with it." Tailwind went in for the interface, and the first Playwright test landed with the sword.
The sparring ground and the first HUD. An orc and the training dummy stand in the square.
"A bit Duplo looking"
A detail pass gave the hero a procedural body with a cape and articulated joints. I put it next to my reference pictures: "Let's get one character right at a time. Let's work on the hero / me. It's a bit Duplo looking. I want more realism." My next reply stopped that approach altogether: "Nope, I want more realism, more textures etc. Shall I do a meshy.ai or something? I don't think basic shapes are going to get to the level we need."
So I made the hero in Meshy and learned rigging as I went. The agents imported him with a study page to preview each animation. I asked for him bigger and darker-skinned, then for "warmer, more tanned skin". The agents did the tint in the shader so the original model stayed untouched.
The procedural detail pass. The hero is the small figure in the middle.
Less than an hour later: the rigged hero and Gorak, the orc sparring partner.
Under the hood The rigged hero was a single 23.8 MB GLB with 28 bones and six animation clips.
Gorak arrived with his own animations, then Spiger: "This is Spiger, another evil character, uses his claws, no weapon. Let's add him in and see how he moves." In the same breath I asked the question that turned animation into combat: "How does our hero change his attack type etc, and Gorak, is it just random when I hit space?" The answer became combos, a heavy attack and a parry. The agent checked the strike pose on every bone, then added that this "does not approve the artistic grip or swing." The machine checks behaviour; the taste stays mine.
The evening: people and houses
Later that evening I turned to the villagers: "When you go speak to someone, can it show on the left us, and then the person we're speaking to on the right, and the text in the middle, like a zoomed in conversation." Elsie the baker and Tobin the merchant were my Meshy models, and soon they were strolling round the square. My tree models replaced every procedural tree.
The first conversation. "Fresh from the oven! Come and warm yourself by the bakery."
Then the houses: "Let's now work on giving the houses a bit more texture and interest. The roofs can use overlapping tiles for instance, and the walls some texture." The agents detailed one house and the spec said to "stop for first-house review before rollout". I approved it, and a few minutes later every house had it. My last instruction of the night, about Bram, the last procedural villager, was three words: "Remove that guy."
The first detailed house, shown to me before anything else changed.
After the house rollout: what stood at the end of day one.
Under the hood Day one was fifteen commits in under eight hours, ending with 19 Playwright tests passing.
What I took from day one
- Talk before you build. A week of questions with my son gave the agents a game to aim at, not just a scene.
- Make the questions cheap. Numbered options with a recommendation turned a slog into quick decisions.
- Detail one, approve, roll out. I'll keep working this way.
- Make the agents prove it runs. A PASS/FAIL list ends every plan.
- Speed is cheap; structure is not. Day one was fast and rough, and that was fine.