Skip to main content

Robocode Tank Royale - Python Bot API

Robocode logo

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:

📁 MyFirstBot.py:

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

  1. Install the package using the virtual-environment commands in Installation: python -m pip install robocode-tank-royale

  2. Download Robocode Tank Royale: Get the game GUI and server from the official releases

  3. Create your bot: Download and study MyFirstBot.py or check the documentation

  4. Run battles: Start the GUI, add your bot, and watch the battles unfold!

Documentation & Resources

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

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.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for robocode-tank-royale 1.3.1
File Interpreter ABI Platform
robocode_tank_royale-1.3.1-py3-none-any.whl Python 3 none any Details

Release files / robocode_tank_royale-1.3.1-py3-none-any.whl

Download URL robocode_tank_royale-1.3.1-py3-none-any.whl
Size 144.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
074f28f1f62ede458801739d8f84651af8c33bb2aee3290e7841fbd9bc327df2
BLAKE2b-256 checksum
How to use checksums
9b7c8e99d83e5185331a0d3534b948ee2247c5ef9d22abe0b6d57bf99c17166a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.2

Release history Release notifications | RSS feed

This release

1.3.1 This release

1 release file

1.3.0

1 release file

1.2.0

1 release file

1.1.0

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.42.0

1 release file

0.41.0

1 release file

0.40.2

1 release file

0.40.1

1 release file

0.40.0

1 release file

0.39.0

1 release file

0.38.3

1 release file

0.38.2

1 release file

0.38.1

1 release file

0.38.0

1 release file

0.37.0

1 release file

0.36.1

1 release file

0.36.0

1 release file

0.35.5

1 release file

0.35.4

1 release file

0.35.3

1 release file

0.35.2

1 release file

0.35.1

1 release file

0.35.0

1 release file

0.34.2

1 release file

0.34.1

1 release file

0.34.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page