A 2.5D destructible-terrain artillery game in the Scorched Earth / Pocket Tanks lineage, built in Godot and compiled to WebAssembly so it runs right here in the browser. Pick an angle and power, account for the wind, and carve chunks out of the voxel landscape until one tank is left standing. Player 2 is a computer opponent by default — press T on your turn to switch it to a second human for hotseat play.

Click the game to give it keyboard focus. Play full-page →

Desktop and a keyboard only — there are no touch controls yet, so this one won’t play on a phone.

Controls

A turn is move or shoot — the moment you drive, you forfeit your shot that turn. Fuel is your whole movement budget and doesn’t refresh between turns.

KeyAction
← / →Aim (barrel angle)
↑ / ↓Power
A / DDrive left / right (costs fuel)
Q / ECycle weapon
SPACEFire (or end turn if you’ve moved)
ENTEREnd turn
TToggle P2 between computer and human (next turn)
RRestart

Crates parachute in every couple of turns — fuel (gold) for more driving, repair (green) for HP, armor (blue) for incoming-damage reduction — grabbed by driving onto them. Eight weapons cycle from a balanced Standard through Heavy, Digger, Sniper, Nuke and an air-bursting MIRV, plus two constructive shells: Dirt Ball and Paver, which add terrain so you can build cover or wall an enemy in until they blast their way out.

How it’s built

Everything is constructed in GDScript — there are no hand-edited node graphs, so it stays easy to diff and extend. main.tscn is just a root node running main.gd.

  • Terrain is a voxel grid rendered with a MultiMesh; destruction edits the grid directly, and roughly half the destroyed mass survives as loose rubble simulated on a finer sub-grid — fragments fall and slide diagonally to form sloped piles at an angle of repose.
  • Ballistics are a manually integrated shell — gravity plus wind, substepped for accuracy — so trajectories are fully deterministic.
  • The AI aims by replaying the projectile’s own physics: each turn it simulates a grid of angle/power shots using the exact integration the real shell uses, keeps the trajectory that lands nearest you, and picks a weapon to match its confidence — a clean predicted hit gets the precise Sniper, a loose shot gets the forgiving Heavy. No hand-tuned ballistics tables, and a little aim jitter keeps it beatable.

Built with Godot’s GL Compatibility renderer and exported single-threaded, then self-hosted on my own Linux cluster behind a Cloudflare Tunnel — same hardware that runs the rest of these projects.

Open the full-page version →