Build the best - destroy the rest!

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

Monday, 16 December 2013

Robocode 1.9.0.0 Beta 2

The Robocode version 1.9.0.0 introduces a new robot type - the Border Sentry robot.
This is the 2nd Beta release before the final version of 1.9.0.0 comes out. So please check out the new Border Sentry out (e.g. try using the new samplesentry.BorderGuard against sample.Corners and sample.Walls.

Bug fix

(compared to version 1.8.3.0 and 1.9.0.0 Beta)
  • Fixed various issues with the Robot Editor, e.g. letters written in the wrong error when typing text fast.

New Features

  • BorderSentry interface: Added a new robot type (the BorderSentry) that allows you to implement sentry robots, which are robots that guards the walls of the battlefield against "wall-crawlers" and "corner" robots.
    • The Border Sentry robot is dedicated to Liam Noonan from Limerick Institute of Technology and the Robocode Ireland event in general. :-)
    • The inspiration for this type of robot comes from the TV series named Robot Wars.
    • Note that border sentry robots...
      • have 400 additional energy points meaning that a border sentry robot starts with 500 energy points!
      • only appear at the borders of the battlefield, when a new round is started defined by the "border sentry size", which is a game rules that can be adjusted similar to other game rules. The default border sentry size is 100 units.
      • can only make damage to other robot types within the *sentry border*, but not to robots in the "safe zone", which is the area inside the sentry border.
      • can receive damage from other robots. But robots will not gain energy points from the border sentry robots (due to Mathew Nelson's excellent point regarding using sentry robots as "Energy Batteries" ;-) ).
      • does not receive scores in the Ranking Panel nor Battle Results, even though you can see its score, like ramming damage, bullet damage etc. The goal for the border sentry robot is to be a referee, but not a player that can win or loose the battle.
    • A new method names getSentryBorderSize() has been added to the Robot classes that returns the size / attack range from the edge of the borders, where BorderSentry robots are able to hit other robot types.
    • A new method named isSentryRobot() has been added to the ScannedRobotEvent event class.
    • A new sample robot has been added named samplesentry.Guard. Try it out againt your robot(s).
    • When there is only one regular robot left on the battle field with one or more border sentry robots, the round is automatically ended.
    • A new sample robot has been added named samplesentry.BorderGuard. Try it out against your robot(s) or e.g. sample.Corners and sample.Walls.
    • An additional option has been added to the View Options in the Preferences to enable and disable the visual appearance of the sentry border, which is painted in transparent red (danger zone).
Download Robocode 1.9.0.0 Beta 2 from here
Download Robocode .NET plug-in 1.9.0.0 Beta 2 from here
Download Robot testing plug-in 1.9.0.0 Beta 2 from here

Sunday, 9 June 2013

1.9.0.0 Beta

Robocode version 1.9.0.0 introduces a new robot type - the Border Sentry robot.

Bug fix

  • Bug-358: Robot in default package cannot write to files. Should at least get a warning.

New Features

  • BorderSentry interface: Added a new robot type (the BorderSentry) that allows you to implement sentry robots.
    • The Border Sentry robot is dedicated to Liam Noonan from Limerick Institute of Technology and Robocode Ireland in general. :-)
    • The inspiration for this type of robot comes from the TV series named Robot Wars.
    • Border sentry robots are used for guarding the borders of the battlefield and hence are useful against "wall crawlers" that try to hide at the borders like e.g. ``sample.Corners`` and ``sample.Walls``.
    • Border sentry robots...
      • have 400 additional energy points meaning that a border sentry robot starts with 500 energy points!
      • only appear at the borders of the battlefield, when a new round is started defined by the "border sentry size", which is a game rules that can be adjusted similar to other game rules. The default border sentry size is 100 units.
      • can only make damage to other robot types within the *sentry border*.
      • can receive damage from other robots, but they will not gain additional energy points due to Mathew Nelson's point regarding "Energy Batteries" ;-)
      • does not receive scores in the Ranking Panel nor Battle Results, even though you can see its score, like ramming damage, bullet damage etc.
    • A new method names ``getSentryBorderSize()`` has been added to the Robot classes that returns the size / attack range from the edge of the borders, where BorderSentry robots are able to hit other robot types.
    • A new method named ``isSentryRobot()`` has been added to the ``ScannedRobotEvent`` event class.
    • When there is only one regular robot left on the battle field with one or more border sentry robots, the round is automatically ended.
    • A new sample robot has been added named ``samplesentry.Guard``. Try it out againt your robot(s).
    • An additional option has been added to the View Options in the Preferences to enable and disable the visual appearance of the sentry border, which is painted in transparent red (danger zone).

Changes

  • Improved the UI regarding Battle Rules:
    • All Battle Rules have been assembled into one single Rules tab.
    • Number of Round has been moved from the New Battle dialog to the Rules tab.
    • Improved the visualization of the battle field size.
    • Added input validation to text fields.
  • Req-64: Change default battle settings like e.g. "Number of Rounds".
    • When the battle rules are changed in the user interface, Robocode will remember these as the user's default settings.
    • A new Restore Defaults button has been added to get the game default settings back.
Download Robocode 1.9.0.0 Beta from here
Download Robocode .NET plug-in 1.9.0.0 Beta from here
Download Robot testing plug-in 1.9.0.0 Beta from here

Saturday, 26 March 2011

Robocode 1.7.3.0 Beta

This is the beta version of Robocode version 1.7.3.0.

We encourage everybody to test this new Beta version as much as possible and report any bugs found at our Bugs Tracker at SourceForge. Then we will do everything we can to fix issues before the final release.

In the following we list the bugfixes, new features, and other changes made with the 1.7.3.0 Beta version.

Bugfixes


  • Bug [2832113] - The gun shot sound isn't working.

  • Bug [3196615] - x,y coords between BulletHitEvent & HitByBulletEvent differ.

  • Bug [3207405] - Custom events no longer firing after clearing event queue.

  • Fixed typo in the documentation with valid range of values for the battlefield width and height. Thanks goes to Tamás Balog for pointing this out.


New features


  • Added "Enable auto recording" option to the Common Options, which automatically generates a zipped XML record for every battle. Works only when "Enable replay recording" is enabled (is automatically set when enabling auto recording).

  • Req [3026852] - Ability to save the properties file for robots in development path.

  • Req [3066647] - Rules.getBulletSpeed(). Keep bullet power within 0.1 - 3.0, even when input is lesser or greater than this valid range.

  • Req [3034594] - In battle name hiding. A new game rule, "hide enemy names", can be enabled or disabled.


Changes


  • Upgraded to use jni4net v0.8.3.


Download Robocode 1.7.3.0 Beta from here
Download Robocode .NET Plugin 1.7.3.0 Beta from here
Download Robot Testing Plug-in 1.7.3.0 Beta from here

Saturday, 2 October 2010

Robocode 1.7.2.2 Beta

This is the beta version of Robocode version 1.7.2.2 that now includes a Robocode Control API with the .NET plug-in, which makes it possible to run battles from a .NET application and retrieve the results etc. Help files are included with Robocode, and the documentation of the new API is available here.

Robocode has also been upgraded to use jni4net v0.8.0 that includes CLR 4.0 support for .NET. This means that robots can be written in e.g. the F# language. Actually, the .NET plugin includes sample robot written in F#.

A ReadMe has also been added for Robocode in both HTML and text (using Markdown syntax). The ReadMe should give the reader a good overview of Robocode.

We encourage everybody to test this new Beta version as much as possible and report any bugs found at our Bugs Tracker at SourceForge. Then we will do everything we can to fix issues before the final release of version 1.7.2.2.

In the following we list the bugfixes, new features, and other changes made with the 1.7.2.2 Beta version.

Bugfixes


  • Bug [3043944] - Robot PrintStream doesn't handle write in a portable fashion.

  • Bug [3077562] - Wrong headings with the JuniorRobot. Thanks goes to Mr. Kschan for finding and providing a fix for this bug. :-)

  • Bug [3043884] - Development Options remove wrong item.

  • Bug [3043932] - JavaDoc missing _Robot and similar.


New Sample robots


  • Tuan Anh Nguyen provided a modified version of the Interactive sample robot named Interactive_v2, which use absolute movement (up, left, down, right) on the screen, which can be easier to control than the original Interactive sample robot. Both Interactive robots now use both the arrow keys and the W, A, S, D key for moving the robot.

  • SampleFs (written for .NET with the #F langugage) has been added along with the Visual Studio 2010 project file for it. This is available with the .NET plug-in.


New features


  • Robocode has been upgraded to use jni4net v0.8 with CLR 4.0 support.

  • Implemented Robocode .NET Control API plug-in (robocode.control.dll) with documentation.

  • Req [2932291] - Added ReadMe.txt (using Markdown syntax) and ReadMe.html. The ReadMe is also available from the Help menu.

  • Req [2973605] - Enable/disable development paths.

  • Req [2974806] - Provide JuniorRobot template for inexperienced users.


Changes


  • It is not necessary to specify -Dsun.io.useCanonCaches=false anymore with the startup scripts for Robocode and RoboRumble as Robocode sets this internally when running under Windows. Hence, this property has been removed from all .bat, .sh, and .command files for Robocode.

  • Robocode will not notify about Beta versions anymore per default. However, a new option in the Common Options (under Preferences) makes it possible to enable/disable notifications about new Beta versions.

  • The tabs for the Common and Development Options in the Preferences window are now the first tabs.


Download Robocode 1.7.2.2 Beta from here
Download Robocode .NET plugin 1.7.2.2 Beta from here

Saturday, 19 June 2010

Robocode 1.7.2.1 Beta

This is the beta version of Robocode version 1.7.2.1, where the Jikes 1.22 compiler has been replaced with the Eclipse Compiler for Java (ECJ) 3.5.2.

We encourage everybody to test this new Beta version as much as possible and report any bugs found at our Bugs Tracker at SourceForge. Then we will do everything we can to fix issues before the final release of version 1.7.2.1.

In the following we list the new bugfixes and changes made with the 1.7.2.1 Beta version.

Bugfixes


  • Bug [2867326] - Lockup on start if too many bots in robots dir (cont'd).

  • Fixed some issues with the robot repository when file URLs contains spaces, where robots were sometimes disappearing from the repository.


Changes


  • Req [2815450] - Move away from Jikes towards ECJ. Jikes 1.22 has been replaced with the Eclipse Compiler for Java (ECJ) 3.5.2.


Download Robocode 1.7.2.1 Beta from here
Download Robocode .NET plugin 1.7.2.1 Beta from here

Friday, 30 April 2010

Robocode 1.7.2.0 Beta 3

This is the 3rd and last beta for Robocode version 1.7.2.0, where lots of bugs found in Beta 2 have been fixed.

We need to have the fixes verified and also let you check if we have introduced some unwanted side-effects with all the bug fixes we made. So if you have made a bug report for Robocode, please verify the fix the bug if it has been marked as "fixed", and update the tracker with a comment. That is, if the bug was fixed or not.

If you discover a new issue, then don't hesitate reporting it on SourceForge here with a note of which system and Java version you are running under.

If you are new to Robocode 1.7.2.0 then please note that this version is the first version of Robocode that supports robots written for .NET. With the .NET plugin for Robocode, Java and .NET robots can participate in the same battles in the same time.

You can read our two first articles on the RoboWiki about
how to create and how to debug a .NET robot with Visual Studio.

If you want to know the differences between the Robot API for Java and the new one for .NET, you should read this article.

We encourage everybody to test this new Beta version as much as possible and report any bugs found at our Bugs Tracker at SourceForge. Then we will do everything we can to fix issues before the final release of version 1.7.2.0.

You can read about the bugfixes and changed made with the first beta here and the second beta You can read about the bugfixes and changed made with the first beta here.


In the following we list the new bugfixes and changes since the 1.7.2.0 Beta 2 version.

Bugfixes


  • Bug [2976754] - Battle engine consumes more CPU power over time

  • Bug [2972932] - Strange issue first time running roborumble in 1.7.2.0 Beta 2.

  • Bug [2978825] - isTeammate() sometimes returns false with teammates.

  • Bug [2964562] - Cannot extract downloaded robot for editing in Robot Editor.

  • Bug [2976258] - Strange thread exceptions with kid.DeltaSquad in 1.7.

  • Bug [2974178] - Krabb.sliNk.Garm 0.9u freezes often in 1.7.

  • Bug [2970414] - Occasionally losing the bit of text in the robot console.

  • Bug [2954723] - java.lang.Error: Interrupted attempt to aquire read lock.

  • Bug: Teams with versions could not be found in a development path.

  • Bug: Files in /robots/.data or /robots/.robotcache dir were put into a underscore sub-directory.

  • Bug: The "Kill Robot" button in the robot console windows was often disabled.



Changes


  • The robot console now uses a rolling buffer so when the number of lines in the robot console exceeds the max number of lines (500), the oldest lines are removed, and "^^^ TEXT TRUNCATED ^^^" is written in the top. Previously half of the text was truncated when the max number of lines was reached.


Download Robocode 1.7.2.0 Beta 3 from here
Download Robocode .NET plugin 1.7.2.0 Beta 3 from here

Sunday, 14 March 2010

Robocode 1.7.2.0 Beta 2

This is the second Beta for Robocode version 1.7.2.0. Many issues were reported and found with the first Beta. We fixed many of these issues - especially regarding RoboRumble (also MeleeRumble and TeamRumble).

We need to have the fixes verified and also let you check if we have introduced some unwanted side-effects with all the bug fixes we made. So if you have made a bug report for Robocode, please verify the fix the bug if it has been marked as "fixed", and update the tracker with a comment. That is, if the bug was fixed or not.

If you discover a new issue, then don't hesitate reporting it on SourceForge here with a note of which system and Java version you are running under.

If you are new to Robocode 1.7.2.0 then please note that this version is the first version of Robocode that supports robots written for .NET. With the .NET plugin for Robocode, Java and .NET robots can participate in the same battles in the same time.

You can read our two first articles on the RoboWiki about
how to create and how to debug a .NET robot with Visual Studio.

If you want to know the differences between the Robot API for Java and the new one for .NET, you should read this article.

We encourage everybody to test this second Beta version as much as possible and report any bugs found at our Bugs Tracker at SourceForge. Then we will do everything we can to fix issues before the final release of version 1.7.2.0.

You can read about the bugfixes and changed made with the first beta here.

In the following we list the new bugfixes and changes since the first 1.7.2.0 Beta version.

Bugfixes


  • Bug [2953599] - Roborumble doesn't upload with EXECUTE=NOT.

  • Bug [2960836] - Team RoboRumble uploading is broken.

  • Bug [2964559] - TeamRumble: Cannot find robot in nested .jar files.

  • Bug [2930266] - Robot static data isn't being GCed after battle. More fixes were made.

  • Bug [2960870] - isTeammate() called on null gives NullPointerException.

  • Bug [2961489] - ArrayIndexOutOfBoundsException when starting team battle.

  • Bug [2952496] - Installer installs AutoExtract$1.class.

  • Bug [2952549] - yk.JahRoslav 1.1 throws WinException.

  • Bug [2960894] - jlm.javaDisturbance loses substantial score in 1.7.2 Beta.

  • Bug [2962846] - (.NET) condition tested on concurrently modified collection.


License Change


  • We have changed license from Common Public License (CPL) v1.0 into Eclipse Puplic License (EPL) v1.0.


Download Robocode 1.7.2.0 Beta 2 from here
Download Robocode .NET plugin 1.7.2.0 Beta 2 from here

Monday, 15 February 2010

Robocode 1.7.2.0 Beta - The ".NET robots are now supported" release

We are proud to announce the 1.7.2.0 Beta release of Robocode, which is the first version to support .NET robots via using a plugin for Robocode. A lot of hard work has been put into the .NET support by Pavel Savara.

With the .NET plugin for Robocode, Java and .NET robots can participate in the same battles in the same time.

You can read our first article on the RoboWiki about
how to create a .NET robot with Visual Studio and run it in Robocode.

If you want to know the differences between the Robot API for Java and the new one for .NET, you should read this article.

We have also added lots of pending features and of course made some changes to Robocode as well.

We encourage everybody to test this Beta version as much as possible and report any bugs found at our Bugs Tracker at SourceForge. Then we will do everything we can to fix issues before the final release of version 1.7.2.0.

Bugfixes


  • Bug [2930266] - Robot static data isn't being GCed after battle.

  • Bug [2931445] - Removing directories from "development options" doesn't work.

  • Bug in RobotClassLoader causing ClassNotFoundException for some robots during robot class load.

  • Fixed a NullPointerException occuring when Robocode is (re)loading the robot repository after a developer path has been removed.

  • Bug [2935451] - Version ordering is somewhat strange with letters.

  • Bug [2930256] - Robot console text sometimes disappears.

  • Bug [2928688] - morbid.MorbidPriest_1.0 fails to load.

New features


  • .NET Robocode plugin. It is now possible to code robots in .NET and let them engage in Robocode battles.

  • Req [2816882] - onRoundEnded(). It is now possible for robots to get notified when a round has ended. The onRoundEnded() event handler received a new RoundEndedEvent that contains information about the number of turns in the round and total turns in the whole battle when the event occurred.

  • The robocode.control.RoundEndedEvent in the Control API has been extended with a new method named getTotalTurns() similar to the new robocode.RoundEndedEvent for the Robot API.

  • Req [2931696] - RateControlRobot vs. TeamRobot. The RateControlRobot is now a TeamRobot meaning that it can participate in team battles.

  • Req [2931684] - Skipped turn events. Added getSkippedTurn() method on the SkippedTurnEvent class, which returns the turn that was skipped. The getTime() returns the time when the SkippedTurnEvent was processed by the robot, which is always later when the robot is skipping turns. The message "SYSTEM: you skipped turn" has been improved, so it will tell which turn that was skipped like "SYSTEM: john.Doh skipped turn 43".

  • Req [2342293] - Screenshot of battleview. Press Ctrl+T on Windows and Linux, and Command+T for Mac OS in order to take a screenshot of the battleview. The screenshot will be saved in the Robocode folder named "screenshots", and the filename will be a timestamp for when the screenshot was taken.

  • Req [2496661] - Launch Robocode from .battle (battle specification) and .br (battle record) files.

  • Req [2659612] - Add option to prevent speedup when minimized. This new View Option can now be set in the Preferences by putting a check mark into "Prevent speedup when minimized".

  • Req [2643438] - Renamed /robots/.robotcache to /robots/.data

Changes


  • Browser support has been improved for Mac OS, Unix and Linux, which in most cases did not work properly.

    • In previous versions of Robocode, the browser.sh was used to start up the user's prefered browser. The browser.sh file is not being used anymore. Hence, this file can safely be removed from your robocode installation dir.

    • Now, Robocode will start up a browser under Mac OS, Unix and Linux with no use of scripts.

  • The Development Options dialog in the Preferences has been improved:

    • Changed from using single interval selection to multi selection interval.

    • Adding an existing path is ignored.

    • The list of path is automatically sorted.


Download Robocode 1.7.2.0 Beta from here
Download Robocode .NET plugin 1.7.2.0 Beta from here

Thursday, 10 December 2009

Robocode 1.7.1.6 Beta

This is a maintenance release of Robocode with the bug fixes and changes described below.

Bugfixes


  • Bug [2897215] - Robot Editor doesn't accept packagename with dot (.) in it.

  • Bug [2876395] - Source is not included.

  • Bug [2867326] - Lockup on start if too many bots in robots dir (cont'd).


Requests


  • Req [2641759] - Scrollable properties. All console windows including the Robot Console and Properties are now scrollable, and all have the same look.


Changes


  • It is now possible to add paths to robot project inside an Eclipse workspace under the Development Options in the Preferences. Robocode will read the .classpath file in the project in order to locate both class files, properties files, and java files. This means that the Robot Packager is now able to include your source files when you use Eclipse, and it supports multiple source paths. Notice that Robocode does not support linked sources or include and exclude filters.

  • Changed the messages given when creating a new robot with the Robot Editor regarding robot name and package name.


Download Robocode 1.7.1.6 Beta from here

Wednesday, 14 October 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

Monday, 8 June 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

Saturday, 9 May 2009

Robocode 1.7.1.2 Beta

With this beta, we corrected an old bug in Robocode with the robot speed and movement in some situations when a robot is decelerating. That is, a robot would only move 99% according to it's own rules. E.g. it could end with a distance remaining on -0.2 instead of 0, it could have a velocity higher than the set max. velocity, and it could take an extra turn to stop movement when decelerating. However, these 3 caveats does not occur that often. Hence, they should not have a big impact on the robot behavior and rankings on the RoboRumble etc.

If you do experience big differences since version 1.7.1.1, then don't hesitate with contacting us with detailed information about the scenario, so it is possible for us to reproduce and fix.

Bugfixes


  • Bug [2077512] - Bug in RobotPeer.updateMovement? Robocode was not moving 100% according to it's own rules. Now it is.

  • Bug [2740708] - Fair Play! With two identical robots in a battle against each other, the first robots was much more likely to win, which was not fair.

  • Bug [2779557] - Client tries to remove all participants. When RoboRumble, TeamRumble, and/or MeleeRumble downloaded the participants list and did not receive a HTTP_OK or an empty list, the participants list was emptied. This caused problems with the RoboRumble server.

  • Bug [2785448] - Wrong file path used for development bots. Added option -DALWAYSUSECACHEFORDATA for anyone who liked it better.

  • Bug [2785456] - Melee rumble doesn't use "smart battles" (aka. priority battles). Thanks goes to Jerome Lavigne aka. Darkcanuck for this fix.

  • Fixed several ArrayOutOfBoundsExceptions occurring when starting a battle with fewer robots than a battle just played with more robots.



Changes for RoboRumble


  • The participants URL for RoboRumble, MeleeRumble, and TeamRumble have been updated to use the participant lists from the new RoboWiki:


    • RoboRumble: http://robowiki.net/w/index.php?title=RoboRumble/Participants

    • MeleeRumble: http://robowiki.net/w/index.php?title=RoboRumble/Participants/Melee

    • TeamRumble: http://robowiki.net/w/index.php?title=RoboRumble/Participants/Teams



Other changes


  • Updated the Help menu to point at the new RoboWiki regarding the Online Help and FAQ.

  • RobocodeEngine control class: Added additional runBattle() method where it is possible to specify the initial positions of the robots when starting a battle.

  • The about box was updated, where contributors are now written in bold and in a green color.


  • Download Robocode 1.7.1.2 Beta from here

    Wednesday, 11 March 2009

    Robocode 1.7.1 Beta 2 - few bugs left?

    We fixed more bugs for the version 1.7.1 Beta 2. There are a few bugs left that are not considered critical, and which will be available with the final 1.7.1 release. Please try out this version and try to find as many bugs you possible can and report issues on the tracker for Robocode.

    Bugfixes


    • Bug [2658090] - Typing to find bot no longer works.

    • Bug [2666598] - API: Typo in Documentation onBulletMissed(BulletMissedEvent).

    • Bug [2658167] - Put back setTime() method of Event, the security is now handled other way, not by hiding the field.

    • Fixed the problem with loading team robots from nested .jar files.

    • On Ubuntu (Linux) the "Default window size" did not work properly.



    Internal Changes


    • On SUN's JVM enabled caching of .jar files opened thru URLConnection. Solved problem with closing such files by implementing URLJarCollector.



    Download Robocode 1.7.1 Beta 2 from here

    Monday, 2 March 2009

    Robocode 1.7.1 Beta - lots of improvements

    With this release we give BIG thanks to Nat Pavasant who have put in great effort in testing and finding as many bugs in Robocode as possible. He has been a great help with testing especially RoboRumble@Home functionality.

    Currently, there is one known issue, which will be fixed with the next Beta or in the final release of version 1.7.1. This is critical for e.g. the TeamRumble, so please notice the known issue below.

    Known issue


    • With this version Robocode cannot handle team packages containing robot .jar files, i.e. robot packages.



    Bugfixes


    • Bug [2626148] - Bots referencing robocode.robocodeGL broken. Now, we are now not following refrences to robocode packages.

    • Bug [2626164] - Don't ever punish robots in devel directories by removing from repository.

    • Bug [2634807], [2632874] - Robot console was wrongly synchronized with battle.

    • Bug [2634123] - Robot packager can be activated once per running.

    • Bug [2643395] - Development robots cause problems with data files.

    • Bug [2628346] - A battleview size exceed 800x600 filled with black.

    • Bug [2618169] - NullPointerException when using -battle option from the cmd-line.

    • Bug [2628217] - Robot Colors don't stick between rounds.

    • Bug [2649954] - Open battle menu dialog is not loading robots.

    • The command line usage of Robocode was not printed out at all when using the -? or -help option.



    New features


    • Added getCurrentWorkingDir() + getRobotsDir() to the robocode.control.RobocodeEngine.

    • Request [2446276] - Ranking Panel should be visible when Robocode is minimized. This feature has been added and it is possible to control the behavior from Common Options in the Preferences with the "Don't hide Rankings when main window is minimized", which is enabled per default.

    • Request [2467545] - Command Line option for saving a battle record file. Two new command line options have been added for Robocode, i.e. - record and -recordXML . The -record option records the battle as a binary and zipped battle record. Here I propose that the specified filename should is something like record.br. The -recordXML does the same as the -record option, but saves the battle record as an XML file. Here I suggest that you use a filename like record.br.xml.

    • Request [1749483] - Speedup time required for rebuilding robot database.



    RoboRumble changes


    • Changed the link for http://rumble.fervir.com/rumble into http://darkcanuck.net/rumble as the RoboRumble server fervir is down and with unstable ranking. The current ranking at Darkcanuck's server is alive. Almost all clients are point to Darkcanuck's now. Hence, it is updated now.


    • Update 3.3.2009: After discussion with both server owners we confirmed that old server will die soon. Big thanks to Pulsar for hosting it for us till now.


    Internal Changes


    • The robot repository has been updated. It is no longer extracting .jar files.

    • It also remembers last timestamp on file so detection of the changes is really fast. Only data files are extracted now.

    • Data files for non-packed robots were moved to .robotcache as well.

    • VersionManager is now able to detect if the Robocode version was upgraded since last run.

    • Blocking security issue with relative path in getDataFile() method.

    • Improved security in RobotClassLoader.

    • Reimplemented RobotPackager.

    • BulletSnapshot has now method getBulletId which gives identity of bullet for UI.



    Download Robocode 1.7.1 Beta from here

    Monday, 26 January 2009

    Robocode 1.7 Beta 2

    This version contains bugfixes for bugs found in the previous 1.7 Beta.

    Bugfixes


    • Bugfix [2527112] Ubuntu throws NullPointerException in main when trying to startup Robocode.

    • Bugfix [2528467] Installation fail on windows if directory contain space(s).


    Changes


    • Improved the version checking for new Robocode versions available for download.



    Download 1.7 Beta from here

    Tuesday, 20 January 2009

    Robocode 1.7 Beta - modularization

    This version represents a completely new infrastructure of Robocode making it easier to extend and maintain for the future, while staying 100% backward compatible. The goal of this release has been to introduce the new platform for Robocode and getting it tested carefully by the community before we add features to it for version 1.7.1 and newer.

    By omitting new features, we hope that we'll be faster in locating and fixing any issues introduced with this version compared to the previous version 1.6.2. When such issues have been eliminated, we will concentrate on the new features, which includes support for more programming languages and also some of the pending feature requests reported on the SourceForge site for Robocode

    Bugfixes


    • Bug [2497164] Spammy output on robot console windows.


    Internal changes


    • Robocode was modularized using the dependency injection framework PicoContainer. This work includes introduction of many interfaces to existing components.

    • Introduced Maven2 as build setup where the whole directory layout is based on the standard Maven structure.

    • Rewritten the RobotClassLoader so it is able to load .jar file in the future.

    • Rewritten security layer to use AccessController and CodeSource for detection of trusted code.

    • Redesigned RobocodeProperties to SettingsManager and introduced ISettingsListener.

    • Implemented RbSerializer to be able to implement IPC (Inter-Process Communication) in future. This should make it possible to extend Robocode for more platforms like e.g. Microsoft .NET.

    • Redesigned RepositoryManager and nearby to hide implementation details.

    • Moved all implementation of Robocode to the package 'net.sf.robocode'. The old package 'robocode' is now used only for API to outer world in order to keep backwards compability.


    Download 1.7 Beta from here

    Tuesday, 23 December 2008

    Robocode 1.6.2 Beta 4

    With this release 5 more bugs have been fixed compared to the 1.6.2 Beta 3.

    Bugfixes


    • Fixed the Open Battle dialog, where the robots were not being loaded, but which instead behaved the same way as the New Battle dialog.

    • Fixed NullPointerException with the new Record and Playback (Replay) feature, when trying to play a recorded battle.

    • Fixed serialization problems with scan arcs (Arc2D), when robot paintings with scan arcs are being recorded.

    • Fixed problem with reloading robot repository on each next battle dialog. Now the user must press Ctrl+R in order to refresh the robot repository as this is not done automatically anymore.

    • Fixed two ArrayIndexOutOfBoundsExceptions occurring when opening a new battle with fewer robots, when a battle with more robots are ongoing.



    Download 1.6.2 Beta 4 from here

    Thursday, 18 December 2008

    Robocode 1.6.2 Beta 3 - more bugfixes

    With this release 5 bugs have been fixed compared to the 1.6.2 Beta 2. In addition, new battle events and battle snapshots in the Control API have been published, i.e. in the robocode.control package, and we added missing javadocs (HTML documentation) to public Robocode API classes.

    Changes


    • Published new battle events and battle snapshots in the Control API, i.e. in the robocode.control package.

    • Added missing javadocs (HTML documentation) to public Robocode API classes.



    Bugfixes


    • The current scoring (not the total scoring) was calculated wrong from version 1.6.1. The current Ramming Kill Bonus was set to current bullet kill bonus, which gave wrong ranking in the Ranking Panel.

    • Bug [2410856]: wrong bullet power could be reported back from Bullet.getPower(), which could be > Rules.MAX_BULLET_POWER or < Rules.MIN_BULLET_POWER.

    • Bug [2405844]: gunHeat could be negative, which should never occur.

    • Bug [2412707]: Replay exception, where an ArrayIndexOutOfBoundsException occurred in some situations.

    • Fixed problem with RobocodeEngine.setVisible(true), where the RobocodeEngine would hang forever.



    Download 1.6.2 Beta 3 from here

    Sunday, 23 November 2008

    Robocode 1.6.2 Beta is out

    We are proud to present new version of Robocode for community testing.

    User visible changes


    • We now support excellent record/replay functionality, including export/import to XML. Record also contains paintings of robots, so you can replay them. Because recording is resource consuming, it is switched off by default, go to preferences dialog to turn it on.

    • In UI we have new button for main battle log, where you can watch systems messages (if you don't like to look at system console). The dialog also contains tab with XML representation of last battle frame, which might help with debugging your robot.

    • Robot dialog was enhanced by new tab page with dump of current robot properties. Hope you will love it, because you can add your own properties from your robot by calling setDebugProperty() method of your robot. See sample.PaintingRobot for example usage.

    • Robot dialog could hint which robot is trying to paint something, paint button becomes green.

    • Robot button was given life-bar + score-bar, so that you can easily see who is winning. You see small red bar on Corners sample button ? That's energy below 25 points. Blue bar is score.



    robocode1.6.2

    Robot visible changes


    • New method setDebugProperty()

    • Classes of event arguments are more strict now. They are final, so you can't inherit from them, they also hide methods setPriority() and setTime() for security reasons.

    • Team messages are deserialized on receiver robot thread.

    • Robots which are wrong behaving are removed from repository and are not given other chance to run. This is for skipped turns, for unstoppable robots and for robots with class loading troubles.

    • During painting robots can paint only such things which are Java Serializable.



    Bug fixes & Feature requests


    • [2214620] Robots are given unlimited time when recording, painting or debugging with -Ddebug=true

    • [2117285] we now upload version of client and game mode with results from roborumble

    • [2208374][2026098][1829282][1609494][1577588] are mostly described above



    Implementation details


    Communication from user robot to battle is 90% redesigned!

    We use serializable messages instead of sharing and locking robot state and intentions.
    We spend months to do it correct way. The presented solution was preceded by three unsuccessful trials. As reward we have cleaner architecture, less synchronization overhead, better security, better speed, code is much more readable I hope.
    We have now potential to run robots in sandbox and let them communicate using IPC or over network in future versions.

    The code is still in branch. We plan to merge it to trunk when we reach full release. We need YOUR feedback and testing support.

    Tuesday, 12 August 2008

    Robocode 1.6.1 Beta 3

    More bugfixes were made to Robocode 1.6.1 (Beta 3) compared to the previous Beta 2.

    Bugfixes



    • [2042289] Frequent errors stopping bots: This error was introduced in one of the 1.6.1 Beta versions, where some robots got this error message: "Waiting for robot XXX to stop. Robot XXX is not stopping. Forcing a stop.".
    • [2022774] Various usability issues: Preferences: If TPS was changed from the Preferences during a battle, the error "SYSTEM: pause game bug!" occurred.
    • [2024568] Sometimes the compiler window hangs: This bug occurred on some systems when compiling a robot - especially when a compiler error was returned by the compiler.
    • [2034395] Battles don't open again with selected robots: When opening and starting a battle from a .battle file with selected robots (in the .battle file) the New Battle dialog was showing the robots of the previous battle instead of the selected robots from the .battle file.


    Changes


    [2022774] Various usability issues:



    • Added "Enable all" and "Disable all" button in the View Options of the Preferences.
    • When the TPS slider is set to 0, the game is paused, and the Pause/Resume button set to paused mode. Now, if the Pause/Resume button is pressed, the game will resume at 1 TPS, and the TPS slider will now move to 1. Previously it will set to 0.
    • Improved some menus a bit with better names, and did some rearrangements of the order of the menu items here and there.
    • In the New Battle window, the focus is now kept in the list of available robots when one of the two 'Add' buttons has been pressed. Previously the focus was lost, and you had to reselect robots in the list of available robots in order to add more robots. It is now possible to add multiple robots using only the arrow keys with e.g. the Alt+A in order to add more robots to the battle.


    Download: here