Skip to content

Releases: robocode-dev/tank-royale

0.21.0

02 Oct 20:23
Compare
Choose a tag to compare

πŸ“¦ 0.21.0 - Improved scoring - 02-Oct-2023

πŸš€ Improvements

  • Bot API:
    • Added stop(boolean overwrite) and setStop(boolean overwrite) to overwrite the saved movement from a previous
      call to setStop() with current movement values. These methods provide backwards compatibility with the original
      Robocode with the [Robocode API Bridge] (in progress).
    • Due to the removal of Java's Thread.kill() and .Net's Thread.Abort(), the main thread of the bot is no longer
      being killed by those methods is those threads could not be interrupted. Instead, the bot process it shut down
      with an error message:
      The thread of the bot could not be interrupted causing the bot to hang. So the bot was stopped by force.

πŸͺ² Bug Fixes

  • Scoring:
    • Fixed various scoring issues when comparing to original Robocode.
  • Bot API:
    • Fixed race condition when adding custom events.
  • Bot Console:
    • Events are only printed out while the bot is alive or has just died.
    • The DeathEvent was missing.

πŸ“„ 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.21.0.1.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.21.0.zip Microsoft .Net SDK 5.0 or newer
Java sample-bots-java-0.21.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.20.1

14 Sep 22:41
Compare
Choose a tag to compare

πŸ“¦ 0.20.1 - Added Events to bot console - 15-Sep-2023

πŸš€ Improvements

  • Bot Console (in GUI):
    • Added a new tab on the Bot Console that continuously dumps the bot events as they occur.
    • Bot property column values on bot consoles are now written in bold and with a monospace font.

πŸ“„ 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.20.1.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.20.1.zip Microsoft .Net SDK 5.0 or newer
Java sample-bots-java-0.20.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.20.0

23 Aug 19:55
Compare
Choose a tag to compare

πŸ“¦ 0.20.0 - Added support for teams and droids - 23-Aug-2023

πŸš€ Improvements

  • Team support:
    • Added support for teams, where a team is a group of bots that work together to battle against other teams (or bots). Each team member can communicate with the other teammates, which is crucial to share information and coordinate movement and attacks.
  • Droid interface:
    • A Droid interface was added that turns a bot into a droid bot, which has no radar but has 120 initial energy points instead of the normal 100 starting points. The droid is intended for team bots.
  • Sample Bots:
    • MyFirstTeam has been added to demonstrate how to set up a team.
    • MyFirstLeader is a team bot that has been added to demonstrate a (leader) bot that is responsible for scanning enemy bots and sending the coordinates of the current target, to fire at, to the teammates.
    • MyFirstDroid is a team bot that is a droid, and hence comes with no radar, and relies entirely on the MyFirstLeader to send data about which target coordinate to fire at.
  • Bot API:
    • Added the TeamMessageEvent which is received when another team member has sent a message.
    • Added these new methods to support teams:
      • getTeammateIds() to get the ids of all teammates in a team.
      • isTeammate(botId) to check if a bot with a specific id is a teammate or opponent.
      • broadcastTeamMessage(message) broadcasts a message to all team members.
      • sendMessage(botId, message) sends a message to a specific team member.
      • onMessageReceived(TeamMessageEvent) is an event handler to take action when a team message is received.
    • Added the Droid interface (no scanner, but 120 initial energy points).
  • Booter:
    • Updated to support booting teams besides bots.
    • Changed the name of the run command into boot.
    • Changed command option -T into -g for filtering game rules (-t is now used for the team-only option).
    • Added --botsOnly and corresponding -b option flag for filtering on bots only (excluding teams).
    • Added --teamsOnly and corresponding -t option flag for filtering on teams only (excluding bots).
  • GUI:
    • Added Directory Filter dropdown to filter on bots and teams.
    • The results window now aggregates scores for teams as well as bots and got a wider "Name" column. Some column names were changed, and tooltips were added to fields containing values/scores.
  • Schema:
    • Renamed bot-results-for-bot and bot-results-for-observer into results-for-bot and results-for-observer as participants now include teams and not just bots.

πŸͺ² Bug Fixes

  • GUI:
    • The GUI could get stuck and become unresponsive when displaying the busy pointer.

πŸ“„ 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.20.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.20.0.zip Microsoft .Net SDK 5.0 or newer
Java sample-bots-java-0.20.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.19.3

04 Aug 20:01
Compare
Choose a tag to compare

πŸ“¦ 0.19.3 - Maintenance - 04-Aug-2023

πŸš€ Improvements

  • Server and Booter:
    • The command-line options and commands are now case-insensitive.
    • Changed --botSecrets and --controllerSecrets into --bot-secrets and --controller-secrets.
  • GUI:
    • The standard output and standard error messages are now being cached within the GUI for the current round for the individual bots, so the history of the round is available when opening the bot consoles.
    • Changed the display name of the bot on the bot buttons and bot console title.

