One of our test battles lasted more than 3,000 turns.
One side had built a huge artillery force. The other kept sending a few tanks into its guns. The artillery was doing its job: enemy units approached, enemy units died. But the larger army never turned that advantage into a decisive attack.

Watching it, the problem was obvious. There was room to manoeuvre. There were buildings to take. There was an army big enough to do something about both. Yet the battle kept repeating itself.
That match has become a useful test for the AI improvements we’re working on now. The aim is an opponent that can bring its forces forward, break a defensive position and follow through.
What we’re working on
| Area | Where it stands |
|---|---|
| Infantry for capturing buildings | Production bugs fixed in the development version |
| Plans that survive between turns | Planning-memory bug fixed in the development version |
| Units making room for each other | Experimental; disabled by default |
| A better balance of tanks and artillery | Under evaluation |
| Coordinated attacks and flanking | A longer-term goal |
The production fixes address a frustrating situation: a bot could recognise that it needed infantry to capture buildings and then build another combat vehicle instead. Another rule could stop production because its army was large, even when none of its units could capture anything.
We also fixed planning memory so that one bot’s turn no longer overwrites another bot’s expansion assignments.
Making room to advance
Getting the army moving has been harder.
A unit usually wants each move to bring it closer to its target. That is a sensible rule until a whole army follows it at once. In a crowded formation, individually reasonable decisions can leave everyone waiting.
One sideways move, another unit’s way forward. A tank steps aside. Infantry takes the tile it freed and advances towards a building. The tank has not moved closer to its own target, but the army has gained an opportunity.
Sometimes the only available space takes a unit temporarily farther from its objective. Our current experiments are more cautious: sideways moves must not increase the remaining cost of its route.
We’ve been testing limited sideways moves that create space for friendly units. In the test situation, they let more units make real progress towards their targets. A more selective version asks whether a specific friendly unit can benefit before anyone steps aside.
Those experiments are still disabled by default. More movement is useful only if it helps the army fight, and the results have been mixed. We want a front that advances with purpose, rather than a formation that simply rearranges itself every turn.
Enough guns. Now what?
We’re also looking at what the bots build. An army can have too much artillery, even when each individual gun looks like a good purchase. Guns can hold a position and destroy incoming attackers while the army lacks the units needed to push forward and take defended ground.
In one experiment, shifting production towards tanks led to more captures and fewer losses, but also less damage dealt.
A high kill count can hide a battle that is going nowhere. Destroying an endless stream of replacement units looks excellent in the statistics. We need to measure whether fighting actually weakens the opponent’s position and opens the way to victory.
Returning to the same battle
To make these changes easier to judge, we now have tools to save a battle situation and compare two versions of the bot from the same starting point. We can see what each unit tried to do, why it stayed still and where the decisions first changed. The simulation still has limitations, but it gives us much better evidence than watching one match and hoping the next one looks better.
What this should feel like to play
Further ahead, the goal is coordinated manoeuvring: recognising alternative approaches, gathering the right units and keeping an attack together across several turns. Flanking should be something the AI can consider on any suitable map, rather than a trick it knows in one particular location.
For now, we’re working through the pieces that make that possible. The improvement we’re aiming for is something you should feel during a match: when the bot has an advantage, it knows how to use it—and when you hold a strong position, it gives you a reason to watch more than the hex directly in front of you.