Skip to content

Releases: robocode-dev/tank-royale

0.32.1

01 Jul 22:31
Compare
Choose a tag to compare

πŸ“¦ 0.32.1 - No need of default constructor - 01-Jul-2025

πŸš€ Improvements

  • Bot API:
    • The BaseBot() constructor (instead of Bot() constructor) now automatically searches for the bot config file ( .json) and falls back on using environment variables if the config file could not be found.
    • The sample bots could not start up due to this issue.

🐞 Bug Fixes

  • Booter
    • Fixed the escaping issue with double backslash characters.
  • Sample Bot:
    • Fixed a bug in TrackFire.cs where the turret misaligned while attempting to lock onto a target, causing it to oscillate erratically during target acquisition.

πŸ“„ Documentation

You find the Robocode Tank Royale documentation here. You should start out by reading Getting Started first.

πŸ”¨ Try it out

Please head over to My First Bot tutorial to learn how to set up your first bot for Robocode Tank Royale.

πŸ›  Installing Robocode

You need Java 11 as a minimum or newer, e.g. the newest version of Java available.

You can read the installation guide to get more details about installing both Java and Robocode.

β–Ά Running Robocode

The main application is the GUI Application which is a Java application. You can read about how to use the GUI Application here.

The Robocode GUI application is run from the command line (shell or command prompt) in order to start and view
battles:

java -jar robocode-tankroyale-gui-0.32.1.jar

πŸ€– Sample bots

If you are new to Robocode, you need to download some bots and extract those to directories on your system.
These bot directories can be added from the menu of the GUI: Config β†’ Bot Root Directories

These sample bots are currently available:

Platform Archive Requirements
C# sample-bots-csharp-0.32.1.zip Microsoft .Net SDK 6.0 or newer
Java sample-bots-java-0.32.1.zip Any Java SDK 11 or newer

All bots are put in zip archives, which should be installed in independent directories.
Each zip archive contains a ReadMe.md file with more information for the specific platform.

πŸ“¦ Bot API

In order to start developing bots for Robocode, the following APIs are available.

πŸ“¦ Java:

Available as:

πŸ“¦ .Net:

Available as:

0.32.0

24 Jun 21:01
Compare
Choose a tag to compare

πŸ“¦ 0.32.0 - Added Booter Error Log - 24-Jun-2025

This version makes it easier to figure out why a bot will not boot from a bot directory.

πŸš€ Improvements

  • Booter:

    • The Booter now logs errors to standard error. Each error is recorded with the name of the bot directory in which the error occurred.
  • GUI:

    • When booting one or more bots that crash with an error, the error is written to a Booter Error Log window. This window automatically appears and displays the detected errors for each bot directory that caused an error.
  • Bot API:

    • The Bot() constructor now automatically searches for the bot config file (.json) and falls back on using environment variables if the config file could not be found.
    • Due to this change, the Bot() constructor has been removed from all sample bots.

πŸ“„ Documentation

You find the Robocode Tank Royale documentation here. You should start out by reading Getting Started first.

πŸ”¨ Try it out

Please head over to My First Bot tutorial to learn how to set up your first bot for Robocode Tank Royale.

πŸ›  Installing Robocode

You need Java 11 as a minimum or newer, e.g. the newest version of Java available.

You can read the installation guide to get more details about installing both Java and Robocode.

β–Ά Running Robocode

The main application is the GUI Application which is a Java application. You can read about how to use the GUI Application here.

The Robocode GUI application is run from the command line (shell or command prompt) in order to start and view
battles:

java -jar robocode-tankroyale-gui-0.32.0.jar

πŸ€– Sample bots

If you are new to Robocode, you need to download some bots and extract those to directories on your system.
These bot directories can be added from the menu of the GUI: Config β†’ Bot Root Directories

These sample bots are currently available:

Platform Archive Requirements
C# sample-bots-csharp-0.32.0.zip Microsoft .Net SDK 6.0 or newer
Java sample-bots-java-0.32.0.zip Any Java SDK 11 or newer

