---
title: "Creature Battler"
url: "https://toddpaulbrownjr.com/builds/creature-battler/"
author: "Todd Paul Brown Jr."
description: "A parked Godot creature-battler where my session-timer and decision-log habits started. Engine functional and tested; blocked on a 2D-art pipeline."
kind: "build"
status_word: "parked"
revised: "2026-09-28T06:34:45+00:00"
origin: "written"
canonical: true
updated: "2026-09-28T06:34:45+00:00"
---

# Creature Battler

## What it is

A mobile-first, turn-based creature-battler in Godot 4.6. Players collect procedurally generated "chimeras" assembled from five independent part slots, fight them in a type-advantage battle system, and rescue wild ones into a persistent party.

It's **parked**. In my own words: the tech and game engine are fully functional and tested; it's on hold only until I find a good automated system for making 2D art.

**Why it's on this site:** parked for one named reason, not abandoned — no automated 2D-art pipeline good enough yet to produce the game's art. The engine itself is not the problem.

## Why it exists

The project started in October and November 2024, five months before LEGION first appears in dated records, as a toy with no business case. I designed and balanced the battle math in a spreadsheet before touching Godot, then specified it precisely enough for an agent to implement and cover with headless tests. It's entirely because I was messing around with a toy that I developed the skills I later used to build LEGION.

## How it's built

The project has its own bespoke agent-operations layer — a persistent execution plan, named session-type prompts, a session log, a generated executive summary — built independently of LEGION and structurally identical to it. In March 2026, LEGION's own session-prompt-and-timer apparatus moved into this project, not the other way: a single autonomous Planning → Execution → Refinement → Execution chain took the engine's test count from 651 to 1,725 in one day.

## What broke

A refinement audit on 20 March 2026 found and fixed, the same day: a production bug that purged all active-tier creatures from the database on every launch, marked "DEV ONLY" in a comment but shipped live anyway; 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; and a SQL-injection-shaped string-interpolation weakness. All four were caught by the audit before any human playtester saw them — the injection-shaped one specifically shows the limit of tests that never try to break the system.

## Receipts

| Figure | What | Source |
|---|---|---|
| 1,725 | Godot tests, 0 failures (highest recorded figure) | project executive summary |
| 608 | Python tests for the procedural NPC-art side track | project next-sprint note |
| 7,483 | lines of GDScript production source | file count |
| 16 | numbered risks tracked in a Risk Register | project master plan |

Test counts are recorded in the project's own files, not re-run for this page. More on the [receipts page](/receipts/).
