Build the best - destroy the rest!

Showing posts with label Release. Show all posts
Showing posts with label Release. Show all posts

Wednesday, 4 June 2025

Robocode 1.10.0

Version 1.10.0 (04-Jun-2025)

Robocode's code around RobocodeSecurityManager has been refactored to ensure compatibility with Java 24 and newer versions, even after the retirement of the Security Manager in Java 24. Read more here.
Additionally, Robocode remains fully functional on older Java versions, from Java 8 onward.

Changes

  • Java 24 support: Implemented new security mechanisms that work with Java 24+ while maintaining compatibility with Java 8+.
  • Versioning update: Adopted Semantic Versioning starting with version 1.10.0.
Download Robocode 1.10.0 from here

Saturday, 31 May 2025

Robocode 1.9.5.6

Version 1.9.5.6 (30-May-2025)

Bugfix

Lim Sim Yee found and fixed the following vulnerabilities. Thank you for the PRs ❤️

Vulnerabilities fixes:

  • Bug #67: The CacheCleaner contained a Directory Traversal Vulnerability when deleting files (recursively).
  • Bug #68: Fix for Insecure Temporary File Creation.
  • But #70: Fix Integer Overflow Vulnerability in Buffer Write Method.
Download Robocode 1.9.5.6 from here

Sunday, 30 March 2025

Robocode 1.9.5.5

Version 1.9.5.5 (29-Mar-2025)

Changes

  • Robocode cannot run with Java 24, which implemented JEP 486: Permanently Disable the Security Manager.
    • Robocode has its own security manager built on top of Java's Security Manager, which has now been removed with Java 24.
    • Robocode will not start up when running Robocode on Java 24 and newer. Instead, an error message is written out that Robocode does not support Java 24.
    • Fixing this issue requires a big rewrite of large parts of the security mechanisms in Robocode to prevent robots from doing harm on the system and from cheating against other competitor robots in battles.
    • Use Java 23 or an older version of Java instead, or head over to the new platform for Robocode: Robocode Tank Royale.
Download Robocode 1.9.5.5 from here

Monday, 30 September 2024

Robocode 1.9.5.4

Version 1.9.5.4 (30-Sep-2024)

Bugfix

  • The built-in Eclipse Compiler for Java (ECJ) could not be found.
Download Robocode 1.9.5.4 from here

Wednesday, 11 September 2024

Robocode 1.9.5.3

Version 1.9.5.3 (11-Sep-2024)

Bugfix

  • [#66]: Fixed an issue where Robocode would not start when executing the robocode.sh script for Linux and macOS due to this error: java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release
    • Thanks goes to @scientificworld for this fix. 😊

Improvements

  • Upgraded built-in Eclipse Compiler for Java to version 3.39
Download Robocode 1.9.5.3 from here

Tuesday, 24 October 2023

Robocode 1.9.5.2

Version 1.9.5.2 (24-Oct-2023)

Bugfix:

  • Fixed Throwable: java.lang.LinkageError: loader constraint violation: when resolving method issue in the RobotClassLoader.
Download Robocode 1.9.5.2 from here

Sunday, 30 July 2023

Robocode 1.9.5.1

Version 1.9.5.1 (30-Jul-2023)

Bugfix:

  • Fixed ClassCastException with URLClassLoader when accessing ClassLoader.getSystemClassLoader() on Java version newer than Java 8 and running with -DNOSECURITY=true.

Improvements

  • Updated all .bat, .sh, and .command files so the _JAVA_OPTIONS is now set automatically regardless of the Java version.
  • Updated dependencies.
Download Robocode 1.9.5.1 from here

Sunday, 26 February 2023

Robocode 1.9.5.0

Version 1.9.5.0

Please note that you should be aware of which version of Java you are using for running Robocode. Otherwise, Robocode might not start. You can check this by running this command in a terminal: java -version. If you are running on a Java version older than version 12, you need to uncomment or remove this line in the robocode.bat or robocode.sh file:

_JAVA_OPTIONS="-Djava.security.manager=allow"

If you are running on Java 12 or newer, then the above line is required, and should not be removed!

Bugfix:

  • Bug-418: Excluded bots are removed from LiteRumble. Thanks to Xor for this fix! :)

Improvements

  • Updated all .bat, .sh, .command files with detailed information about various settings. Now you only need to comment out the line containing _JAVA_OPTIONS="-Djava.security.manager=allow" if you run on Robocode on a Java version older than version 12, and you can disable Direct3D on Windows, and also set the rasterizer used in Direct3D. Have a look at robocode.bat and robocode.sh if you want to see the details.
  • Robocode does not touch any sun.java2d programmatically anymore as these give different results on different hardware (obviously). So the user needs to set these explicitly as options when starting up Robocode. Go to this page if you want to experiment with
    these settings.
Download Robocode 1.9.5.0 from here

Saturday, 28 January 2023

Robocode 1.9.4.9

Version 1.9.4.9 (28-Jan-2023) Fixed "no security" and HiDPI

