Last tank standing: Tank Battle's first five days

Battle on the level 5 Delta map: the camera follows the player, whose raised shield faces an incoming shell from a Sherman

TL;DR: Tank Battle is a top-down tank game that runs in your browser, on a computer or a phone. It is five days old. Click Play now and you are in a match.

Play Tank Battle on itch.io (click Run game, then click the game once so it gets your keyboard)

What's new

Welcome to the first devlog. Tank Battle started on 1 October 2026 as a very small game: a green T-34 against 3 AI tanks, and every tank died in one hit. Here is what it is now:

  • A main menu with Play now. One click starts Deathmatch on the highest level you have unlocked. Below it sit the two modes, with Easy, Medium and Hard, and a Slow speed.

    Main menu: the large Play now card, then the Deathmatch and Siege cards, with the difficulty and speed pickers

  • Deathmatch, a five-level campaign. You against 1, 3, 5, 6 and finally 7 AI tanks, who shoot each other as hard as they shoot you. Tanks have 2 HP (3 on the river levels), a forcefield shield for your front, and from level 3 on, 2 mines each.

    Battle on the level 5 Delta map, the shield raised against an incoming shell

  • Siege, a lane battle. You and an AI tank each defend an Embassy on one road. Soldier waves march every 25 seconds, a checkpoint cannon shields each Embassy until it falls, and your tank's gun aims itself while you drive. Kills earn credits to spend at your Embassy.

    Siege on Embassy Road: your tank's turret locked on an enemy soldier inside your range circle, the enemy wave coming down the road

  • Phones and controllers. On a phone an on-screen joystick and buttons appear, see-through until you touch them. On a desktop, any standard gamepad works.

    On a phone in landscape: the see-through joystick and the fire, shield and mine buttons lie over the battlefield

What I learned: the phone that rebooted

On 4 October, someone testing on Android Chrome reported that the Siege respawn screen stayed grey, then the browser hung and the phone rebooted. That grey was a CSS filter over a canvas redrawn 60 times a second, so I moved it into the game's own drawing code. A black screen after launch then pointed at the soft blur behind the menu, which costs the same on every frame, so it went too. An opaque canvas stopped the reboot on the test phone but made the menu flicker, so I reverted it within half an hour. The lesson: a cheap-looking effect over a live canvas is not cheap on a phone. If anything still looks off on yours, tell me in the comments.

How it was made

Every picture is drawn by code and every sound is synthesized in the browser, so there are no image or audio files: the whole game is one HTML file of about 500 KB. The rules live in a core with no screen, so matches can also run on a small server without drawing anything, with the battlefield read as text.

In its first five days the repo got more than 180 commits and 71 merged pull requests (15 of them are deploys to this page).

Try it

Play here: https://nzkozar.itch.io/tank-battle. Tell me in the comments which level or mode you got stuck on, and what felt unfair.

Next: the Siege mode in detail (why your tank's gun aims for you, and how it leads a moving target), and then how a simulator plays hundreds of seeded matches to balance the AI.