Skip to content

Releases: robocode-dev/tank-royale

0.17.2

20 Sep 13:37
Compare
Choose a tag to compare

📦 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

15 Sep 21:27
Compare
Choose a tag to compare

📦 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 id to replace boot process id (pid)
    • Added sessionId and bootId to these schemas: bot-handshake, bot-state-with-id, and participants

🪲 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.

📄 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

06 Sep 21:41
Compare
Choose a tag to compare

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

31 Aug 14:24
Compare
Choose a tag to compare

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-handshake has been extended to include the bootId when the bot is booted locally. This field may be empty when a bot has not been booted by the Booter.
  • Booter:
    • Now generates a unique boot id for each booted bot, and sends this to the bot via the new BOOT_ID environment variable.
  • Bot API:
    • Takes the boot id from the BOOT_ID environment variable and includes this within the bot bot-handshake when it is sent to the server.

Bugfixes:

  • Bot API:
    • Fixed waitFor(Condition) so it executes before checking the condition the first time.
  • 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

17 Aug 18:01
Compare
Choose a tag to compare

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 (setFire and fire)
    • 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.
  • When calling setAdjustRadarForGunTurn(true) then fire assistance will automatically be disabled, and when calling setAdjustRadarForGunTurn(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 gamesTypes field 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 gameTypes field 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.
  • 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

07 Aug 19:14
Compare
Choose a tag to compare

0.14.3 - Fixed setting adjustment turns - 07-Aug-2022

Bugfixes:

  • GUI:
    • NullPointerException when running robocode-tankroyale-gui-0.14.2.jar (#38)
  • Server:
    • AdjustRadarForBodyTurn had no effect on the server side.
    • updateBotTurnRatesAndDirections did not work properly with adjustments for body and gun turn when using setAdjustGunForBodyTurn, setAdjustRadarForGunTurn, and setAdjustRadarForBodyTurn.
  • 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

29 Jul 10:22
Compare
Choose a tag to compare

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 Bot class did not work properly (bot, gun, and radar did not turn at all).
  • 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.

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

0.14.1

14 Jul 19:18
Compare
Choose a tag to compare

0.14.1 - Added BotInfo builder - 14-Jul-2022

Improvements:

  • Bot API:
    • BotInfo:
      • A builder has been provided for creating BotInfo instances.
      • Size constraints have been added for the individual BotInfo fields/methods.
      • Various bugfixes for BotInfo.
    • GameTypes:
      • Added missing game type for "classic" game + updated documentation.

Documentation

You can read more about Robocode Tank Royale here:
https://robocode-dev.github.io/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.1.jar

robocode-tankroyale-gui-0.14.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.14.1.zip
Java: sample-bots-java-0.14.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.14.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.14.1

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

0.14.0

03 Jul 20:02
Compare
Choose a tag to compare

0.14.0 - Adjustments for bot events - 03-Jul-2022

Changes:

  • Bot API:
    • Adjusted the bot events to make it easier to make a bridge between legacy Robocode bots and Tank Royale later (#12).
    • Introduced BotDeathEvent and HitByBulletEvent.
    • Made priority values forDefaultEventPriority public, and changed event priority order to match the original Robocode game.
    • Bot event priorities can now be read and changed.
  • GUI:
    • The Pause/Resume and Stop button are now disabled when the battle is stopped.
  • Schema:
    • Replaced $type with type to make it possible to use more code generators #31

Documentation

You can read more about Robocode Tank Royale here:
https://robocode-dev.github.io/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.0.jar

robocode-tankroyale-gui-0.14.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.14.0.zip
Java: sample-bots-java-0.14.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.14.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.14.0

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

0.13.4

06 Jun 11:56
Compare
Choose a tag to compare

0.13.4 - GUI improvements + bugfix - 06-Jun-2022

Bugfixes:

  • Bot API for Java:
    • Major bugfix with getTurnRemaining() (#28), which returned the wrong value. This could be seen with the sample bot, Crazy, which did not turn correctly.

Changes:

  • GUI:
    • Del Key: It is now possible to use the Del key to remove a selected bot item on the Booted Bots (to unboot), Joined Bots, and Selected Bot lists when selecting bots for a new battle.
    • Unboot All: An ← Unboot All button has been added right below the ← Unboot button.
    • TPS:
      • The last used TPS (Turns Per Second) is now restored when starting up the GUI again.
      • Added a "Default TPS" button to reset the TPS to the default setting (30 TPS).
    • Tool tips: Added tool tip texts on the Control panel.

Documentation

You can read more about Robocode Tank Royale here:
https://robocode-dev.github.io/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.13.4.jar

robocode-tankroyale-gui-0.13.4.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.13.4.zip
Java: sample-bots-java-0.13.4.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.13.4.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.13.4

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