Build the best - destroy the rest!

Wednesday, November 11, 2009

Robocode 1.7.1.5

This is the final release of 1.7.1.5 that fixes two bugs compared to the beta version.

Bugfixes


  • RobocodeFileOutputStream.getName() always returned null instead of the filename.

  • Robots listed in e.g. the New Battle window was sorted like: 1.1.1, 1.1.10y, 1.1.2, 1.1.10 (alpha-numerical). But version numbers with an ending letter like in "1.1.10y" like in the versions just listed, were not placed in the correct order. Notice that 1.1.10y is between 1.1.1 and 1.1.2. This bug has been fixed so the versions in the example now will be sorted correctly like: 1.1.1, 1.1.2, 1.1.10, 1.1.10y


Download Robocode 1.7.1.5 from here

Wednesday, October 14, 2009

Robocode 1.7.1.5 Beta

This is a maintenance release of Robocode, which fixes the bugs below.

Bugfixes


  • Bug [2871138] - Graphics2D.getTransform() throws NPE

  • Bug [2872781] - "Teleport" - occurs when robot's distance remaining is very large

  • Bug [2876395] - Source is not included, robot.java.source.included was not set


Download Robocode 1.7.1.5 Beta from here

Thursday, October 8, 2009

How do you test your robot ?

Philip Johnson from University of Hawaii uses Robocode in his computer science course.

He came with idea of unit testing Robocode robots and prepared excellent video guide to show you how to do that.

He reused our implementation of RobotTestBed, which we use to test Robocode engine. We will be working with him to include his idea. Probably as downloadable Robocode extension package.

Code and more could be found in pmj-dacruzer project

Enjoy this great stuff!

Friday, September 25, 2009

Robocode 1.7.1.4

This final version 1.7.1.4 is dedicated for the RoboRumble@Home community where many issues seen with the RoboRumble client have been solved.

In the following the bug fixes and changes compared to the 1.7.1.4 Beta are listed.

Bugfixes


  • Bug [2845608] - java.io.FileNotFoundException in RobotFileSystemManager.init

  • Bug [2845612] - Can't load Katana 1.0 or DrussGT 1.3.1wilo

  • Bug [2854692] - Lockup on start if too many bots in robots dir

  • Bug [2852860] - IllegalArgumentException on painting in some robots

  • Fixed NullPointerException that could occur with the -battle command-line option

Changes


Banning


  • The previous 1.7.x.x versions have been very strict so that robots that could not be loaded, started, skipped too many turns etc. would be disallowed to participate in battles. With the bugfix for bug [2845612] above this policy has been changed so robots are only "banned" if the cause a security violation or they could not be loaded or started (meaning that they are not able to run). In addition, ALL security violations are always written out in both the main console and robot's console. A message will be written out in the main console like "xxx has caused a security violation. This robot has been banned and will not be allowed to participate in battles".

Painting


  • With the bugfix for bug [2852860] a change was made so a robot will now receive this message in its console window, if it is painting too much between actions:
    "SYSTEM: This robot is painting too much between actions. Max. capacity has been reached."

  • Notice that a robot is not allowed to perform an unlimited amount of paint operations for two reasons:

    1. It takes up a lot of memory as the painting operations are recorded in a buffer before being processed, and potentially this buffer must be recorded to a file (for replays). A robot is allowed to use up to a maximum of 64 KB per action. An average painting operation like e.g. fillRect(x, y, width, height) takes up 15 bytes, meaning that more 4000 painting operations should be possible, which is a lot.

    2. It takes a lot of CPU cycles to process the painting buffer to the display making the painting slow if the buffer is too large.


  • It is possible to remove the limit of the robots painting buffer by using the command-line option: -Ddebug=true


Download Robocode 1.7.1.4 from here

Wednesday, August 26, 2009

Robocode 1.7.1.4 Beta

This version is dedicated for the RoboRumble@Home community where many issues seen with the RoboRumble client have been solved.
Thank you all for reporting as many known issues as possible, and also help out solving these - especially with the issue seen with the robot movement that had a big impact on the scores and rankings! :-)

A big thanks goes to Patrick Cupka ("Voidious"), Julian Kent ("Skilgannon"), "Positive" and Nat Pavasant ("Nat") for their combined work with developing and testing the new and improved robot movement regarding acceleration and deceleration rules (Bug [2828072]). :-)

