Skip to content

0.37.0

Choose a tag to compare

@github-actions github-actions released this 04 Mar 20:50
· 480 commits to main since this release

πŸ“¦ 0.37.0 - Battle Runner API – 04-Mar-2026

✨ Features

  • Battle Runner API (documentation):
    • New runner module providing a programmatic API for running battles without the GUI.
    • Supports both embedded server (auto-managed lifecycle) and external server connection modes.
    • Synchronous (runBattle()) and asynchronous (startBattleAsync()) battle execution.
    • Game type presets (Classic, Melee, 1v1, Custom) with full parameter overrides via BattleSetup.
    • Battle recording to .battle.gz replay files compatible with the Recorder module.
    • Intent diagnostics for capturing raw bot-intent messages per bot per turn (opt-in).
    • Battle control: pause, resume, single-step, and stop running battles.
    • Real-time events: tick, round start/end, game start/end, abort, pause/resume.
    • Structured BattleResults with per-bot rankings and detailed scores.
    • Resource management via AutoCloseable for server lifecycle, bot processes, and graceful shutdown.
    • Published to Maven Central as dev.robocode.tankroyale:robocode-tankroyale-runner.

🐞 Bug Fixes

  • GUI:
    • #191: GUI freezes from time to time in 0.36.1
  • Bot APIs (C#, Python):
    • #192: Fixed TimeLeft / time_left returning incorrect (often negative) values on Windows. The start timestamp
      for the turn timeout was being captured on the bot thread at dispatch time, which is after OS scheduling has
      already consumed part of the turn budget. The fix aligns C# and Python with Java: the timestamp is now taken on
      the WebSocket thread when the tick is first received (_ticksStart / tick_start_nano_time), so all time spent
      scheduling and dispatching correctly counts against TurnTimeout.
    • C# only: added timeBeginPeriod(1) (Windows Multimedia API) to set 1 ms timer resolution for the bot process,
      matching the behavior of the JVM and CPython runtimes. This ensures Thread.Sleep durations are accurate to
      ~1 ms instead of the default ~15.6 ms Windows timer granularity.

Robocode Tank Royale 0.37.0

πŸš€ Quick Start

New to Robocode Tank Royale?

  1. Install Java 11+ β†’ Download GUI β†’ Get sample bots β†’ Start battling!

πŸ“– Complete documentation: robocode.dev | Advanced strategies: book.robocode.dev

πŸ›  Installing Robocode

Requirements: Java 11+ (whichjdk.com) | Detailed setup: robocode.dev/installation

Choose Your Installation Method

You have two options to install and run the Robocode GUI:

  1. Native Installers (Recommended) – Installs as a native application with desktop shortcuts
  2. Portable JAR File – Run directly from the command line without installation

Both options require Java 11 or newer.


Option 1: Native Installers (Recommended)

Download for your platform:

Platform Installer
πŸͺŸ Windows robocode-tank-royale-gui-0.37.0.msi
🍎 macOS robocode-tank-royale-gui-0.37.0.pkg
🐧 Linux robocode-tank-royale-gui-0.37.0.rpm (RPM) / robocode-tank-royale-gui-0.37.0.deb (DEB)

⚠️ Note: Installers are unsigned (normal for open-source projects). Your OS may show security warnings - choose "Run anyway" or similar. Verify using SHA256SUMS if needed.

Option 2: Portable JAR File

Download: robocode-tankroyale-gui-0.37.0.jar

Running: java -jar robocode-tankroyale-gui-0.37.0.jar

πŸ“ Tip: Create a dedicated folder for better organization. See GUI documentation for details.

πŸ€– Sample Bots

Download pre-built bots to start battling immediately:

  1. Download the archive for your preferred language
  2. Extract to a directory (e.g., C:\Robocode\bots\python)
  3. In GUI: Config β†’ Bot Root Directories β†’ Add the extracted directory
Language Download Requirements
🐍 Python sample-bots-python-0.37.0.zip Python 3.10 or newer
πŸ”· C# sample-bots-csharp-0.37.0.zip Microsoft .NET SDK 8 or newer
β˜• Java sample-bots-java-0.37.0.zip Any Java SDK 11 or newer

πŸ“¦ Bot API

Ready to develop your own bots? Install the API for your preferred language:

🐍 Python

pip install robocode-tank-royale==0.37.0

β˜• Java

Maven:

<dependency>
    <groupId>dev.robocode.tankroyale</groupId>
    <artifactId>robocode-tankroyale-bot-api</artifactId>
    <version>0.37.0</version>
</dependency>

Gradle:

implementation 'dev.robocode.tankroyale:robocode-tankroyale-bot-api:0.37.0'

Direct JAR: robocode-tankroyale-bot-api-0.37.0.jar

πŸ”· .NET (C#, F#, VB.NET)

dotnet add package Robocode.TankRoyale.BotApi --version 0.37.0

More info: robocode.dev/bot-api | PyPI | Maven Central | NuGet

πŸ”Š Sound Effects

Enhance your Robocode experience with sound effects!

Download & Installation: Sounds Repository

Follow the repository instructions to install sounds in the correct location.

πŸ“š Additional Resources