A fighting game with my two characters, and where its 42 hours went
One Claude Code session and 130 agents built Storm Bell Fighter, Jefrie against BloodTailor, in Godot. The code, menus, AI, sound and web build ran on stand-in capsules within an evening. The two fighters took another full day of modelling, animation and review before they reached the game. You can play it below.
One Claude Code session built a complete 1v1 fighting game of my two characters, Jefrie and BloodTailor, in 42 hours. Everything except the characters was working on stand-in capsules by the end of the first evening. The two fighters took the next full day, and they were the only thing still missing when I asked if I could play it.
It’s called Storm Bell Fighter, after the place Jefrie lives. It’s Godot 4.7, three rounds, a CPU at three difficulties, two-player on one keyboard, training mode and a move list. It’s playable here:
What I asked for
I didn’t write the build prompt. I asked Claude to write one for an ultracode session, with this brief: “The purposes is to test out what can already be done with my character’s and current pipeline to build a game that would be easy for you to make.” I said I’d play it for about 20 minutes and never develop it further, and told it to aim the graphics at something it could actually polish. It wrote a 2,600-word prompt: Godot for the game, Blender through the Blender MCP for the 3D fighters, ComfyUI for the 2D art, no Higgsfield, and cloud sessions for anything that didn’t need my machine. Then I told it to follow its own prompt, and to put the finished game on this site.
The same fight, four times
The fight simulation is deterministic, so one command replays the same match: CPU Hard against CPU Hard, seed 7. The session ran it at each stage of the build to record gameplay. The first three clips below are those recordings. The fourth is the same command, re-rendered this morning for this post from the finished build. The first 20 seconds of each, playing together:
In the first two, six seconds in, the counter reads the same 2 hits for 138 damage. Only the art changed. By the third, moves had been retuned in between, the same exchange does 165, and the fight starts to drift.
Where the time went
Asks for the prompt:
do whatever you can in cloud sessions and for what you cannot, do here.
First commit: a design doc and an art-to-code contract, the bone and animation names both sides would build against.
Five "cloud" agents running: core, effects, menus, audio, web export.
A full fight playable on capsule stand-ins, 69 minutes after the first commit.
Notices the "cloud" agents had all run on my laptop. Cloud isolation wasn't available on the account.
game is running slow btw.
Menus batched from 674 draw calls to 36; graphics tiers and a shader warm-up added.
BloodTailor's third-round model in Blender. Jefrie's animations start 25 minutes later.
The real stage replaces the placeholder. Last code commit of the day.
is it ready for me to play yet?
The answer: playable,but the fighters are still stand-ins.
BloodTailor's finished model goes into the game. Jefrie's follows at 23:43.
Jefrie's readability pass: her grin, armour and trousers redone so she reads at fight zoom.
Final QA: 75 findings, 53 confirmed, fixes committed through 07:45.
Last fix pushed.
The game is finished.
The code agents were done with nearly everything in one evening. Their notes also account for why the fighters weren’t. Each one went through modelling, three critics, fixes, 39 animations, an export and then animation critics with their own fix rounds, and all of that ran through the one Blender instance on my laptop, one job at a time. Jefrie’s first animation review found her tail jumping about 2.3 metres on takeoff and her cape rendering black in the game.
The two fighters
BloodTailor had no 3D model before this. The art agent tried TRELLIS.2 on the front of his reference sheet first. It got the cloak’s volume and his proportions, blurred the grin into the texture, made his hair one solid mass and welded the cloak to his arms. The agent kept it only as a proportion reference and built him from scratch in Blender with Python.
Two things it left for me: Jefrie’s grin (pointed teeth, the hooked mouth line) and how light BloodTailor’s iron plate should be. Both are canon questions, and it treated them as mine.
The QA pass
Once the session thought the game was done, it ran one more workflow: five critics looking for problems independently, a skeptic checking each finding, one agent fixing the confirmed ones and a final regression check. They found 75 problems, 3 of them blockers. Skeptics confirmed all 53 they checked, and the other 22 were polish that went straight to the fixer. One blocker was particle effects drawing yellow, white and green garbage over the fight before they had emitted anything. The automated tests, 40 of them with 317 checks, were all passing with that bug in the build.
At the end: 41 tests and 331 checks passing, and Jefrie winning 51.0% of 400 CPU-Hard matches against BloodTailor. The web build is about 22 MB with every file under Cloudflare’s 25 MB limit, helped by a smaller Godot web template the session compiled from source.
What it cost
The session made 12,590 model requests across its 130 agents, all Opus 5.5, about $1,730 at API list prices by the time it called the game finished. Most of the 4.5 billion tokens were cached context being read again. The three workflows split it roughly as $916 for the 54 agents of the main build, $125 for 5 integration agents and $288 for the 60 in the QA pass.
I asked for a game I could learn in one sitting and put down. The agents built the game part of that in an evening. The part that was mine, the two characters, is still what takes the time, even with a finished game waiting for them.