All bots are put in zip archives, which should be installed in independent directories.
Each zip archive contains a ReadMe.md file with more information for the specific platform.

πŸ“¦ Bot API

In order to start developing bots for Robocode, the following APIs are available.

πŸ“¦ Java:

Available as:

πŸ“¦ .Net:

Available as:

0.31.0

19 Jun 20:50
Compare
Choose a tag to compare

πŸ“¦ 0.31.0 - Improved Graphical Debugging - 19-Jun-2025

⚠️ Breaking Changes

Bot API Updates

If you are using Color and the getGraphics() method or Graphics property, you may need to update your bot(s).

Changes Implemented:

  • Platform-specific graphics classes and external graphics libraries, such as those for SVG, have been replaced with the following classes:
    • IGraphics
    • SvgGraphics
    • Color
    • Point

Reasons for Changes:

  • Simplify the development and maintenance of the debugging graphics feature.
  • Avoid using platform-specific features and frameworks that are not compatible across all platforms and operating systems.
  • Enhance the speed of SVG serialization, reduce RAM usage, and decrease distribution archive sizes.
  • Standardize the API for debug painting across all Bot APIs (Java, .Net, Python, etc.).

Specific Updates:

  • Java: A new package dev.robocode.tankroyale.botapi.graphics has been introduced.
  • .Net: A new namespace Robocode.TankRoyale.BotApi.Graphics has been introduced.

Additional Information:

  • Sample bots have been updated to use the new classes.

🐞 Bug Fixes

  • BotAPI:
    • #143: .NET bot fails to start with no or invalid country code.
    • #144: .NET bots run only on Windows since 0.30.0.
      • SvgNet requires System.Drawing, which is not available on Linux and macOS. Hence, the new Robocode specific IGraphics interface must be used instead.
    • Fixed the generated bot Bash scripts for .Net so dotnet build will be called if the bin folder is missing.
  • GUI:
    • Fixed multiple issues with the "No bot directory root has been configured" error dialog.

πŸ“„ Documentation

You find the Robocode Tank Royale documentation here. You should start out by reading Getting Started first.

πŸ”¨ Try it out

Please head over to My First Bot tutorial to learn how to set up your first bot for Robocode Tank Royale.

πŸ›  Installing Robocode

You need Java 11 as a minimum or newer, e.g. the newest version of Java available.

You can read the installation guide to get more details about installing both Java and Robocode.

β–Ά Running Robocode

The main application is the GUI Application which is a Java application. You can read about how to use the GUI Application here.

The Robocode GUI application is run from the command line (shell or command prompt) in order to start and view battles:

java -jar robocode-tankroyale-gui-0.31.0.jar

πŸ€– Sample bots

If you are new to Robocode, you need to download some bots and extract those to directories on your system.
These bot directories can be added from the menu of the GUI: Config β†’ Bot Root Directories

These sample bots are currently available:

Platform Archive Requirements
C# sample-bots-csharp-0.31.0.zip Microsoft .Net SDK 6.0 or newer
Java sample-bots-java-0.31.0.zip Any Java SDK 11 or newer

All bots are put in zip archives, which should be installed in independent directories.
Each zip archive contains a ReadMe.md file with more information for the specific platform.

πŸ“¦ Bot API

In order to start developing bots for Robocode, the following APIs are available.

πŸ“¦ Java:

Available as:

πŸ“¦ .Net:

Available as:

0.30.2

02 Jun 19:47
e8f0f84
Compare
Choose a tag to compare

πŸ“¦ 0.30.2 - GUI auto-scales the Battle View - 02-Jun-2025

πŸš€ Improvements

  • GUI:
    • The GUI now automatically scales the battle view when it’s first displayed and adjusts it dynamically as the window is resized.
    • Thanks to Jan Durovec for this nice improvement. ❀️

