I built a mobile-first, turn-based creature-battler in Godot 4.6 — players collect procedurally generated chimeras assembled from five independent part slots, and fight them in a type-advantage battle system. Status: parked, for one specific reason. In my words: the tech and game engine are fully functional and tested; it's only currently on hold until I find a good automated system for making 2D art.
The project started in October and November 2024 as a toy with no business case. LEGION, my company operating system, first appears in dated records about five months later, in March 2025. The toy came first, and that order matters.
It is entirely because I was messing around with making a toy that I developed the skills necessary to build the advanced machinery I later developed.
Battle math in a spreadsheet first
I designed and balanced the damage formula, agility bands, type chart and part stat budgets in a spreadsheet before I touched Godot. The technical design document states its values were "derived and verified against the original spreadsheet prototype." That spreadsheet-first discipline was then specified precisely enough for Claude Code to implement the battle engine and cover it with headless tests.
That habit — verify the math against a known-good source before asking an agent to write any code — started here.
What it taught me about prompting
Two prompts I wrote for this project in 2024 show the pattern that later became standard in my LEGION sessions.
November 2024: "You are the Product Manager for a video game called Chimeria. Your task is to create stories for the development team to follow… Ask questions until you are 95% certain you have the information you need to create a development roadmap."
October 2024: "I had planned on starting my project by developing the 'Chimera Gen' system to create chimeras for the purposes of testing future sections of the game." And: "I currently have all of these components in a spreadsheet, and intended to import that information as a .csv file."
The "95% certain" phrasing reappears in my LEGION chats in April 2025. Briefing an AI as a product manager and making it ask questions before it plans matches how my sessions open in 2026 — from a written brief, PRD or roadmap.
The same "ask until you are 95% certain" prompt shows up again in my LEGION sessions in April 2025.
Session tooling: which direction it moved
The project's later session-prompt-and-timer apparatus was created on 20 and 21 March 2026, four to seven days after LEGION's own equivalent files were dated 13 through 16 March. The tooling moved from LEGION into the game, not the other direction.
On 20 March 2026, an autonomous Planning → Execution → Refinement → Execution chained sprint sequence took the engine's test count from 651 to 1,725 in a single day. The sprint ran unattended; I reviewed the output after it finished.
What the toy project taught me was the working method — specify in prose, verify the math against a known-good source, make the agent prove it with tests, keep state in files the agent can read back. That method was learned here before it had any business application. The session apparatus itself came later, once LEGION existed to export it.
Where this sat against the industry
In March 2025, when I first tried to build LEGION, OpenAI released the Responses API and Agents SDK on 11 March, citing customers struggling with custom orchestration logic. Google Cloud published on 24 March that "agentic orchestration has emerged as a new paradigm for LLM-powered applications to handle more complex tasks." At Google Cloud Next on 9 April, multi-agent systems moved into mainstream enterprise architecture.
I was building around the same architectural insight — an orchestration layer around the model, not just the model — in the same weeks the industry was converging on it. The toy project, five months earlier, was where I first worked out how to brief that kind of system and verify its output. About eight months later, in November 2025, Anthropic named the layer a harness; in February 2026, OpenAI called harness engineering a discipline. The abstraction I was building on a toy in late 2024 stabilised into industry vocabulary in 2026.
What broke, and was caught
A dedicated refinement audit on 20 March 2026 found and fixed, the same day:
- A production bug that unconditionally purged all active-tier creatures from the database on every app launch. The function was marked "DEV ONLY" in a comment but shipped live.
- A forced-switch bug that always gave the enemy a free turn, regardless of whether the switch was voluntary.
- Missing defensive-stat flags that silently diverged from the design spec.
- A SQL-injection-shaped string-interpolation weakness.
All four were caught by the refinement pass before any human playtester saw them. The fourth one — the injection risk — shows the limit of test-driven work: the tests would have passed even with the vulnerability in place, because the tests never tried to break the system. The refinement audit did.
No test stands in for a human actually playing the game
The engine has 1,725 Godot tests and 608 Python tests for a procedural NPC-art side track — both self-reported project totals, the highest recorded figure per my own rule. The test suite covered the battle math, the creature-generation determinism, the stat reconstruction, the type chart and the database layer. Zero failures.
The tests caught logic bugs. They did not catch whether the game was fun, whether the difficulty curve made sense, whether the UI made the type advantages obvious enough, or whether a six-year-old could understand how to play it.
That gap is why the status word is parked, not shipped. The engine works. The tests pass. A human has not played enough of it to say whether the game itself works.
The receipts
Measured figures from the highest recorded test runs:
- 1,725 Godot tests, 0 failures
- 608 Python tests for the NPC-art pipeline
- 7,483 lines of GDScript production source
- 3,970 lines of GDScript test code
- 16 numbered risks tracked in a Risk Register
Status: parked. The reason, in one line: no automated 2D-art pipeline good enough yet to produce the game's art. The tech and game engine are fully functional and tested.
What came after
The spreadsheet-first habit moved into every build I've done since. The 95%-certain prompting pattern became standard in my LEGION sessions. The session apparatus — prompts, timers, decision records, files the agent reads — came together in LEGION and then moved back into the game.
The creature-battler taught me that playing with a toy is the cheapest place to find out how agents actually fail, before that failure costs anything real. By the time I needed those skills for business, I already had them.