Skip to content

Releases: robo-code/robocode

Robocode 1.10.0

04 Jun 19:27
Compare
Choose a tag to compare

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.

Robocode 1.9.5.6

30 May 22:32
Compare
Choose a tag to compare

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:

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

Robocode 1.9.5.5

29 Mar 22:49
Compare
Choose a tag to compare

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.

Robocode 1.9.5.4

30 Sep 17:55
Compare
Choose a tag to compare

Version 1.9.5.4 (30-Sep-2024)

Bugfix

  • The built-in Eclipse Compiler for Java (ECJ) could not be found.

VER_1_9_5_3

11 Sep 20:37
Compare
Choose a tag to compare

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

Improvements

  • Upgraded built-in Eclipse Compiler for Java to version 3.39

1.9.5.2

24 Oct 19:59
Compare
Choose a tag to compare

Version 1.9.5.2 (24-Oct-2023)

Bugfix:

  • Fixed Throwable: java.lang.LinkageError: loader constraint violation: when resolving method issue in the RobotClassLoader.

1.9.5.1

30 Jul 12:14
Compare
Choose a tag to compare

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.

1.9.5.0

26 Feb 10:31
Compare
Choose a tag to compare

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.

1.9.4.9

28 Jan 11:15
Compare
Choose a tag to compare

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! :)

Robocode 1.9.4.8

29 Nov 19:35
Compare
Choose a tag to compare

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

Bugfixes

  • Rendering issues on Windows using accelerated hardware, by setting these 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 the 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 require Java 11 as a minimum).