🐞 Bug Fixes

  • Server:
    • #132: Fixed several race conditions and synchronization issues on the server side.
  • BotAPI / Sample Bots:
    • Fixed issue where the Fire sample bot did not lock the radar on its target.
  • Sample Bots:
    • The Fire and MyFirstBot sample bot did not turn perpendicular to the bullet direction anymore, and the RamFire did not drive directly towards its target.
  • Documentation:
    • #136: The turn timeout and ready timeout were incorrectly specified in milliseconds instead of microseconds. 1 millisecond = 1/1,000 of a second, where 1 microsecond = 1/1,000,000 of a second

πŸ“„ Documentation

You find the Robocode Tank Royale documentation here. You should start out by reading Getting Started first.

πŸ”¨ Try it out

Please head over to My First Bot tutorial to learn how to set up your first bot for Robocode Tank Royale.

πŸ›  Installing Robocode

You need Java 11 as a minimum or newer, e.g. the newest version of Java available.

You can read the installation guide to get more details about installing both Java and Robocode.

β–Ά Running Robocode

The main application is the GUI Application which is a Java application. You can read about how to use the GUI Application here.

The Robocode GUI application is run from the command line (shell or command prompt) in order to start and view
battles:

java -jar robocode-tankroyale-gui-0.30.2.jar

πŸ€– Sample bots

If you are new to Robocode, you need to download some bots and extract those to directories on your system.
These bot directories can be added from the menu of the GUI: Config β†’ Bot Root Directories

These sample bots are currently available:

Platform Archive Requirements
C# sample-bots-csharp-0.30.2.zip Microsoft .Net SDK 6.0 or newer
Java sample-bots-java-0.30.2.zip Any Java SDK 11 or newer

All bots are put in zip archives, which should be installed in independent directories.
Each zip archive contains a ReadMe.md file with more information for the specific platform.

πŸ“¦ Bot API

In order to start developing bots for Robocode, the following APIs are available.

πŸ“¦ Java:

Available as:

πŸ“¦ .Net:

Available as:

0.30.1

08 Mar 19:59
Compare
Choose a tag to compare

πŸ“¦ 0.30.1 - Fixes to sample bots - 08-Mar-2025

This version provides bug fixes to the sample bots only.

🐞 Bug Fixes

  • Sample Bots: Corners and Walls did not turn correctly towards the wall.

πŸ“„ Documentation

You find the Robocode Tank Royale documentation here. You should start out by reading Getting Started first.

πŸ”¨ Try it out

Please head over to My First Bot tutorial to learn how to set up your first bot for Robocode Tank Royale.

πŸ›  Installing Robocode

You need Java 11 as a minimum or newer, e.g. the newest version of Java available.

You can read the installation guide to get more details about installing both Java and Robocode.

β–Ά Running Robocode

The main application is the GUI Application which is a Java application. You can read about how to use the GUI Application here.

The Robocode GUI application is run from the command line (shell or command prompt) in order to start and view
battles:

java -jar robocode-tankroyale-gui-0.30.1.jar

πŸ€– Sample bots

If you are new to Robocode, you need to download some bots and extract those to directories on your system.
These bot directories can be added from the menu of the GUI: Config β†’ Bot Root Directories

These sample bots are currently available:

Platform Archive Requirements
C# sample-bots-csharp-0.30.1.zip Microsoft .Net SDK 6.0 or newer
Java sample-bots-java-0.30.1.zip Any Java SDK 11 or newer

All bots are put in zip archives, which should be installed in independent directories.
Each zip archive contains a ReadMe.md file with more information for the specific platform.

πŸ“¦ Bot API

In order to start developing bots for Robocode, the following APIs are available.

πŸ“¦ Java:

Available as:

πŸ“¦ .Net:

Available as:

0.30.0

07 Feb 18:52
Compare
Choose a tag to compare

πŸ“¦ 0.30.0 - Added Graphics Debugging

πŸš€ #116: Graphical Debugging Implemented Using SVG

Graphical debugging, known from the original game, has been implemented using SVG with the [JSVG] library. This allows you to paint graphics objects on the battlefield while the game is running, making it easier to visualize elements such as estimated target positions. This feature is available for both the Java API and .Net API.

