Build the best - destroy the rest!

Friday, 28 March 2008

Robocode 1.6 Beta - Introduction of new robot interfaces

Bugfixes:

- The CPU constant was not calculated the first time Robocode was started up.
- Removed ^M characters from the buildJikes.sh file so that the Jikes compiler can be built under Unix, Linux and Mac OS X.

Major changes:

- A new package named robocode.robotinterfaces has been introduced, which contains pure Java robot interfaces for basic, advanced, interactive, junior and team robots. See the Javadocs (HTML) documentation for more details about these new interfaces.
- The main purpose robot interfaces is to make it possible for developers to create robots with other programming languages that requires interfaces instead of classes. However, the provided robot interfaces obeys the rules within Robocode. But it is possible to create new robot types with other methods names etc. from the robot interfaces, and it is also possible to create ordinary robots based directly on the robot interfaces.
- See the new 'sampleex' directory for some examples of how to use these new interfaces in Java.
- The introduction of the new robot interfaces required a great deal of changes and cleanup of the internal structures of Robocode, but for the better.
- A new command line option has been made for Robocode named EXPERIMENTAL, which must be set to true in order to allow the robots to access the internal robot peer with the robot interfaces for performing robot operations. If this flag is not set, you'll get a SecurityException in your robot if it is inherited from a robot interface. This option must be set in the robocode.bat/robocode.sh like -DEXPERIMENTAL=true
- Note that this experimental option might be removed in the future so that robots are always allowed to access the robot peer from the new robot interfaces.
- Most work with the robot interfaces were performed by Pavel Savara that has joined the development of Robocode, and which has done a tremendous job with the new robot interfaces.

Minor changes:
- Fixed a security issue, where robot was able to access the internals of the Robocode game thru the AWT Event Queue.
    - Robots that try to access the AWT Event Queue will be disabled
- Added a "Make all bullets white" option to the Rendering Options.
    - When this option is enabled, all bullets on the battle field will be painted in white. Use this options when you need to see all bullets on the battle field, i.e. when bullet colors are almost invisible.
- Lots of the Javadoc (HTML) documentation for the Robocode APIs were updated.

Download: here

Saturday, 16 February 2008

Robocode 1.5.4 - fixes the CPU calculation

Bugfix:

- The CPU constant was way too little compared to version 1.4.9. This is a critical bug when Robocode is used for competitions. Now the CPU calculation has been improved, where a heavy math benchmark has been adopted from Robert D. Maupin (AKA Chase-san).

- The method for determining if a robot has exceeded it's CPU time limit has been improved to use nano second precision, to get rid of an issue with millisecond granularity. This method was created by Julian Kent (AKA Skilgannon).

Download: here

Monday, 4 February 2008

Developers Guide for building Robocode has been updated

The Developers Guide for building the Robocode game has now been updated to reflect the change from using CVS to using SVN. In addition, more hints has been added to ease building Robocode from the Eclipse IDE.

You can read the Developer Guide here

Wednesday, 30 January 2008

Robocode 1.5.3 released

Bugfixes:

- Some of the mnemonics on the menus on the Help menu did not work correctly.

- NullPointerException occurred when clicking a robot button on the right side of the battle view, when no battle was running.

Changes:

- All functions key shortcuts have been replaced to comply with OSes where the function keys (F1 - F12) are not available or have a specific purpose, and thus should not be overridden.
-- The F5 shortcut key for refreshing the list of available robots in the New Battle, Robot Packager, Robot Extractor, and Team Creator window has been changed to 'modifier key' + R, i.e. Ctrl+R on Windows and Linux, and Command+R for Mac OS.
-- The F6 shortcut key for 'Compile' has been changed to 'modifier key' + B, i.e. Ctrl+B on Windows and Linux, and Command+B for Mac OS.
-- The F3 shortcut key for 'Find Next' has been changed to 'modifier key' + G, i.e. Ctrl+G on Windows and Linux, and Command+G for Mac OS.

- When a robot or team is being packaged an UUID is now put in the .properties and/or .team files in the newly generated robot or team archive file (.jar file).
-- The UUID is a unique identifier for the robot or team, which is generated every time a robot or team package is being created or overwritten.
-- This feature has been made in advantage to support coming features provided in Robocode Repository, which is currently being updated.

Download: here

Tuesday, 8 January 2008

Robocode 1.5.2 released

On some systems Robocode would not start up when tryng to run robocode.bat or robocode.sh. This version contains a bugfix for this issue.

Download here

Wednesday, 12 December 2007

Robocode: 1.5.1 fixes a security issue

- Fixed security flaw with the Event Dispatch Thread, where robots could use the SwingUtilities.invokeLater() for running any code they should like to.
- Thanks goes to John Cleland who reported this security flaw and provided some very good examples of robot that could do some nasty cheats.

Wednesday, 5 December 2007

Robocode 1.5 has been released

Compared to the 1.5 Beta, the following was added.

New features:
- Added the Robot Cache Cleaner tool created by Aaron Rotenberg (aka AaronR).
- Used for cleaning the cache files for the robots, which is very useful with the RoboRumble client, where most problems can be solved by cleaning the robot cache files.
- This tool is activation by selecting "Clean Robot Cache" in the Options menu or by running the tool from a command line (standing in the robocode home directory):

java -cp ./libs/robocode.jar;./libs/cachecleaner.jar ar.robocode.cachecleaner.CacheCleaner 


Changes:
- Improved the output of the command line usage of Robocode when called from the command line with the -? or -help option.