Bugfixes

  • NOSECURITY=true could cause a ClassNotFoundException for the robots.
  • Rendering issue on Windows when setting sun.java2d.ddoffscreen=false. Hence, this setting has been removed.
  • If the NOSECURITY or EXPERIMENTAL property has been set to true, a warning is now printed out to standard out.
  • Re-fix Bug-394 by actually supporting HiDPI. Thanks to Xor for this fix! :)
Download Robocode 1.9.4.9 from here

Tuesday, 29 November 2022

Robocode 1.9.4.8

Version 1.9.4.8 (29-Nov-2022) Reworked Disabling Security Manager

Bugfixes

  • Rendering issues on Windows using accelerated hardware, by setting this Java properties:
    • sun.java2d.d3d=false (turn off use of Direct3D)
    • sun.java2d.ddoffscreen=false (turn of Direct Draw off-screen)
    • sun.java2d.noddraw=true (no use of Direct Draw)
    • sun.java2d.opengl=True
  • Adding -source 1.5 to the ECJ compiler options to prevent "...only available if source level is 1.5 or greater" error when compiling with ECJ.

Improvements

  • Security Manager: When setting the NOSECURITY=true (e.g. via the -DNOSECURITY=true property in the java command-line), then internal security manager of Robocode is now totally disabled, and falling back on the default security manager used in Java.
    • This fixes issues with the class loader not being able to find classes resulting in ClassNotFoundExceptions, and other issues as well.
  • Updated built-in Eclipse Compiler for Java (ECJ) to version 3.26 (June 2021), which is the last version of ECJ capable to run on Java 8 (newer ECJ versions requires Java 11 as minimum).
Download Robocode 1.9.4.8 from here

Saturday, 6 August 2022

Robocode 1.9.4.7

Version 1.9.4.7 (05-Aug-2022) System.getenv support

Changes

  • #35 System.getenv is now allowed and can now be called without throwing a security exception. Hence, the robot will not be banned from battles when using System.getenv.
Download Robocode 1.9.4.7 from here

Wednesday, 15 June 2022

Robocode 1.9.4.6

Version 1.9.4.6 (15-Jun-2022) The Java 18 support release

Newer versions of Java is making things harder for the codebase of Robocode.

With Java 18 (JEP 411), the Security Manager is disabled by default, but can be allowed by the user from the command line. Hence, with this version of Robocode, the -Djava.security.manager=allow system property has been added to the script for making it possible to run Robocode on Java 18. Note that this is just a work-around, as the Security Manager will be permanently removed from Java at some point in the future when newer major versions of Java are released.

This is a big concern for Robocode, which uses the Security Manager to control access to various resources between robots running on the same JVM. And currently, no good substitute exists for replacing the Security Manager (or find a good way to remove it) from Robocode without breaking things.

Bugfix

  • Java 18 fix: Robocode could not run on the newest Java 18 due to the terminally deprecated Security Manager.
    • The Security Manager is now explicitly being allowed to run with the .bat, .sh, and .command files by adding setting this system property: -Djava.security.manager=allow.
  • Give bots without rank highest priority in the LiteRumble (RoboRumble). Thank you Xor for this fix! :)
Download Robocode 1.9.4.6 from here

Tuesday, 22 March 2022

Robocode 1.9.4.5

Version 1.9.4.5 (22-03-2022)

Bugfix

  • Fixed java.io.IOException: Stream Closed when auto-recording is enabled.
  • A mystic word on was written to the console.
Download Robocode 1.9.4.5 from here

Sunday, 5 September 2021

Robocode 1.9.4.3

Version 1.9.4.3 (04-09-2021)

Changes

  • Chocolatey installer is now provided for Windows.
  • Roborumble could now override RUMBLE_USER, RUMBLE_PARTICIPANTSURL, RUMBLE_UPDATEBOTSURL, RUMBLE_RESULTSURL, RUMBLE_RATINGSURL via environment variables. Fixed to not clash with system USER env variable.
  • Updated ReadMe file.
  • Updated link to Java API documentation.

Bugfix

  • Bug-415: Loading pre-loaded data 1.9.4.2
    • Fixed robot naming to be compatible with existing robots
    • Thanks go to Alex Schultz (Rednaxela) for fixing this issue. :)
  • Installer (dos2unix): more reliable way to move files
    • Thank you dshatov (GitHub) for this fix. :)
  • The classpath in the compiler setting does not include the path to rt.jar anymore, which caused compiler errors.
Download Robocode 1.9.4.3 from here

Monday, 10 May 2021

Robocode 1.9.4.2

Version 1.9.4.2 (10-05-2021)

Changes

  • A robot index has been added to all robot in the format name + (index). This is change was made to fix various issues in e.g. team bots and make the internal logic simpler.
  • Improved the API documentation for the TeamRobot and Droid team robots.

Bugfix

  • Fixed getTeammates() that returned the wrong names and isTeammate() that returned false for teammates.
Download Robocode 1.9.4.2 from here

Friday, 9 April 2021

Robocode 1.9.4.1

Version 1.9.4.1 (09-04-2021)