Bugfixes


  • Bug [2828072] - Accel/decel rules introduced in 1.7.1.3 causes trouble.

  • Bug [2828479] - Missed onRobotDeath events.

  • Bug [2819387] - Team jar files reported as corrupted.

  • Bug [2809518] - Does not extract .properties files into bot data dir. This fix did not work properly as the file sizes were truncated to 0 bytes.

  • Bug [2828614] - Sometimes too few results for robots are displayed.

  • Bug [2820434] - NullPointerException when setting classpath directory.

  • Bug [2811621] - Invalid entry point in codesize-1.1.jar.

  • Bug [2833271] - IllegalThreadStateException occurring in RoboRumble.

  • Bug [2831201] - Robocode enters infinite loop with the Restart button.

  • The RateControlRobot (Beta) returned rates in radians instead of degrees with the methods: getTurnRate(), getGunRotationRate(), and getRadarRotationRate().



Changes for RoboRumble


  • Updated the PARTICIPANTSURL in the roborumble.txt, meleerumble.txt, and teamrumble.txt



Download Robocode 1.7.1.4 Beta from here

Wednesday, July 8, 2009

Robocode 1.7.1.3

This version is a maintenance release of Robocode fixing more bugs.

Bugfixes


  • Bug [2813513] - Bullet and Ram Damage Bonuses are wrong.

  • Bug [2809518] - Does not extract .properties files into bot data dir.

  • Bug [2805858] - Access denied javax.swing -DNOSECURITY=true

  • Sometimes the "Show results when battle(s) ends" in the Common Options was disabled when running the RobocodeEngine, even though the setting had been enabled earlier.

  • Bug [2811621] - Invalid entry point in codesize-1.1.jar.

  • A NullPointerException occurred when closing the Preferences window, when no sound device is present in the system.



Changes


  • The default font on the Graphics context when using onPaint(Graphics2D) or getGraphics() has been changed to the "Dialog" font.



Download Robocode 1.7.1.3 from here

Monday, June 8, 2009

Robocode 1.7.1.3 Beta

Please welcome a new robot type, the RateControlRobot. This new robot type has been provided by Joshua Galecki and is an extension of the AdvancedRobot. Currently, the RateControlRobot is in its Beta stage.

The RateControlRobot class has been created in an attempt to allow more realistic robots. That is, many real/physical robots are given commands in terms of rates ("move forward one meter per second"). Hence, the RateControlRobot helps simulating a real robot.

The RateControlRobot provides these new methods:

  • setVelocityRate(double)

  • setTurnRate(double)

  • setGunTurnRate(double)

  • setRadarTurnRate(double)


These methods overrides setAhead(),setBack(), setTurnRight(), setTurnGunLeft() etc.

For an example, please look into the source code for the new sample.VelociRobot.

We ask the community for feedback for the new RateControlRobot and we will announce it as stable in one of next major releases. So please report issues or change requests etc. for this new robot type.

Bugfixes


  • AdvancedRobot.setMaxTurnRate() did not work properly since version 1.5.4

  • Bug [2799165] - Wrong survival scores sent by rumble client

  • Bug [2802227] - Funny behaviors with robot graphics/paintings


Changes for RoboRumble


  • Added validation of each of the participant lines of the participant list. If a participant line is invalid due to e.g. wrong format/syntax or bad URL, then an error message is written out and the participant is ignored.

  • The format of the lines in the participant lines is the same as usual.

  • Accepted lines must follow this format: {robot+version},({http-url}|{repository-id}), where {robot+version} must match the regular expression "[\\w\\.]+[ ][\\w\\.-]+", the {http-url} must be a HTTP URL pointing at the robot .jar file, and the {repository-id} must be a number. The {http-url} and {repository-id} are mutual exclusive. Example of accepted lines:

  • johndoe.SomeRobot 1.0,http://somewhere.com/SomeRobot_1_0.jar

    johndoe.SomeRobot 1.0,321

  • Removed the info message "Trying to download {botname}" from the console output.


Other changes


  • The Development Options has become more usable, as Ruben Moreno Montoliu has added a list of paths and buttons for adding and removing directories, full resizable.

  • Updated the javadoc with a note for the setAdjust*() robot methods, which are ignored when turning with infinite values.


Download Robocode 1.7.1.3 Beta from here