Java API

  • Use the new getGraphics() method to return a java.awt.Graphics2D object for painting objects.
  • Thanks to Tobias Zimmermann for bringing this feature to the Bot Java API, for suggesting the use of SVG and [JSVG], and also adding transform-box to JSVG to mirror texts. ❀️
  • Thanks also to Jannis Weis for providing [JSVG] and helping fix an issue with using the correct libraries for JSVG. Make sure to buy him a coffee. 😊

.Net API

  • Get a SvnNet.SvgGraphics context for painting by using the Graphics getter.
  • The .Net API uses the SvgNet library. The SvgGraphics is context used similarly to System.Drawing.Graphics.

⚠️ Graphical Debugging must be enabled before anything is rendered to the battlefield.

Enabling Graphical Debugging

Graphical debugging can be enabled from the Properties pane of the bot console by toggling the Toggle Graphical Debugging button. Graphical debugging is not enabled per default, and must be applied to individual bots.

Sample Bots

A new sample bot, PaintingBot, has been introduced to showcase the use of debug painting in both Java and C#.

Schema changes

  • A new debugGraphics (string) field has been added to the bot-intent schema. This field allows you to provide SVG content as a string, which will be rendered if debugging graphics is enabled. Note that not all SVG functionality is supported by JSVG used for rendering SVG onm the battlefield.

  • A new isDebuggingEnabled (boolean) field has been added to the bot-state schema. This field specifies whether the debugging graphics feature is enabled for the bot. The debugGraphics field will only be used if isDebuggingEnabled is set to true.

🐞 Bug Fixes

  • Server:
    • Log messages printed out {} instead of content.
  • UI:
    • Fixed issue with the switch button in the Server Options for switching between using a local and remote server.

πŸ“„ Documentation

You find the Robocode Tank Royale documentation here. You should start out by reading Getting Started first.

πŸ”¨ Try it out

Please head over to My First Bot tutorial to learn how to set up your first bot for Robocode Tank Royale.

πŸ›  Installing Robocode

You need Java 11 as a minimum or newer, e.g. the newest version of Java available.

You can read the installation guide to get more details about installing both Java and Robocode.

β–Ά Running Robocode

The main application is the GUI Application which is a Java application. You can read about how to use the GUI Application here.

The Robocode GUI application is run from the command line (shell or command prompt) in order to start and view
battles:

java -jar robocode-tankroyale-gui-0.30.0.jar

πŸ€– Sample bots

If you are new to Robocode, you need to download some bots and extract those to directories on your system.
These bot directories can be added from the menu of the GUI: Config β†’ Bot Root Directories

These sample bots are currently available:

Platform Archive Requirements
C# sample-bots-csharp-0.30.0.zip Microsoft .Net SDK 6.0 or newer
Java sample-bots-java-0.30.0.zip Any Java SDK 11 or newer

All bots are put in zip archives, which should be installed in independent directories.
Each zip archive contains a ReadMe.md file with more information for the specific platform.

πŸ“¦ Bot API

In order to start developing bots for Robocode, the following APIs are available.

πŸ“¦ Java:

Available as:

πŸ“¦ .Net:

Available as:

0.29.0

19 Jan 15:09
Compare
Choose a tag to compare

πŸ“¦ 0.29.0 - All about colors - 19-Jan-2024

