A top-down survivor / arena shooter built with Pygame in a single file, inspired by diep.io — circular tank, mouse-aim, weapon classes, and a wide-open arena to grow in. No external assets: all sprites, sound effects and music are generated procedurally at runtime.
This was an early prototype that, together with my IB Computer Science IA (Hariboo Slime Madness), became the inspiration for the iOS version of Hariboo Madness. Tank movement, dash kills, the upgrade pick-3 cards, the elite enemy timer, the chest drops, the local leaderboard — a lot of those ideas were tested here first.
- 4 weapons: Pistol, SMG, Shotgun, Sniper (hitscan laser, penetrates)
- Dash that kills on contact + i-frames
- Bomb (Q) and Vacuum (V) abilities with cooldowns
- Pick-3 upgrade cards every level-up (TAB)
- 4 enemy types (normal / runner / tank / shooter) + scheduled elites
- Procedural HUD, vignette, screen shake, hit-flash, kill-streak multiplier
- Local top-10 leaderboard saved to
leaderboard.json - Synthesised SFX + looping music — zero asset files
| Action | Key |
|---|---|
| Move | WASD |
| Aim / fire | Mouse / LMB |
| Dash | SPACE |
| Bomb | Q |
| Vacuum | V |
| Upgrade menu | TAB |
| Switch weapon | 1 / 2 / 3 / 4 |
| Toggle Auto-Fire | E |
| Toggle Auto-Aim | R |
| Stats panel | T |
| Pause | P |
| Fullscreen | ALT + ENTER |
| Quit | ESC |
| Restart (Game Over) | R |
Get the latest version from the Releases page. No Python, no setup — just download and open.
| OS | File | What to do |
|---|---|---|
| Windows | PrototypeTankGame.exe |
Double-click. |
| macOS | PrototypeTankGame-macos.zip |
Unzip, open PrototypeTankGame.app. |
The first time you launch it, your OS will warn that the binary is unsigned (macOS Gatekeeper / Windows SmartScreen). Right-click → Open on macOS, or More info → Run anyway on Windows. Code signing certificates cost money and this is a free prototype — but the source is right here, so you can build it yourself if you'd rather.
git clone https://github.com/Fran90908/prototype_tank_game.git
cd prototype_tank_game
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python main.pyTested with pygame>=2.5 on Python 3.9+ (uses from __future__ import annotations
so the modern type-hint syntax works on older Pythons too).