Build the best - destroy the rest!

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

No comments: