Brick & Mortar

Devlog

How we made Brick & Mortar

Built with Claude, Blender and Unreal. Every step, written down.

An open, behind-the-scenes diary of building an original LEGO strategy game with Claude (Claude Code and a team of subagents), Blender and Unreal Engine 5. What worked, what broke, and who decided what.

Start from day oneRSS feed

Written afterwards from our project notes and commit history; dated to when the work happened.

Latest posts

· 4 min

The serious part

Why a vibe-coded game still needs lockstep fingerprints, a 71-test suite, bot play-testers and real friends on real PCs - including a bug only their machines could find.

· 4 min

What vibe coding gets wrong, and how we caught it

The honest failure list from five weeks of directing Claude - invented "done", an 8,280-line line-ending commit, overwritten files, stale notes and determinism bugs - and the check that caught each.

· 4 min

Vibe coding Unreal Engine 5 in C++ without a team

The build, test and capture loop that lets one person and Claude work on 120,000 lines of Unreal C++ - the scripts, the headless test runs, the launch flags and what breaks.

All 27 posts

  1. The serious part - determinism, tests, bots and friends

    · 4 min read

    Why a vibe-coded game still needs lockstep fingerprints, a 71-test suite, bot play-testers and real friends on real PCs - including a bug only their machines could find.

    vibe-codingtestingdeterminismplaytestshipping

  2. What vibe coding gets wrong, and how we caught it

    · 4 min read

    The honest failure list from five weeks of directing Claude - invented "done", an 8,280-line line-ending commit, overwritten files, stale notes and determinism bugs - and the check that caught each.

    vibe-codingclaudefailuresprocesstesting

  3. Vibe coding Unreal Engine 5 in C++ without a team

    · 4 min read

    The build, test and capture loop that lets one person and Claude work on 120,000 lines of Unreal C++ - the scripts, the headless test runs, the launch flags and what breaks.

    vibe-codingunrealclaudetestingprocess

  4. Vibe coding Blender - scripting LEGO models, cameras and review boards

    · 4 min read

    Every unit in the game is a Python script that places LEGO parts in Blender. How we drive it with Claude, how a model is checked against a reference, and what failed.

    vibe-codingblendermodelsclaudeprocess

  5. How to vibe code a real game with Claude - the ten rules that worked

    · 4 min read

    One person, Claude and 2,240 commits in five weeks. The ten habits that kept a vibe-coded game from falling apart, with the numbers and the scars behind each one.

    vibe-codingclaudeagentsprocesstokens

  6. From a trailer clip to a Big Battle - plan, build and proof in one day

    · 5 min read

    On 24 October a trailer battle became a game mode on paper and, a few hours later, a battle you can launch from a command line. The plan, the phases, the models, the costs and what is not done.

    vibe-codingbig-battleplanningclaudetokens

  7. Where we are today, in numbers, and what is still open

    · 3 min read

    Thirty-two days after the first commit, an honest snapshot - what exists, what has been proved and what has not, and the plan from here.

    statusnumbersroadmap

  8. The brand kit and this website - built from code, no trackers

    · 4 min read

    How the logo suite, the colours and this website were made - a human-approved logo as the source, a brand kit drawn by scripts, and a static site that rebuilds in seconds.

    brandwebsitetooling

  9. Filming the real game - a fixed-step recorder and a queue of 4K takes

    · 4 min read

    How we capture trailer footage from the game itself - a recorder that steps in exact frames, a CSV queue that runs overnight, battles that repeat exactly, and the takes we threw away.

    trailercaptureunrealdeterminism

  10. Juice - bricks that scatter, buildings that assemble and a pixel counter that caught us

    · 4 min read

    What we added to make the game feel good to play - brick scatter, kill streaks, wave-clear banners, a boss moment and a build-assembly effect - and how we proved it changes nothing in the simulation.

    juicevfxgame-feeltesting

  11. Seventy achievements, a fake Steam and the friend build

    · 4 min read

    Achievements that watch the simulation without touching it, 70 brick-shaped badges drawn by code, a Steam lobby layer tested without Steam, and the audits and crashes on the way to a build friends can play.

    achievementsmultiplayersteambuilds

  12. Balancing 50 levels with bots that play them

    · 4 min read

    The wave generator was a first guess. Three bot players with different skill levels played every level, we tuned until the middle one could win 36 of 50, and we learned what a bot cannot tell you.

    tower-defensebalancebotstesting

  13. How the story came together - a writer role, five versions and a handbook with a blank page

    · 4 min read

    Who wrote the campaign, who decided it, how it changed from version two to 4.2, what we cut, and how a running joke about a naval handbook ended up in three cutscenes.

    storywritingclaudevoice

  14. Cutscenes - Unreal puppets, then Grok Imagine, then DaVinci

    · 5 min read

    We tried to build the cutscenes inside the game with LEGO puppets, then chose AI video for them and assembled everything in DaVinci Resolve. What each cost, what each gave, and a plain statement that the clips are AI-generated.

    cutscenesgrokunrealdavinciai

  15. One mission at a time - the mission maker and the bots that test it

    · 4 min read

    How a written mission script becomes a playable level in one agent run, why every mission is proved by a bot before a person plays it, and what broke.

    campaignclaudeagentstesting

  16. Fifty levels from a generator, and the week's rules for agents

    · 4 min read

    Tower Defense went from one prototype level to a 50-level, six-chapter plan in a week. A wave generator wrote 1,910 waves in a day; Opus-versus-Sonnet rules kept the cost sane.

    tower-defenseclaudeagentsdesign

  17. What the AI did, what it did not, and where the humans decided

    · 3 min read

    A plain inventory of every AI tool used on Brick & Mortar - code, models, images, video, voices and music - and the decisions that stayed with a person.

    aihonestyprocess

  18. The navy arrives - and the explosion that burned the sea bed

    · 3 min read

    Ships need water that behaves like water. A one-screenshot bug report led to a rebuilt water layer, new projectiles and a scripted fleet battle we could film.

    unrealnavywatervfx

  19. Dress the map once - baked PCG scenery, snow and a honeycomb we did not want

    · 3 min read

    We stopped planting the forest every time the game loads, baked it with Unreal's procedural content tools instead, and spent a day teaching snow to look like snow from a drone camera.

    unrealpcgsnowperformance

  20. Where the trees, shrubs and scenery came from

    · 4 min read

    A plain list of where every kind of scenery in the game comes from - public-domain elevation data, CC0 scans, free library plants, and our own LEGO - with the licences and the mistakes.

    assetslicencesunrealphotoreal

  21. The documents ate the budget - tokens, a ledger and a compactor

    · 3 min read

    Our own notes grew by 148 per cent in two and a half days and every agent was reading them. What that cost, and the role we invented to fix it.

    claudetokensprocess

  22. Two PCs, one simulation - lockstep, determinism and a 64-bit fingerprint

    · 4 min read

    How an online match works when only your clicks cross the internet, the sixteen places our code could have disagreed with itself, and the first real match with a friend.

    unrealmultiplayerdeterminismtesting

  23. The model review loop - reference boards, a camera solver and a rig audit

    · 3 min read

    How we check LEGO models against reference photos with a script, and how a rig-audit script found 20 rigging mistakes in 113 models in one pass.

    blenderlegoqatooling

  24. Hiring a team of agents - a CEO, specialists and a one-page rulebook

    · 3 min read

    On day five the one big chat became a small company - a CEO role that never does the work and specialists that each own their own files.

    claudeagentsprocess

  25. Making the ground real - why only the LEGO is stylised

    · 3 min read

    Three days of terrain - a procedural mesh, a rewrite as a real Unreal Landscape, real elevation data for the maps, and grass that finally looked like grass.

    unrealterrainart-direction

  26. Scripting LEGO in Blender, part one - the brick kit

    · 3 min read

    How a Python script turns the open LDraw parts library into game-ready models, and the bugs it produced on day two.

    blenderlegopipeline

  27. Day one - an empty machine, a spec and 8,000 uncompiled lines

    · 4 min read

    How the project actually started - what was on the PC, what we installed, what Claude wrote before the engine existed, and what broke.

    setupclaudeunreal