WARBIRDS.IO Dev Log

← All posts

Balancing the fleet with robot battles

You can't summon twenty people to stress-test a new game mode on a Tuesday afternoon. But the naval AI now fights a real fleet action all by itself — so I let it. A headless harness runs dozens of full AI battles and prints the numbers, and the numbers found three things wrong that no amount of staring at the code would have.

The harness

It's a test you run on demand, not in CI: it builds the naval world, steps a dozen-plus full matches at simulation speed with nobody watching, and tallies what happened — team win rates, how matches end, how long each class of ship survives, how often the cap changes hands, how much of the score comes from sinking versus holding the cap, and whether the fleets even meet. No graphics, no network, just the authoritative simulation running flat out and reporting on itself.

What it found

Three problems, all invisible from the code alone:

Where it landed

After the fixes the numbers read the way a fleet action should: the win rate is even between the two sides, destroyers die fastest and battleships live longest, the capture zone changes hands constantly instead of sitting idle, and matches run a few minutes of genuine back-and-forth. The harness stays in the tree, so the next time I touch a ship's armor or a gun's reload I can run a dozen battles and see what it did before anyone else does. The best part of an AI that can fight its own war is that it can also be its own playtest.