This release comes with lots of improvements. First and foremost, the old Maven build setup has been replaced with a Gradle build setup, and we moved to use IntelliJ IDEA for developing Robocode. The Robocode artefacts can also be uploaded to Sonatype's Maven Repository using Gradle.

In addition, a bug fix has been made for ramming, but a lot of other improvements were made for easy testability.

And a RoboRumble client has also been published as Docker image as well.

All credits go to Pavel Savara that has made a big effort into this release. :)

Please note that with this release the .Net plugin has been removed from Robocode. It was based on .Net Framework 3.5 and the required toolchain for building the plugin and the documentation for it had got some serious issues as well.

Changes

  • Bug-414 Fixed bug in ramming: when robots collide, they should and do change position. But the bullets were still hitting original place in the next turn, as if the robot was not moved by collision.
  • Robot painting to screen per default could be enabled by -DPAINTING=true
  • Made installer compatible with headless systems. Made default classPath lib/* for startup scripts.
  • Improve testability:
    • Moved robocode.control.RobotTestBed.
    • RoundStartedEvent.getRobotObjects() is available on Control API. Useful for white-box testing of robot state.
    • Exceptions in the robot are now propagated to unit test. See test.robots.TestThrowing.
    • Exceptions in the robot are now propagated to BattleErrorEvent of control API when -DTESTING=true
    • Improved Robot and Bullet toString() so that it displays approximate cardinal direction, like N,NE,E,SE,S,SW,W,NW
    • Added Utils.assertNotNull(), Utils.assertEquals(), Utils.assertTrue(), Utils.assertNear() for testing comfort.
    • Bullet IDs are now more unique.
    • Unit test is aborted on robot exception.
    • Control API could now take screenshots.
    • Unit test could enable taking screenshots when exception or asset occurs. See RobotTestBed.isEnableScreenshots()
    • Robots could be statistically tested against multiple opponents. For example see net.sf.robocode.test.robots.TestScore
  • Roborumble could now override USER, PARTICIPANTSURL, UPDATEBOTSURL, RESULTSURL, RATINGSURL via environment variables.
  • Published Roborumble client as docker image to https://hub.docker.com/r/zamboch/roborumble with the above environment variables available.

Version 1.9.4.0 (15-02-2021)

Changes

  • Migrated from Maven to Gradle.
  • Migrated from Eclipse to Idea.
  • Published to Maven Central.
Download Robocode 1.9.4.1 from here

Monday, 20 April 2020

Robocode 1.9.3.9

Version 1.9.3.9 (20-04-2020)

Changes

  • Updated RoboRumble links to use HTTPS instead of HTTP
    • Thank you Skilgannon for this fix, and especially to get the RoboWiki up and running again! :-)
  • Updated all links to RoboWiki to use HTTPS.
Download Robocode 1.9.3.9 from here
Download Robot testing plug-in 1.9.3.9 from here

NOTE: The .NET plugin is not supported with this release. Use Robocode 1.9.3.3, which supports the .NET plugin.

Sunday, 29 March 2020

Robocode 1.9.3.8

Version 1.9.3.8 (29-03-2020)

Bugfixes

  • Bug-410: Remove obsolete warnings regarding colors and turns. * Thanks goes to Lufte for fixing this.
  • Bug-412: Bug fix 388 breaks score display in robot buttons.
  • Prevent robot console from trimming log.
    • Thank you Xor for the last two fixes. :-)
Download Robocode 1.9.3.8 from here
Download Robot testing plug-in 1.9.3.8 from here

NOTE: The .NET plugin is not supported with this release. Use Robocode 1.9.3.3, which supports the .NET plugin.

Saturday, 31 August 2019

Robocode 1.9.3.7

Version 1.9.3.7 (31-08-2019)

Bugfixes

  • Bug-407: RobocodeEngine: Can't find robocode.core-1.x.jar
  • Bug-409: Robot repository is completely rebuilt whenever dev dir is changed via UI.
Download Robocode 1.9.3.7 from here
Download Robocode .NET plug-in 1.9.3.7 from here
Download Robot testing plug-in 1.9.3.7 from here

Wednesday, 8 May 2019

Robocode 1.9.3.6

Version 1.9.3.6 (08-05-2019)

Bugfixes

  • Bug-404: Confusion between development/non-development versions of bots * Rollback of previous attempt to fix issues with the RobocodeEngine, which could not read robots in "developer mode" (marked with a asterix character). Hence the old bug [Bug-398][] has been reintroduced.
  • Bug-406: DNS interaction is not blocked by Robocode's security manager
  • Fixed issue where compiled robots could not be found. Added -encoding UTF-8 to the compiler options, and corrected -version option into -verbose.

Changes

  • Fix by Bumfo, which makes Robocode faster at detecting robots in the robot folder, which is crucial for the RoboRumble, when installing or updating a huge amount of robots.
Download Robocode 1.9.3.6 from here
Download Robocode .NET plug-in 1.9.3.6 from here
Download Robot testing plug-in 1.9.3.6 from here