Releases: robocode-dev/tank-royale
0.32.1
π¦ 0.32.1 - No need of default constructor - 01-Jul-2025
π Improvements
- Bot API:
- The
BaseBot()
constructor (instead ofBot()
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.
- The
π 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:
- Jar file: robocode-tankroyale-bot-api-0.32.1.jar
- Artifact at Maven Central Repository
π¦ .Net:
Available as:
- Artifact at Nuget repository
0.32.0
π¦ 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.
- The
π 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:
- Jar file: robocode-tankroyale-bot-api-0.32.0.jar
- Artifact at Maven Central Repository
π¦ .Net:
Available as:
- Artifact at Nuget repository
0.31.0
π¦ 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 specificIGraphics
interface must be used instead.
- SvgNet requires
- Fixed the generated bot Bash scripts for .Net so
dotnet build
will be called if thebin
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:
- Jar file: robocode-tankroyale-bot-api-0.31.0.jar
- Artifact at Maven Central Repository
π¦ .Net:
Available as:
- Artifact at Nuget repository
0.30.2
π¦ 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
andMyFirstBot
sample bot did not turn perpendicular to the bullet direction anymore, and the RamFire did not drive directly towards its target.
- The
- Documentation:
- #136: The turn timeout and ready timeout were incorrectly specified in
millisecondsinstead of microseconds. 1 millisecond = 1/1,000 of a second, where 1 microsecond = 1/1,000,000 of a second
- #136: The turn timeout and ready timeout were incorrectly specified in
π 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:
- Jar file: robocode-tankroyale-bot-api-0.30.2.jar
- Artifact at Maven Central Repository
π¦ .Net:
Available as:
- Artifact at Nuget repository
0.30.1
π¦ 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:
- Jar file: robocode-tankroyale-bot-api-0.30.1.jar
- Artifact at Nexus Repository
- Artifact at Maven Central Repository (available after some time)
π¦ .Net:
Available as:
- Artifact at Nuget repository
0.30.0
π¦ 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 ajava.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 theGraphics
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 thebot-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 thebot-state
schema. This field specifies whether the debugging graphics feature is enabled for the bot. ThedebugGraphics
field will only be used ifisDebuggingEnabled
is set totrue
.
π Bug Fixes
- Server:
- Log messages printed out
{}
instead of content.
- Log messages printed out
- 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:
- Jar file: robocode-tankroyale-bot-api-0.30.0.jar
- Artifact at Nexus Repository
- Artifact at Maven Central Repository (available after some time)
π¦ .Net:
Available as:
- Artifact at Nuget repository
0.29.0
π¦ 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 andSystem.Drawing.Color
for C#.
- Replaced using Robocode's Color class with
- 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:
- Jar file: robocode-tankroyale-bot-api-0.29.0.jar
- Artifact at Nexus Repository
- Artifact at Maven Central Repository (available after some time)
π¦ .Net:
Available as:
- Artifact at Nuget repository
0.28.1
π¦ 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:
- Jar file: robocode-tankroyale-bot-api-0.28.1.jar
- Artifact at Nexus Repository
- Artifact at Maven Central Repository (available after some time)
π¦ .Net:
Available as:
- Artifact at Nuget repository
0.28.0
π¦ 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
orxinetd
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. π
- #115: Inherited Socket Support: You can now start the server with an inherited socket from another process by setting:
π 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.
- The internal event handling for state updates in the Bot API is now separated from bot event queue handling.
π 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:
- Jar file: robocode-tankroyale-bot-api-0.28.0.jar
- Artifact at Nexus Repository
- Artifact at Maven Central Repository (available after some time)
π¦ .Net:
Available as:
- Artifact at Nuget repository
0.27.0
π¦ 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
andImmutableHashSet
withList
and
HashSet
protected withlock
blocks.
- Improved performance of event handling by replacing
- Bot API for Java:
- Improved performance of event handling by replacing
CopyOnWriteArrayList
with
synchronizedList(new ArrayList<>())
.
- Improved performance of event handling by replacing
π 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! β€οΈ
- #117: Server process consumed 100% of a CPU core even when the game is paused (due to nano timing).
- 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.
- #1: Wrapped bot throws an exception. Fixes in both
π 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:
- Jar file: robocode-tankroyale-bot-api-0.27.0.jar
- Artifact at Nexus Repository
- Artifact at Maven Central Repository (available after some time)
π¦ .Net:
Available as:
- Artifact at Nuget repository