Skip to main content

Python Bot API for Robocode Tank Royale

Project description

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

Install the Python Bot API using pip:

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: 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! 🚀🎯

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robocode_tank_royale-0.40.0-py3-none-any.whl (140.8 kB view details)

Uploaded Python 3

File details

Details for the file robocode_tank_royale-0.40.0-py3-none-any.whl.

File metadata

File hashes

Hashes for robocode_tank_royale-0.40.0-py3-none-any.whl
Algorithm Hash digest
SHA256 127d6fa582bae7c3db676527450a08df26c7907deaddef59e71f38a0cab45a86
MD5 22083eea8bd2ab54b74df3a39b211df2
BLAKE2b-256 eff93691d238fe0c77c33735b4ae97390f321f25639dd83dd913612ef130247b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page