Call the Cat: Galaxy Build Log · Devlog #18
I do not write code and I cannot read it. Call the Cat: Galaxy, the Unity sequel to a game I already shipped, is written line by line by AI agents. My job is to say what I want, set the rules they work under, and check whether what comes back is actually right.
This one is about asking for exactly the change I wanted and getting it — and it not being enough.
“This boss is too hard, make it weaker” — and it still was
Every planet in our game has a boss. In testing, one boss felt too hard, so I told an AI: “make this boss weaker.” It found the boss health value and lowered it. Compilation passed.
I played it again and it was still hard. The health was clearly reduced, but the ranged attacks still came in with no gaps, and the telegraph line that warns you where to dodge was still too short to react to. What I wanted to feel weaker wasn’t the health number — it was those three things combined into one wall of pressure. The AI touched the one value I named.
Perceived difficulty isn’t one value, it’s three
Of August’s 374 commits, 45 had “boss” in the title. That’s how much time went into one boss, and most of it was the same problem: touch one value and two others move with it.
Widen the ranged attack range and there’s no room left to dodge, so it gets harder. Lengthen the telegraph line and you get reaction time, but the screen is that much more covered. Raise the health and it’s steadier, but the fight drags and gets boring. The three values each pull on a different axis — difficulty, cramped view, boredom — and those axes fight each other. “Weaker” as a single word carries no information about which axis to move, or by how much.

And those values weren’t even in one place
There was a second problem. The values that decide “how strong this boss feels” were scattered across several scripts. Health lived in the boss data. Range lived in the attack-pattern code. Telegraph timing lived in the presentation layer. Ask an AI to “make it weaker” and it fixes whichever file it notices first. It doesn’t go looking for where the rest of them are.
So we added a clause to our dev-rules doc: combat-related values get changed in one place only. When the values are scattered, the next person to touch them — human or AI — doesn’t know where to look.
Give the AI a balance map before you ask
Now, before handing balance work to an AI, I write down which values make up the feel I want to change, and hand that over with the request. Here’s the format.
| What I want to change | The value that makes that feel | Where the value lives | The other axis it moves |
|---|---|---|---|
| Boss feels too strong → weaker | Boss health | Boss data file | Lower it and the fight gets shorter |
| Getting hit with no breathing room | Ranged attack interval / range | Attack-pattern code | Widen it and difficulty drops sharply |
| No time to dodge | Telegraph display time | Presentation code | Lengthen it and the screen gets covered |
Only the first row is something we actually changed in the boss data this time — the other two rows are there to show how the table gets filled in. Splitting up what you used to lump into one word like “weaker” lets you check which value the AI touched and which ones it left alone.

When handing the code to an AI, add this one line:
“Does changing this value affect other values that shape the same feel? If it does, list all of them with their file paths before you change any code, and stop.”
What this post comes down to
Code compiling, and the value you named actually changing, doesn’t mean you get the result you wanted. A game’s “feel” is usually built by several values pulling on each other, and an AI will change only what you named without knowing they’re connected. Writing down which values build that feel, before you hand it off, beats fixing it and then asking “why is it still the same?” over and over.
This adjustment is done as far as static checking goes. How the same boss feels across the three difficulty tiers — Normal, Night, Hell — still has to be confirmed by actually playing it. Numbers can’t tell you that.
Worth reading together
The problem of an AI missing the other call sites that use the same rule is covered here — it’s the companion to this post’s “the values were scattered.”
Galaxy06 – The AI Only Patched One of Three Call Sites
And on the gap between a change compiling and a change being checked:
Galaxy05 – “Fixed” and “I Checked” Are Not the Same Thing
Solo dev of Call the Cat, shipped after 178 days on Google Play and Steam. Now building the sequel, Call the Cat: Galaxy, in public.
