TWO WAYS TO PLAY
Play in your browser right now, or download the game for the best experience.
IN YOUR BROWSER
Nothing to install. The first visit downloads the Python runtime (about 10 MB), and after that it loads from your cache.
Your progress lives in this browser's storage, so clearing site data erases it. Export a backup from the game's Save data menu now and then.
DOWNLOAD THE GAME
The best performance, play with no internet, and a save that is one plain file on your own disk. You back it up by copying it.
Python 3.10 or newer is the only requirement.
The zip holds terminaltanks.py and a tanks folder. Keep them together: the game is both.
INSTALL IT
- Install Python 3.10 or newer from python.org. On the first installer screen, tick Add python.exe to PATH. The Microsoft Store version also works.
- Right-click the zip and choose Extract All.
- Open the extracted folder and double-click
play.bat.
For the best look, open Windows Terminal in the folder and run py terminaltanks.py instead. It draws colors and box characters more cleanly than the old console window. I have not been able to test the Windows launcher on every setup, so if play.bat gives you trouble, use that command.
- Check for Python: open Terminal and run
python3 --version. If it is missing or older than 3.10, install it from python.org or runbrew install python. - Double-click the zip to extract it.
- In Terminal, go to the folder, for example
cd ~/Downloads/TerminalTanks, and runpython3 terminaltanks.py.
You can also run ./play.sh, which checks your Python version first. If colors look wrong, add --color 256.
- Most distributions already have Python. Check with
python3 --version. If you need it:sudo apt install python3(Debian, Ubuntu),sudo dnf install python3(Fedora) orsudo pacman -S python(Arch). - Extract the zip:
unzip terminaltanks.zip. - Go into the folder and run
python3 terminaltanks.py, or./play.sh.
The game needs a UTF-8 terminal at least 96 columns by 28 rows, and it is happiest at 100 by 30 or larger. If it says the window is too small, make the window bigger or lower the font size.
SOUND
The game composes and synthesizes its own music and effects. To play them it uses the first audio route it finds: the Python package sounddevice or pyaudio if you have one installed, the built-in player on Windows, or on macOS and Linux one of paplay, pw-cat, aplay, play (SoX) or ffplay. With none of these it runs silently. Music and effects are switched under SETTINGS > AUDIO.
In the browser the game plays through Web Audio instead; use the speaker button on the play page for volume and mute. Every song is also on the Jukebox.
YOUR SAVE FILE
The downloaded game keeps your progress in one file:
%APPDATA%\TerminalTanks\save.json
macOS and Linux~/.config/terminaltanks/save.json (or $XDG_CONFIG_HOME/terminaltanks/save.json)
Copy that file to back it up, and copy it back to restore it. Extra profiles live next to it as save_profile2.json and save_profile3.json, listed in profiles.json. Use --save-file PATH or the TERMINALTANKS_SAVE environment variable to point the game somewhere else.
Moving between the browser and the download. The two keep separate saves. Open the Save forge, load either your browser backup or your save.json, and download it in the other form. The forge keeps your progress, wallet, loadouts, settings and custom tanks.
COMMAND-LINE OPTIONS
| Option | What it does |
|---|---|
--save-file PATH | Use a different progress file |
--color MODE | auto, truecolor, 256 or 16. Try 256 if colors look wrong |
--seed N | Seed maps and AI for reproducible matches |
--reset-progress | Delete saved progress and unlocks, then exit |
--export-music DIR | Render the whole soundtrack and every sound effect to WAV files in DIR |
--only TEXT | With --export-music: only songs whose id, name or group contains TEXT |
--version | Print the version |
LAN play between two computers uses TCP port 47474 and UDP port 47475. Allow them through your firewall if the other player cannot find you.
Looking for the handheld version? The Nintendo DS port has its own page and download.