Releases: robocode-dev/tank-royale
0.13.1
0.13.1 - Fixing event queue + country codes
Bugfixes
- Bot APIs:
- Fixed issue with turning the body, gun, and radar as first and only
thing (#23). - Fixed issue with rescanning and interrupting current event handler. Redesigned the event queue.
- Fixed issue with dangling threads not been stopped (interrupted) correctly.
- Fixed issue with turning the body, gun, and radar as first and only
- Bot API for .Net:
- Fixed issue with country codes (on macOS) which also caused boot up problems for .Net based bots running under
macOS (#20). - Fixed issue with bots stopping doing actions when battle is restarted. E.g. the Corners sample bot was affected by
this issue.
- Fixed issue with country codes (on macOS) which also caused boot up problems for .Net based bots running under
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.1.jar
robocode-tankroyale-gui-0.13.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.13.1.zip
Java: sample-bots-java-0.13.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.13.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.13.1
dotnet add package Robocode.TankRoyale.BotApi --version 0.13.1
0.13.0
0.13.0 - Bot API for .Net 6
Changes
- Bot API:
- Upgraded the .Net version of the bot API for .Net 6.0 as .Net 5.0 is soon EOL.
- The id was removed from
BotResults
, andGameEndedEvent
will only return a singleBotResult
containing
the battle results for the bot (instead of a list containing results from all bots). - Added setting and getting 'adjusting radar for body turn'.
- The
scan()
andsetScan()
methods were renamed torescan()
andsetRescan()
. - Added
setInterruptible(boolean interruptible)
/Interruptable = [bool]
to allow restarting an event handler
while it is processing an earlier event.
- GUI:
- A tooltip text has been added to the 'Start button' that shows the minimum or maximum number of participants
required for starting the battle.
- A tooltip text has been added to the 'Start button' that shows the minimum or maximum number of participants
- Protocol:
- Removal of the
speed
field of thebullet-state
as the speed can be calculated as:20 - 3 x power
.
Hence, there is no need to transfer this information over the network. - Moved id from
bot-results-for-bot
tobot-results-for-observer
. - The
scan
field onbot-intent
was renamed torescan
.
- Removal of the
Bugfixes
- Bot API:
- Blocking bot functions do not stop bot after
finishing (#17). - Fixed issue where event queue would overflow with unhandled events when a Bot´s
run()
method has ended.
- Blocking bot functions do not stop bot after
- GUI:
- The 'Start game' button is now disabled when the minimum or maximum number of participants is not met.
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.0.jar
robocode-tankroyale-gui-0.13.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.13.0.zip
Java: sample-bots-java-0.13.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.13.0.jar
Available as an artifact on the Maven Central Repository
https://search.maven.org/artifact/dev.robocode.tankroyale/robocode-tankroyale-bot-api/0.13.0/jar
.Net:
Available as artifact on the Nuget repository:
https://www.nuget.org/packages/Robocode.TankRoyale.BotApi/0.13.0
dotnet add package Robocode.TankRoyale.BotApi --version 0.13.0
0.12.0
0.12.0 - Single stepping battle
Changes
- GUI:
- Added 'Next turn' button beside the pause button in with the control panel to useful for single-stepping a
battle, e.g. when debugging your bot. - Improvements to the battle dialog for selecting game type and bots for a new battle.
- Added button for setting up rules.
- Added tooltip texts.
- Added 'Next turn' button beside the pause button in with the control panel to useful for single-stepping a
- Protocol: Removal of rgb-value type from the protocol of Bot APIs.
- Bot API: The
Color.fromRgb()
has been replaced byColor.fromString()
.
Bugfixes
- Bot API: Make sure the bot terminates (system exit) upon a connection error to prevent dangling bot processes, which is
usually occurring when terminating the UI, which closes the bot connections. - GUI: When dragging the battle arena, the graphics were not updated while dragging.
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.12.0.jar
robocode-tankroyale-gui-0.12.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.12.0.zip
Java: sample-bots-java-0.12.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.12.0.jar
Available as an artifact on the Maven repository:
<dependency>
<groupId>dev.robocode.tankroyale</groupId>
<artifactId>robocode-tankroyale-bot-api</artifactId>
<version>0.12.0</version>
</dependency>
.Net:
Available as artifact on the Nuget repository:
https://www.nuget.org/packages/Robocode.TankRoyale.BotApi/0.12.0
dotnet add package Robocode.TankRoyale.BotApi --version 0.12.0
0.11.2
0.11.2 - Fix restart issue
Bugfixes
- Battle does not restart (#10).
- Bot API did not stop thread when GameAbortedEvent occurred (when restarting).
- When restarting, a two or more games could be started on the server.
Documentation
You can read more about Robocode Tank Royale here:
https://robocode-dev.github.io/tank-royale/
Running Robocode
You need Java 11 as minimum or newer to be preinstalled on your system. 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.11.2.jar
robocode-tankroyale-gui-0.11.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.11.2.zip
Java: sample-bots-java-0.11.2.zip
Note that the C# bots need Microsoft .Net SDK 5.0 or newer 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.11.2.jar
Available as an artifact on the Maven repository: https://mvnrepository.com/artifact/dev.robocode.tankroyale/robocode-tankroyale-bot-api
<dependency>
<groupId>dev.robocode.tankroyale</groupId>
<artifactId>robocode-tankroyale-bot-api</artifactId>
<version>0.11.2</version>
</dependency>
.Net:
Available as artifact on the Nuget repository:
https://www.nuget.org/packages/Robocode.TankRoyale.BotApi/0.11.2
dotnet add package Robocode.TankRoyale.BotApi --version 0.11.2
v0.11.1
0.11.1 - Patch for the GUI
Bugfixes
- ConcurrentModificationException could occur for BotSelectionPanel.updateJoinedBots(). Could not create a new battle.
- Fixed issue with starting a new battle from the menu with Battle → 'Start Battle' a second time.
Changes
- "Restart server" has been renamed into "Reboot Server", and the server and battle is fully stopped, and bots are
disconnected. Confirmation dialog for rebooting now differ between the reboot is a user action or due to a changed
server setting. - Control panel (Pause/Resume, Stop, Restart, TPS) is now always shown when first battle has been started. Various
improvements were done to the control panel. - A busy cursor is now (automatically) shown when an operation takes some time to perform.
Documentation
You can read more about Robocode Tank Royale here:
https://robocode-dev.github.io/tank-royale/
Running Robocode
You need Java 11 as minimum or newer to be preinstalled on your system. 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.11.1.jar
robocode-tankroyale-gui-0.11.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.11.0.zip (reusing version 0.11.0)
Java: sample-bots-java-0.11.0.zip (reusing version 0.11.0)
Note that the C# bots need Microsoft .Net SDK 5.0 or newer 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.11.0.jar (reusing version 0.11.0)
Available as an artifact on the Maven repository: https://mvnrepository.com/artifact/dev.robocode.tankroyale/robocode-tankroyale-bot-api
<dependency>
<groupId>dev.robocode.tankroyale</groupId>
<artifactId>robocode-tankroyale-bot-api</artifactId>
<version>0.11.1</version>
</dependency>
(The version 0.11.0 and 0.11.1 of the bot api artifact are identical)
.Net:
Available as artifact on the Nuget repository:
https://www.nuget.org/packages/Robocode.TankRoyale.BotApi/ (reusing version 0.11.0)
dotnet add package Robocode.TankRoyale.BotApi
v0.11.0
0.11.0 - Initial position feature
Bugfixes
- Fixes for building Java artifacts to deploy to Maven artifactory.
- Bot API: Replaced the environment variable BOT_URL (deprecated) with BOT_HOMEPAGE.
- Bot API for .Net: Added missing public Bot(BotInfo, Uri, string serverSecret) constructor.
Changes
- Implemented initial position feature:
- Add an
initialPosition
field in the JSON file for your bot with a value like50,50,90
to request a starting
coordinate at (50,50) with the bot heading toward 90°. - A
--enable-initial-position
(or the short version-I
) must be set to enable the initial positions feature on
the server. If initial position is not enabled, the bot will start at a random position. - Initial positions can be set from the menu with Config → Debug Options → Enable initial start position.
- The Target.json file of the Target sample has been updated with an
initialPosition
to demonstrate this feature.
- Add an
- Updated the SpinBot sample bot for C# to demonstrate the use of
BotInfo.FromConfiguration(IConfiguration)
. - The config file named
misc.properties
has been renamed intoconfig.properties
and theserver-url
setting was
moved to theserver.properties
file. - When the server settings are changed on the GUI, the user will be asked if the server should be rebooted to let the
changes take effect.
Documentation
You can read more about Robocode Tank Royale here:
https://robocode-dev.github.io/tank-royale/
Running Robocode
You need Java 11 or newer to be preinstalled on your system. 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.11.0.jar
robocode-tankroyale-gui-0.11.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.11.0.zip
Java: sample-bots-java-0.11.0.zip
Note that the C# bots need Microsoft .Net SDK 5.0 or newer 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:
Java:
Available as a jar file: robocode-tankroyale-bot-api-0.11.0.jar (reusing version 0.11.0)
(Artifact from Maven does not work. Work is in progress to fix this for version 0.12.0.
<dependency>
<groupId>dev.robocode.tankroyale</groupId>
<artifactId>robocode-tankroyale-bot-api</artifactId>
<version>0.11.0</version>
</dependency>
.Net:
Available as artifact on the Nuget repository:
https://www.nuget.org/packages/Robocode.TankRoyale.BotApi/
dotnet add package Robocode.TankRoyale.BotApi
v0.10.0
About
This release is an early alpha version meant for people to try out and give feedback on.
0.10.0 - Bot API improvements
Bug fixes:
- Fixed MyFirstBot.java (sample bot) not running.
- Various bug fixes were found in the Bot APIs, and missing get/set methods were added.
- Selected bots were not removed from the New Battle dialog when bots are disconnecting.
- Booter did not transfer environment variables to bot processes from GUI.
Changes:
- Moved documentation from robocode.dev to GitHub Pages
- Changed the default server port from 80 to 7654 to avoid the use of
sudo
beforejava
command (ports above 1023
does not needsudo
) - Bot APIs: Moved constants to a Constants class.
- Bot APIs: Introduced a Color class for representing colors.
- Bot API for .Net: Some Set/Get methods were refactored into properties for e.g. speed, turn rates, and colors.
- Bot API for .Net: Lots of optimizations were made.
Improvements:
- Bot handshake has been extended to include server secret with the bot-handshake and the BaseBot class has been
extended for setting this as input parameter in the constructor. - Server secret has been split into controller/observer secrets and bot secrets
- It is now possible to supply multiple server secrets
- Client is disconnected when sending a wrong secret to the server.
- Bot API now writes out status-code and the reason for disconnecting when it is due to a wrong secret.
Documentation
You can read more about Robocode Tank Royale here:
https://robocode-dev.github.io/tank-royale/
Running Robocode
You need Java 11 or newer to be preinstalled on your system. 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.10.0.jar
robocode-tankroyale-gui-0.10.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.10.0.zip
Java: sample-bots-java-0.10.0.zip
Note that the C# bots need Microsoft .Net SDK 5.0 or newer 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 an artifact on the Maven repository:
https://mvnrepository.com/artifact/dev.robocode.tankroyale/robocode-tankroyale-bot-api
<dependency>
<groupId>dev.robocode.tankroyale</groupId>
<artifactId>robocode-tankroyale-bot-api</artifactId>
<version>0.10.0</version>
</dependency>
NOTE: There is an issue with downloading this artifact with Maven or Gradle. I am working on fixing this.
In the meanwhile, you can download the jar archive and include it in your project.
.Net:
Available as artifact on the Nuget repository:
https://www.nuget.org/packages/Robocode.TankRoyale.BotApi/
dotnet add package Robocode.TankRoyale.BotApi
v0.9.12
About
This is the first release of Robocode Tank Royale.
This release is an early alpha version meant for people to try out and give feedback on.
Documentation
You can read more about Robocode Tank Royale here:
https://robocode-dev.github.io/tank-royale/
Running Robocode
You need Java 11 or newer to be preinstalled on your system. You can read the installation guide to get more details about installing Java and Robocode.
The Robocode application (GUI) can be run from the command-line:
On Windows:
java -jar robocode-tankroyale-gui-0.9.12.jar
On macOS and Linux:
sudo java -jar robocode-tankroyale-gui-0.9.12.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.9.12.zip
Java: sample-bots-java-0.9.12.zip
Note that the C# bots need Microsoft .Net SDK 5.0 or newer to be preinstalled.
Bot API
In order to develop bots for Robocode, you'll need one of the provided APIs.
There is a Java version available with this release as a .jar archive: robocode-tankroyale-bot-api-0.9.12.jar
Later on, the Bot API will be made available on a Maven repository as well via Sonatype.
And the .Net version of the Bot API is available from Nuget here: https://www.nuget.org/packages/Robocode.TankRoyale.BotApi/