πŸͺ² Bug Fixes

  • Server:
    • Allow bots to connect to non-localhost addresses (PR [#69]).
  • Bot API:
    • Fixed broken unit test for .Net.
  • GUI:
    • Fixed the issue, where the battle graphics was not displayed when starting the battle.
    • Fixed calculation of 1st, 2nd, and 3rd places.

πŸ“„ 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.19.3.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.19.3.zip Microsoft .Net SDK 5.0 or newer
Java sample-bots-java-0.19.3.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.19.2

05 Apr 18:41
Compare
Choose a tag to compare

πŸ“¦ 0.19.2 - Added bot properties tab - 05-Apr-2023

πŸš€ Improvements

  • GUI:
    • A new Properties tab was added to the bot console, which shows the values of all bot properties for the current turn. This is useful for viewing the exact values and for debugging a bot.
    • When displaying an arena bigger than the window showing the battle, the window is now zooming into the battle arena automatically so that the visual field fits into the window.

πŸͺ² Bug Fixes

  • GUI:
    • When changing the game type for a battle, the arena did not change visually to accommodate a new size of the battle arena.
  • Server:
    • [#66]: The server is not accepting the full range of ports.

πŸ“„ 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.19.2.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.19.2.zip Microsoft .Net SDK 5.0 or newer
Java sample-bots-java-0.19.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.19.1

26 Feb 14:46
Compare
Choose a tag to compare

πŸ“¦ 0.19.1 - Maintenance - 26-Feb-2023

πŸš€ Improvements

  • GUI:
    • Console windows for bots and the server now supports 3-bit and 4-bit ANSI colors (foreground and background) and simple text formatting.
    • Added bot died info to the bot console.
    • Direct3D and OpenGL acceleration is now disabled under Windows. You can add those yourself when you start up the GUI using the java command. Read more about it here.

πŸͺ² Bug Fixes

  • Server:
    • [#60]: The round-ended event was not sent, in the round when the game ended.
  • GUI:
    • Joined Bots list was not updated (removing bots) when the game is aborted.
    • The properties sun.java2d.d3d, sun.java2d.noddraw, and sun.java2d.opengl is now omitted under macOS.
    • Fixed label colors for fields showing country codes (with flags).
    • Sometimes flags were "empty" when clicking on a joined bot.
  • Bot API for .Net:
    • Issue where the Game Types field was overwritten by Country Codes (could be seen on the UI).

πŸ“„ 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.19.1.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.19.1.zip Microsoft .Net SDK 5.0 or newer
Java sample-bots-java-0.19.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.19.0

28 Jan 10:35
Compare
Choose a tag to compare

πŸ“¦ 0.19.0 - Added bot console windows

πŸš€ Improvements

  • GUI:
    • A side panel has been added to the right side of the battle view with buttons for each participant bot. When
      clicking one of these buttons, a bot console window is opened that prints out the standard output (stdout) and
      standard error (stderr) from the bot.
    • Added 'OK', 'Clear', and 'Copy to clipboard' buttons to the server log window.
    • Renamed buttons named "Dismiss", used for closing dialogs, to "OK".
  • Bot API:
    • When a bot is booted, its standard output (stdout) and standard error (stderr) streams are redirected to the bot
      intent sent to the server, which forwards the data to the observers, making it possible to show stdout and stderr
      in the bot console windows.
    • [#46]: The RoundEndedEvent now contains a results field containing the accumulated results by the end of a
      round.
  • Schema:
    • [#46]: The round-ended-event has been split up into round-ended-event-for-bot that provides only results for a
      bot,
      and round-ended-event-for-observer that provides the results for all bots for observers.

πŸͺ² Bug Fixes

  • Bot API:
    • setAdjustRadarForGunTurn() was made compatible with orig. Robocode.
    • 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.

πŸ“„ 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.19.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.19.0.zip Microsoft .Net SDK 5.0 or newer
Java sample-bots-java-0.19.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:

πŸ“¦ .Net:

Available as:

0.18.0

18 Dec 22:02
Compare
Choose a tag to compare

πŸ“¦ 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, and gameTypes when parsing
      the BotInfo schema 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.
  • 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() and removeCondition() 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.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.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:

πŸ“¦ .Net:

Available as:

0.17.4

16 Oct 22:16
Compare
Choose a tag to compare

πŸ“¦ 0.17.4 - Maintenance - 16-Oct-2022

πŸš€ Improvements

  • Server:
    • Added --tps option 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).
  • 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 Help menu 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.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.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:

πŸ“¦ .Net:

Available as:

0.17.3

02 Oct 16:09
Compare
Choose a tag to compare

πŸ“¦ 0.17.3 - Maintenance - 02-Oct-2022

⚑ Changes

  • #43: Possibility to identify bot from Process to Tick:
    • Went back to boot process pid instead of using the boot id.
  • 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