
Pocket Wars is a turn-based strategy game played on a tile grid. Each side builds and commands a small army of soldiers, tanks, trucks and aircraft, and tries to outmanoeuvre the other. It takes its rules from Advance Wars and its sense of humour from Worms. It is my longest-running personal project and the one I keep coming back to.
From design document to Godot
It started in August 2024 as a game design document, with the working title “Advanced Wars”. The document covers the turn structure, game modes (capture the base, full-scale war, a battle royale, a mode of silly random challenges), and a page for each unit and the rules it plays by. It also covers a principle I care about: one price, no in-app purchases, fair to players.
The first prototype was in Unity. After a few months I rebuilt it in Godot, the open-source engine I had been using for smaller experiments, because it gives far more control over every part of a project with much less in the way. Every game I have started since has been in Godot.
How a turn works
A team’s turn is made of its units’ turns. Each unit has action points to spend on moving, attacking or building, and each type follows its own rules, a little like chess pieces:
- The Commander cannot attack, but builds factories, docks and airports, so losing it hurts.
- The Soldier is the all-rounder, with a machine gun usable up close or at range.
- The Heavy carries a rocket launcher. It hits hard, but moves slowly and has an awkward attack pattern that makes clean hits difficult.
- Recon, the Long-range tank, the Supplies truck and the Bulldozer cover scouting, artillery, resupply and clearing terrain.
Each team also has its own fog of war, so you only see what your units can see.
An opponent with competing goals
The part I am proudest of is the computer opponent. In a game like this the AI makes or breaks the experience. Too simple and the game is boring. Too clever, or seeing through the fog, and it feels like cheating.
Each time an AI unit acts, it scores its options rather than following a script:
- Attack scores higher the closer the nearest reachable enemy is, and higher again when the unit is badly hurt and has little to lose.
- Retreat scores higher with the damage the nearby enemies could do, and with how close they are.
- Explore always carries a small score, so a unit with nothing better to do still does something useful.
The scores are normalised and the unit takes the highest. The interesting play comes from the conflicts. A unit three tiles from an enemy it could attack might still fall back, because that enemy outguns it and its side is short of troops. I like setting up all-AI battles and watching them play out differently every time.
Building and exploring are the next behaviours to finish, followed by an aggression setting per team, so that each opponent has its own personality and difficulty.
How it is built
Units are put together from small components rather than one large class: movement, attack, pathfinding, animation, audio, turn handling and input. A player-controlled unit and an AI-controlled unit are the same unit with a different input component: one listens to the keyboard, mouse or controller, and the other runs the decision-making above. A state machine handles each unit’s moves and attacks, so the rules live in one place.
Where it stands
There is a playable vertical slice: one map, local multiplayer where you control every team, and an all-AI battle you can watch. A full campaign, unit building mid-battle and the game modes from the design document come next.