Robocode Tank Royale - Python Bot API
Build the best - destroy the rest!
The Python Bot API for Robocode Tank Royale - the next evolution of the classic Robocode programming game where you code virtual tanks to battle against each other in a virtual arena.
About Robocode Tank Royale
Robocode is a programming game where the goal is to code a bot in the form of a virtual tank to compete against other bots in a virtual battle arena. The player is the programmer of a bot, who will have no direct influence on the game. Instead, you must write a program with the logic for the brain of the bot containing instructions about how it should behave during battles.
Tank Royale is the next generation of Robocode that supports:
- Network-based battles via WebSocket connections
- Multiple programming languages and platforms
- Real-time battles with multiple bots
Installation
Create a virtual environment, activate it, and install the Python Bot API using python -m pip:
# macOS/Linux
python3 -m venv .venv
source .venv/bin/activate
# Windows PowerShell: use `py -3 -m venv .venv` and
# `.\.venv\Scripts\Activate.ps1` instead.
python -m pip install --upgrade pip
python -m pip install robocode-tank-royale
Requirements
- Python 3.10 or higher
- WebSocket support (automatically handled by dependencies)
Quick Start
Check out the complete MyFirstBot example on GitHub:
Or start with this minimal example you can run right away:
from robocode_tank_royale.bot_api.bot import Bot
from robocode_tank_royale.bot_api.events import ScannedBotEvent, HitByBulletEvent
class MyFirstBot(Bot):
def run(self) -> None:
while self.running:
self.forward(100)
self.turn_gun_left(360)
self.back(100)
self.turn_gun_left(360)
def on_scanned_bot(self, e: ScannedBotEvent) -> None:
del e
self.fire(1)
def on_hit_by_bullet(self, e: HitByBulletEvent) -> None:
bearing = self.calc_bearing(e.bullet.direction)
self.turn_right(90 - bearing)
def main() -> None:
bot = MyFirstBot()
bot.start()
if __name__ == "__main__":
main()
How to run:
- Install and start the Robocode Tank Royale GUI from the releases page (it starts the game server).
- Save the code above as MyFirstBot.py and run:
python MyFirstBot.py - In the GUI, add your bot process and start a battle.
Configuration
By default, the bot looks for a <ClassName>.json file with bot information. If not found, it falls back to environment
variables.
- SERVER_URL: WebSocket URL of the server (default: ws://localhost:7654 if not set)
- SERVER_SECRET: Optional. Only set this if the server requires a secret; otherwise leave it unset.
- Required when no config file is used: BOT_NAME, BOT_VERSION, BOT_AUTHORS
- Optional: BOT_DESCRIPTION, BOT_HOMEPAGE, BOT_COUNTRY_CODES, BOT_GAME_TYPES, BOT_PLATFORM, BOT_PROG_LANG, BOT_INITIAL_POS
Features
The Python Bot API provides:
- Full Bot Control: Move your tank, rotate gun and radar, fire bullets
- Event Handling: Respond to hits, bot scanned, bullet impacts, and more
- Battle Information: Access to battle state, opponent positions, and game rules
- Debugging Support: Built-in debugging and logging capabilities
- Modern Python: Type hints and modern Python features supported
Getting Started
-
Install the package using the virtual-environment commands in Installation:
python -m pip install robocode-tank-royale -
Download Robocode Tank Royale: Get the game GUI and server from the official releases
-
Create your bot: Download and study MyFirstBot.py or check the documentation
-
Run battles: Start the GUI, add your bot, and watch the battles unfold!
Documentation & Resources
- 📖 Official Documentation: robocode-dev.github.io/tank-royale
- 🚀 Getting Started: Tutorial
- 🤖 My First Bot: Create Your First Bot
- 📚 API Reference: Python API Documentation
- 🤖 Sample Bots: Python Examples
- 💾 Source Code: GitHub Repository
Supported Platforms
Robocode Tank Royale runs on:
- Windows
- macOS
- Linux
The Python Bot API works with Python 3.10+ on all supported platforms.
Community & Support
- GitHub Issues: Report bugs and request features
- Discussions: Community discussions and help
- Contributing: Check out our Contributing Guide
Development Status
🚧 Work in Progress: The Python Bot API is currently under active development. Features and APIs may change before the stable release.
License
Licensed under the Apache License 2.0
Copyright
Copyright © 2022 Flemming N. Larsen
Ready to build the best tank and destroy the rest? Start coding your bot today! 🚀🎯
Release files for robocode-tank-royale 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| robocode_tank_royale-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / robocode_tank_royale-1.3.0-py3-none-any.whl
| Download URL | robocode_tank_royale-1.3.0-py3-none-any.whl |
|---|---|
| Size | 144.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
18082ffe1e4aebc9250e40fe57e9e0a7cbe4c95e48fc29e6fc74a9ad66117cec
|
|
BLAKE2b-256 checksum How to use checksums |
2bddf13415425bde4f40231dabffd119581c4217695f444d2ade8c84c7c09edb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.2
|