This version causes a breaking change for the Color class. The Color class was removed and replaced with the Color class used with the used platform (Java or C#).

πŸš€ Improvements

  • Server:
    • Replaced SLF4J's SimpleLogger with own implementation based on the SLF4J API to provide ANSI colors on log levels.
  • Bot API:
    • Replaced using Robocode's Color class with java.awt.Color for Java and System.Drawing.Color for C#.
  • Sample Bots:
    • Updated to use the Color class from the used platform (Java or C#).

πŸ“„ Documentation

You find the Robocode Tank Royale documentation here. You should start out by reading Getting Started first.

πŸ”¨ Try it out

Please head over to My First Bot tutorial to learn how to set up your first bot for Robocode Tank Royale.

πŸ›  Installing Robocode

You need Java 11 as a minimum or newer, e.g. the newest version of Java available.

You can read the installation guide to get more details about installing both Java and Robocode.

β–Ά Running Robocode

The main application is the GUI Application which is a Java application. You can read about how to use the GUI Application here.

The Robocode GUI application is run from the command line (shell or command prompt) in order to start and view
battles:

java -jar robocode-tankroyale-gui-0.29.0.jar

πŸ€– Sample bots

If you are new to Robocode, you need to download some bots and extract those to directories on your system.
These bot directories can be added from the menu of the GUI: Config β†’ Bot Root Directories

These sample bots are currently available:

Platform Archive Requirements
C# sample-bots-csharp-0.29.0.zip Microsoft .Net SDK 6.0 or newer
Java sample-bots-java-0.29.0.zip Any Java SDK 11 or newer

All bots are put in zip archives, which should be installed in independent directories.
Each zip archive contains a ReadMe.md file with more information for the specific platform.

πŸ“¦ Bot API

In order to start developing bots for Robocode, the following APIs are available.

πŸ“¦ Java:

Available as:

πŸ“¦ .Net:

Available as:

0.28.1

01 Jan 14:33
Compare
Choose a tag to compare

πŸ“¦ 0.28.1 - Fixed Survival Scores

🐞 Bug Fixes

  • Server:
    • #122: Fixed the scoring issue with Survival Score and Last Survivor Bonus, which became too large after multiple rounds.
    • The server now only listens to the wildcard IP address (0.0.0.0), meaning it will listen on all available network interfaces for the specified port (IPv4 and IPv6) on the system.

πŸ“„ Documentation

You find the Robocode Tank Royale documentation here. You should start out by reading Getting Started first.

πŸ”¨ Try it out

Please head over to My First Bot tutorial to learn how to set up your first bot for Robocode Tank Royale.

πŸ›  Installing Robocode

You need Java 11 as a minimum or newer, e.g. the newest version of Java available.

You can read the installation guide to get more details about installing both Java and Robocode.

β–Ά Running Robocode

The main application is the GUI Application which is a Java application. You can read about how to use the GUI Application here.

The Robocode GUI application is run from the command line (shell or command prompt) in order to start and view
battles:

java -jar robocode-tankroyale-gui-0.28.1.jar

πŸ€– Sample bots

If you are new to Robocode, you need to download some bots and extract those to directories on your system.
These bot directories can be added from the menu of the GUI: Config β†’ Bot Root Directories

These sample bots are currently available:

Platform Archive Requirements
C# sample-bots-csharp-0.28.1.zip Microsoft .Net SDK 6.0 or newer
Java sample-bots-java-0.28.1.zip Any Java SDK 11 or newer

All bots are put in zip archives, which should be installed in independent directories.
Each zip archive contains a ReadMe.md file with more information for the specific platform.

πŸ“¦ Bot API

In order to start developing bots for Robocode, the following APIs are available.

πŸ“¦ Java:

Available as:

πŸ“¦ .Net:

Available as:

0.28.0

21 Dec 20:24
Compare
Choose a tag to compare

πŸ“¦ 0.28.0 - Inherited Socket Support - 21-Dec-2024

πŸš€ Improvements

  • Server:
    • #115: Inherited Socket Support: You can now start the server with an inherited socket from another process by setting:
      --port=inherit or -p=inherit.
    • Socket Activation: This enables the use of Socket Activation, such as with systemd or xinetd on Linux.
    • Lazy Loading: With socket activation, the server will only start when a client accesses the port for the first time.
    • Setup Guide: A detailed guide for setting up socket activation for the Robocode server is provided here.
    • Acknowledgements: Special thanks to Tobias Zimmermann for bringing this feature to Robocode! ❀️
    • Java WebSocket: Gratitude to Marcel Prestel for providing and maintaining the excellent Java WebSocket library, making WebSockets accessible for small stand-alone Java applications without the need for a traditional server. πŸ†

🐞 Bug Fixes

  • Bot API:
    • The internal event handling for state updates in the Bot API is now separated from bot event queue handling.
      Internal events are processed immediately, while bot events are eventually processed through the event queue,
      if at all.

πŸ“„ Documentation

You find the Robocode Tank Royale documentation here. You should start out by reading Getting Started first.

πŸ”¨ Try it out

Please head over to My First Bot tutorial to learn how to set up your first bot for Robocode Tank Royale.

πŸ›  Installing Robocode

You need Java 11 as a minimum or newer, e.g. the newest version of Java available.

You can read the installation guide to get more details about installing both Java and Robocode.

β–Ά Running Robocode

The main application is the GUI Application which is a Java application. You can read about how to use the GUI Application here.

The Robocode GUI application is run from the command line (shell or command prompt) in order to start and view battles:

java -jar robocode-tankroyale-gui-0.28.0.jar

πŸ€– Sample bots

If you are new to Robocode, you need to download some bots and extract those to directories on your system.
These bot directories can be added from the menu of the GUI: Config β†’ Bot Root Directories

These sample bots are currently available:

Platform Archive Requirements
C# sample-bots-csharp-0.28.0.zip Microsoft [.Net SDK] 6.0 or newer
Java sample-bots-java-0.28.0.zip Any [Java SDK] 11 or newer

All bots are put in zip archives, which should be installed in independent directories.
Each zip archive contains a ReadMe.md file with more information for the specific platform.

πŸ“¦ Bot API

In order to start developing bots for Robocode, the following APIs are available.

πŸ“¦ Java:

Available as:

πŸ“¦ .Net:

Available as:

0.27.0

02 Dec 20:09
Compare
Choose a tag to compare

πŸ“¦ 0.27.0 - Lots of bug fixes - 02-Dec-2024

This version fixes various issues, some found when running legacy bots with the [Robocode API Bridge].

πŸš€ Improvements

  • Bot API for .Net:
    • Improved performance of event handling by replacing ImmutableList and ImmutableHashSet with List and
      HashSet protected with lock blocks.
  • Bot API for Java:
    • Improved performance of event handling by replacing CopyOnWriteArrayList with
      synchronizedList(new ArrayList<>()).

🐞 Bug Fixes

  • Server:
    • #117: Server process consumed 100% of a CPU core even when the game is paused (due to nano timing).
      • Thank you, Tobias Zimmermann, for spotting and fixing this nasty issue! ❀️
  • Bot API:
    • #1: Wrapped bot throws an exception. Fixes in both
      the Bot API and Robocode API Bridge caused by the Tank
      Royale Bot APIs.
    • #119: Battle was not starting on Windows 11 and 10 after installing Docker Linux subsystem.
    • Bridged bots run multiple threads after round 2 due to old thread(s) hanging that could not be stopped.
    • Bridged bots could not be restarted as they got a connection error with the WebSocket when restarting.
    • .Net bots sometimes exited when running at max speed without any exceptions occurring.

πŸ“„ Documentation

You can read the Robocode Tank Royale documentation here.

πŸ”¨ Try it out

Please head over to My First Bot tutorial to learn how to set up your first bot for Robocode Tank Royale.

β–Ά Running Robocode

You need Java 11 as a minimum or newer, e.g. the newest version of Java available.

You can read the installation guide to get more details about installing both Java and Robocode.

The main application is the GUI Application which is a Java application.
You can read more about how to use the GUI Application here.

The Robocode GUI application is run from the command line (shell or command prompt) in order to start and view
battles:

java -jar robocode-tankroyale-gui-0.27.0.jar

If you are new to Robocode, you need to download some bots and extract those to directories on your system.
These bot directories can be added from the menu of the GUI: Config β†’ Bot Root Directories

πŸ€– Sample bots

These sample bots are currently available:

Platform Archive Requirements
C# sample-bots-csharp-0.27.0.zip Microsoft .Net SDK 6.0 or newer
Java sample-bots-java-0.27.0.zip Any Java SDK 11 or newer

All bots are put in zip archives, which should be installed in independent directories.
Each zip archive contains a ReadMe.md file with more information for the specific platform.

πŸ“¦ Bot API

In order to start developing bots for Robocode, the following APIs are available.

πŸ“¦ Java:

Available as:

πŸ“¦ .Net:

Available as: