Repository navigation
Releases: robocode-dev/tank-royale
Release list
0.18.0
📦 0.18.0 - Improvements to the Bot APIs - 18-Dec-2022
🪲 Bug Fixes
- Bot API
- [#52]: The Bot API used comma-separated strings for
authors,countryCodes, andgameTypeswhen parsing
theBotInfoschema even though the [BotInfo/BotHandshake] uses string arrays. This was fixed to keep Bot APIs
consistent with the schemas. - [#53]: Major bug where each bot received the bullet states of all bullets on the battle arena, including bullets
fired by other bots, and not just the bullets fired by the
bot itself. - Fixed issues with moving and turning, which could override the set target speed and turn rates, when these had
been set explicitly on the API. - Reading the turn rates and target speed for the current turn did not reflect if the turn rate and/or target speed
had been set for the current turn.
- [#52]: The Bot API used comma-separated strings for
- Bot API for .Net:
- Setting the max speed and max turn rates for the body, gun, and radar did not work.
- GUI app:
- Fixed rendering issues on Windows (and Linux?) when using accelerated hardware, by setting these Java properties
- as defaults:
sun.java2d.d3d=false(turn off use of Direct3D)sun.java2d.noddraw=true(no use of Direct Draw)sun.java2d.opengl=true(turn on OpenGL)
🚀 Improvements
- Bot API:
addCondition()andremoveCondition()now returns a boolean value instead of void.- Condition can take an optional lambda expression as an input parameter as an alternative to overriding the test()
method. - Added more test units, which did show bugs within the Bot API for both Java and .Net.
- The event priority order was reversed to match the order used with the original Robocode.
📄 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.18.0.jarIf 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.18.0.zip | Microsoft .Net SDK 5.0 or newer |
| Java | sample-bots-java-0.18.0.zip | Any Java SDK 11 or newer |
All bots are put in zip archives, which should be installed to 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.18.0.jar
- Artifact at Nexus Repository
- Artifact at Maven Central Repository (available after some time)
📦 .Net:
Available as:
- Artifact at Nuget repository
0.17.4
📦 0.17.4 - Maintenance - 16-Oct-2022
🚀 Improvements
- Server:
- Added
--tpsoption to the server for setting the initial Turns Per Second (TPS). - Fire assistant is now only activated, when both the radar and gun are pointing in the same direction for two turns
in a row (like original Robocode).
- Added
- GUI App:
- Switched the order of the Game Type dropdown and Setup Rules button.
- The positioning of the battle view is now controlled by dragging the mouse, instead of clicking.
- Now sends the current tps to the server when changing game type.
- Added
Helpmenu item under the Help menu, which opens browser to the documentation of the GUI application.
- Release
- All Java artifacts are now sent to Maven Central, i.e. Bot API, GUI Application, Server, and Booter.
- New assets are now added to releases: Server and Booter
- Added build scripts to automated creating (draft) releases using GitHub REST API.
- Improved layout for release notes.
- Optimized ProGuard rules for compressing the Booter and Server jar archives even more, making the jar archive for
the GUI smaller as well.
🪲 Bug Fixes
- Bot API and GUI App: Fixed various concurrency issues.
📄 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.17.4.jarIf 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.17.4.zip | Microsoft .Net SDK 5.0 or newer |
| Java | sample-bots-java-0.17.4.zip | Any Java SDK 11 or newer |
All bots are put in zip archives, which should be installed to 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.17.4.jar
- Artifact at Nexus Repository
- Artifact at Maven Central Repository (available after some time)
📦 .Net:
Available as:
- Artifact at Nuget repository
0.17.3
📦 0.17.3 - Maintenance - 02-Oct-2022
⚡ Changes
- #43: Possibility to identify bot from Process to Tick:
- Went back to boot process
pidinstead of using theboot id.
- Went back to boot process
- Bot API: The event priority order was reversed to be similar to the original Robocode.
🚀 Improvements
- Sample bots: Improved the Fire sample bot by removing unnecessary code.
🪲 Bug Fixes
- Server:
- The fire assistant was not always activated.
- #45: Server is kidnapping CPU cycles
- Game is now aborted, when the last bot participating in a battle is leaving (disconnecting).
- Timer used for turn timeout was not stopped, when a battle had ended/aborted.
- Freeing heap memory used for storing game state when game is ended/aborted.
📄 Documentation
You can read more about Robocode Tank Royale here:
https://robocode-dev.github.io/tank-royale/
🔨 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 to be preinstalled on your system. I recommend newer versions of Java, e.g. version 18.
You can read the installation guide to get more details about installing Java and Robocode.
The Robocode GUI application must be run from the command line in order to start and view battles:
java -jar robocode-tankroyale-gui-0.17.3.jar
Download it from here: robocode-tankroyale-gui-0.17.3.jar
Note that you need to download sample bots and install those into directories on your system, and add these directories from the menu:
Config → Bot Root Directories
🤖 Sample bots
These sample bots are currently available:
C#: sample-bots-csharp-0.17.3.zip
Java: sample-bots-java-0.17.3.zip
Note that the C# bots need Microsoft .Net SDK 5.0 or newer and must be preinstalled.
📦 Bot API
In order to develop bots for Robocode, you'll need one of the provided APIs for the Java/JVM or .Net platform.
📦 Java:
Available as a jar file: robocode-tankroyale-bot-api-0.17.3.jar
Available as an artifact on the Sonatype Nexus Repository here. At some point after this release the artifact will also become available from the Maven Central Repository.
📦 .Net:
Available as artifact on the Nuget repository:
https://www.nuget.org/packages/Robocode.TankRoyale.BotApi/0.17.3
dotnet add package Robocode.TankRoyale.BotApi --version 0.17.3
0.17.2
📦 0.17.2 - Added sounds
This version is only for the GUI application. The bot api, server, and booter did not change, and hence the ones from 0.17.1 must be used for the version.
Read more about how to install the sound files here.
🚀 Improvements
- GUI/Sounds: #4: Fire and Explosion Sounds:
- Added feature to play sounds to the GUI application.
- Added Sound Options to configure sounds.
- Note that sound files are distributed independently besides the gui application from the
sounds releases
- GUI: Moved the Dismiss button on the Bot Root Directories configuration down under the Add and Remove buttons, and
adjusted the size of the dialog.
🪲 Bug Fixes
- GUI: When the Bot Directories on the Select Bots for Battle window is updated, all selections are now being cleared.
0.17.1
📦 0.17.1 - Identifying a bot from Boot-up to Ticks - 15-Sep-2022
🚀 Improvements
- #43: Possibility to identify bot from Process to Tick:
- Reintroduced
boot idto replace boot process id (pid) - Added
sessionIdandbootIdto these schemas:bot-handshake,bot-state-with-id, andparticipants
- Reintroduced
🪲 Bug Fixes
- Bot API:
- The
onWonRound(WonRoundEvent)was not triggered as soon as the round has ended. - The blocking turn methods for turning the body, gun, and radar invoked
go()twice internally making the turning
turn in "step" and take the double amount of time. - Some events already handled were not removed from the event queue.
- The
📄 Documentation
You can read more about Robocode Tank Royale here:
https://robocode-dev.github.io/tank-royale/
🔨 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 to be preinstalled on your system. I recommend newer versions of Java, e.g. version 18.
You can read the installation guide to get more details about installing Java and Robocode.
The Robocode GUI application must be run from the command line in order to start and view battles:
java -jar robocode-tankroyale-gui-0.17.1.jar
robocode-tankroyale-gui-0.17.1.jar
Note that you need to download sample bots and install those into directories on your system, and add these directories from the menu:
Config → Bot Root Directories
🤖 Sample bots
These sample bots are currently available:
C#: sample-bots-csharp-0.17.1.zip
Java: sample-bots-java-0.17.1.zip
Note that the C# bots need Microsoft .Net SDK 5.0 or newer and must be preinstalled.
📦 Bot API
In order to develop bots for Robocode, you'll need one of the provided APIs for the Java/JVM or .Net platform.
📦 Java:
Available as a jar file: robocode-tankroyale-bot-api-0.17.1.jar
Available as an artifact on the Sonatype Nexus Repository here. At some point after this release the artifact will also become available from the Maven Central Repository.
📦 .Net:
Available as artifact on the Nuget repository:
https://www.nuget.org/packages/Robocode.TankRoyale.BotApi/0.17.1
dotnet add package Robocode.TankRoyale.BotApi --version 0.17.1
This discussion was created from the release 0.17.1.
0.17.0
0.17.0 - Introduction of process id - 06-Sep-2022
The boot id concept introduced in release 0.16.0 has been rolled back and the pid is used with the Booter again. However, a new concept is introduced to replace the boot id, which is the process id.
When a client (bot, controller, observer) is connecting to a server, the server will generate a unique session id and send to the client via the server-handshake. The session id is used to uniquely identify the running instance of a client, and the client must send back the session id when sending its handshake to the server, e.g. a bot-handshake.
The session id is replacing the boot id as the boot id is only available with bots being booted, and which might only be unique locally, but across multiple systems. With the session id, all clients have a single and unique id.
Documentation
You can read more about Robocode Tank Royale here:
https://robocode-dev.github.io/tank-royale/
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 to be preinstalled on your system. I recommend newer versions of Java, e.g. version 18.
You can read the installation guide to get more details about installing Java and Robocode.
The Robocode GUI application must be run from the command line in order to start and view battles:
java -jar robocode-tankroyale-gui-0.17.0.jar
robocode-tankroyale-gui-0.17.0.jar
Note that you need to download sample bots and install those into directories on your system, and add these directories from the menu:
Config → Bot Root Directories
Sample bots
These sample bots are currently available:
C#: sample-bots-csharp-0.17.0.zip
Java: sample-bots-java-0.17.0.zip
Note that the C# bots need Microsoft .Net SDK 5.0 or newer and must be preinstalled.
Bot API
In order to develop bots for Robocode, you'll need one of the provided APIs for the Java/JVM or .Net platform.
Java:
Available as a jar file: robocode-tankroyale-bot-api-0.17.0.jar
Available as an artifact on the Sonatype Nexus Repository here. At some point after this release the artifact will also become available from the Maven Central Repository.
.Net:
Available as artifact on the Nuget repository:
https://www.nuget.org/packages/Robocode.TankRoyale.BotApi/0.17.0
dotnet add package Robocode.TankRoyale.BotApi --version 0.17.0
This discussion was created from the release 0.17.0.
0.16.0
0.16.0 - Introduction of boot id - 31-Aug-2022
The boot id has been introduced to make it easier to identify which bots have booted locally. Previously, only the host and port were available on the server side, making it hard to identify the bots started from a controller. Now the boot id uniquely identifies a booted bot.
Previously, a process id (pid) was used to uniquely identify a bot being booted, but the pid has been replaced by the new boot id.
- Schema:
- The
bot-handshakehas been extended to include thebootIdwhen the bot is booted locally. This field may be empty when a bot has not been booted by the Booter.
- The
- Booter:
- Now generates a unique boot id for each booted bot, and sends this to the bot via the new
BOOT_IDenvironment variable.
- Now generates a unique boot id for each booted bot, and sends this to the bot via the new
- Bot API:
- Takes the boot id from the
BOOT_IDenvironment variable and includes this within the botbot-handshakewhen it is sent to the server.
- Takes the boot id from the
Bugfixes:
- Bot API:
- Fixed
waitFor(Condition)so it executes before checking the condition the first time.
- Fixed
- Server
- Fixed major bug where the firepower was not limited at the server side.
- Adjusted gun to fire at gun direction for a new turn.
- GUI:
- Issue with reading huge bot list from the booter when reading from stdin.
Documentation
You can read more about Robocode Tank Royale here:
https://robocode-dev.github.io/tank-royale/
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 to be preinstalled on your system. I recommend newer versions of Java, e.g. version 18.
You can read the installation guide to get more details about installing Java and Robocode.
The Robocode GUI application must be run from the command line in order to start and view battles:
java -jar robocode-tankroyale-gui-0.16.0.jar
robocode-tankroyale-gui-0.16.0.jar
Note that you need to download sample bots and install those into directories on your system, and add these directories from the menu:
Config → Bot Root Directories
Sample bots
These sample bots are currently available:
C#: sample-bots-csharp-0.16.0.zip
Java: sample-bots-java-0.16.0.zip
Note that the C# bots need Microsoft .Net SDK 5.0 or newer and must be preinstalled.
Bot API
In order to develop bots for Robocode, you'll need one of the provided APIs for the Java/JVM or .Net platform.
Java:
Available as a jar file: robocode-tankroyale-bot-api-0.16.0.jar
Available as an artifact on the Sonatype Nexus Repository here. At some point after this release the artifact will also become available from the Maven Central Repository.
.Net:
Available as artifact on the Nuget repository:
https://www.nuget.org/packages/Robocode.TankRoyale.BotApi/0.16.0
dotnet add package Robocode.TankRoyale.BotApi --version 0.16.0
This discussion was created from the release 0.16.0.
0.15.0
0.15.0 - Added fire assistance - 17-Aug-2022
Improvements
Fire assistance:
- Added fire assistance known from the original Robocode game. Fire assistance is useful for bots with limited aiming capabilities as it will help the bot by firing directly at a scanned bot when the gun is fired, which is a very simple aiming strategy.
- When fire assistance is enabled the gun will fire towards the center of the scanned bot when all these conditions
are met:- The gun is fired (
setFireandfire) - The radar is scanning a bot when firing the gun (
onScannedBot,setRescan,rescan) - The gun and radar are pointing in the exact the same direction. You can call
setAdjustRadarForGunTurn(false)to align the gun and radar and make sure not to turn the radar beside the gun.
- The gun is fired (
- When calling
setAdjustRadarForGunTurn(true)then fire assistance will automatically be disabled, and when callingsetAdjustRadarForGunTurn(false)then fire assistance will automatically be disabled. - Added new
setFireAssist(enable)to enable and disable the fire assistance explicitly.
GUI:
- Updated various hover help texts for the dialog used for starting battles.
Bot info:
- The
gamesTypesfield is no longer required with the JSON config file of a bot. When it omitted, the bot will be able to participate in all game types. When defined, the bot will only be able to participate in battles with the game type(s) defined within this field. - The
gameTypesfield has been removed from the sample bots, as all sample bots can participate in any game type. At least for now.
Bugfixes:
- GUI & Booter:
- Fixed major bug as the GUI and booter did not filter out bots based on their selected game types.
- Fixed issue with parsing JSON bot info file for the optional fields
description,countryCodes,homepage,
causing an issue with loading a bot, when these fields were omitted. - Fixed issue with parsing json content within the JSON bot info due to text encoding.
- Bot API:
- Corrected the description of the
onScannedBot()event handler.
- Corrected the description of the
- Server:
- TPS: When TPS was set to 0 and the battle was restarted, the battle ran in max TPS.
Documentation
You can read more about Robocode Tank Royale here:
https://robocode-dev.github.io/tank-royale/
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 to be preinstalled on your system. I recommend newer versions of Java, e.g. version 18.
You can read the installation guide to get more details about installing Java and Robocode.
The Robocode GUI application must be run from the command line in order to start and view battles:
java -jar robocode-tankroyale-gui-0.15.0.jar
robocode-tankroyale-gui-0.15.0.jar
Note that you need to download sample bots and install those into directories on your system, and add these directories from the menu:
Config → Bot Root Directories
Sample bots
These sample bots are currently available:
C#: sample-bots-csharp-0.15.0.zip
Java: sample-bots-java-0.15.0.zip
Note that the C# bots need Microsoft .Net SDK 5.0 or newer and must be preinstalled.
Bot API
In order to develop bots for Robocode, you'll need one of the provided APIs for the Java/JVM or .Net platform.
Java:
Available as a jar file: robocode-tankroyale-bot-api-0.15.0.jar
Available as an artifact on the Sonatype Nexus Repository here. At some point after this release the artifact will also become available from the Maven Central Repository.
.Net:
Available as artifact on the Nuget repository:
https://www.nuget.org/packages/Robocode.TankRoyale.BotApi/0.15.0
dotnet add package Robocode.TankRoyale.BotApi --version 0.15.0
0.14.3
0.14.3 - Fixed setting adjustment turns - 07-Aug-2022
Bugfixes:
- GUI:
- NullPointerException when running robocode-tankroyale-gui-0.14.2.jar (#38)
- Server:
AdjustRadarForBodyTurnhad no effect on the server side.updateBotTurnRatesAndDirectionsdid not work properly with adjustments for body and gun turn when usingsetAdjustGunForBodyTurn,setAdjustRadarForGunTurn, andsetAdjustRadarForBodyTurn.
- Sample bots
- Updated Corners to start at random corner when a new battle is started.
Documentation
You can read more about Robocode Tank Royale here:
https://robocode-dev.github.io/tank-royale/
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 to be preinstalled on your system. I recommend newer versions of Java, e.g. version 18.
You can read the installation guide to get more details about installing Java and Robocode.
The Robocode GUI application must be run from the command line in order to start and view battles:
java -jar robocode-tankroyale-gui-0.14.3.jar
robocode-tankroyale-gui-0.14.3.jar
Note that you need to download sample bots and install those into directories on your system, and add these directories from the menu:
Config → Bot Root Directories
Sample bots
These sample bots are currently available:
C#: sample-bots-csharp-0.14.3.zip
Java: sample-bots-java-0.14.3.zip
Note that the C# bots need Microsoft .Net SDK 5.0 or newer and must be preinstalled.
Bot API
In order to develop bots for Robocode, you'll need one of the provided APIs for the Java/JVM or .Net platform.
Java:
Available as a jar file: robocode-tankroyale-bot-api-0.14.3.jar
Available as an artifact on the Sonatype Nexus Repository here. At some point after this release the artifact will also become available from the Maven Central Repository.
.Net:
Available as artifact on the Nuget repository:
https://www.nuget.org/packages/Robocode.TankRoyale.BotApi/0.14.3
dotnet add package Robocode.TankRoyale.BotApi --version 0.14.3
0.14.2
Versions
0.14.2 - Added Velocity Bot - 29-Jul-2022
Improvements:
- Bot API:
- The run() method is now forced to stop/abort (in case the run method enters and infinite loop).
- Server:
- Bots are not "sliding" along walls anymore when hitting those.
- Sample bots
- Added VelocityBot that demonstrates use of turn rates.
Bugfixes:
- Bot API:
- Setting the turn rates with the
Botclass did not work properly (bot, gun, and radar did not turn at all).
- Setting the turn rates with the
- Server:
- Fixed calculation of 1st, 2nd, and 3rd places with the end results.
- Fixed issue with restarting a game that has ended.
- Removal of NullPointerExceptions occurring with max TPS.
- GUI:
- TPS:
- Loop could occur when typing in the TPS, where TPS would continuously change to different values.
- Setting the TPS to max could be reset to default TPS when restarting the battle or GUI.
- GUI client was registered multiple times with the server.
- TPS:
Documentation
You can read more about Robocode Tank Royale here:
https://robocode-dev.github.io/tank-royale/
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 to be preinstalled on your system. I recommend newer versions of Java, e.g. version 18.
You can read the installation guide to get more details about installing Java and Robocode.
The Robocode GUI application must be run from the command line in order to start and view battles:
java -jar robocode-tankroyale-gui-0.14.2.jar
robocode-tankroyale-gui-0.14.2.jar
Note that you need to download sample bots and install those into directories on your system, and add these directories from the menu:
Config → Bot Root Directories
Sample bots
These sample bots are currently available:
C#: sample-bots-csharp-0.14.2.zip
Java: sample-bots-java-0.14.2.zip
Note that the C# bots need Microsoft .Net SDK 5.0 or newer and must be preinstalled.
Bot API
In order to develop bots for Robocode, you'll need one of the provided APIs for the Java/JVM or .Net platform.
Java:
Available as a jar file: robocode-tankroyale-bot-api-0.14.2.jar
Available as an artifact on the Sonatype Nexus Repository here. At some point after this release the artifact will also become available from the Maven Central Repository.
.Net:
Available as artifact on the Nuget repository:
https://www.nuget.org/packages/Robocode.TankRoyale.BotApi/0.14.2
dotnet add package Robocode.TankRoyale.BotApi --version 0.14.2