Version 1.0.7

(2/18/2005)

------------

o Released as opensource under Common Public License

o New explosion graphics

o Fixed a few bugs

  -- No longer possible to teleport when hitting walls

  -- Docs fixed and regenerated

  -- Fire assistance removed from AdvancedRobot

o Now requires Java 1.4

o New system for calculating CPU speed



Version 1.0.6

(7/17/2002)

------------

o Robots that perform file I/O will be allowed 240 skipped turns in a row before being stopped

  -- Other robots will still be allowed 30 in a row

o Fixed issue with Linux where window frames were outside screen

o Fixed reset compiler option in editor (broken in 1.0.5)



Version 1.0.5

(7/15/2002)

------------

o Updated dialogs for: Packager, Extractor, Team Creator, Compile Options,

  -- So they don't hide behind main window

o Fixed bug where New Battle dialog would hang on some systems



Version 1.0.4

(7/15/2002)

------------

o Raised max setXX calls before disable to 10,000

o Moved setXX and getXX warnings to only print when max is hit

  -- Previously at 300 and 3000, respectively

o Fixed bug in clearAllEvents

o Updated Jikes compiler to version 1.16

  -- See http://oss.software.ibm.com/developerworks/opensource/jikes/



Version 1.0.3

(6/28/2002)

------------

o Added setFire(double) and setFireBullet(double) methods to AdvancedRobot

o Added getDataQuotaAvailable() call to AdvancedRobot

o Fixed bug:  Robots taking action in Condition.test()

o Implemented better method for stopping misbehaving robots

  -- Basically, to help fix mistakes such as:

  	 bad: while (getGunHeat() != 0) {}

  	 good: while (getGunHeat() != 0) {doNothing();}

  -- Robots will be disabled after 10,000 calls to getXX methods with no action

  -- Robots will be disabled after 1,000 calls to setXX methods with no action

  -- Only getXX and setXX in the robot itself counts (event.getXX does not)



Version 1.0.2

(6/21/2002)

------------

o Increased default filesystem quota to 200000 bytes

o Droid leaders now start with 220 energy.

o Fixed bug that allowed robots to read other robots' data directories

o Fixed bug that allowed invalid robot version strings

o Fixed two bugs that allowed robots to exceed filesystem quota



Version 1.0.1

(4/23/2002)

------------

o Team robots will always show in the robot selection dialog

o Robots in .jar files without a .properties file will not show

o The extension ".jar.zip" is now supported for cases where the browser

  renames .jar files.



Version 1.0

(4/5/2002)

------------

o New online help integrated

  -- http://robocode.alphaworks.ibm.com/help/index.html

  -- includes instructions for using Eclipse to build a Robot

o onWin() is now called the moment you are the last surviving robot

  -- You can now do victory dances in onWin.

  -- Tracker and TrackFire updated to reflect this

o Context assist will now work inside Eclipse

o Fixed bug: getTeammates() returning null for last teammate

o Fixed a few other small bugs



Version 0.99.4

(3/24/2002)

------------

o Fixed scanning bug (missing scan events with small scanarcs)

o Added "Import downloaded robot" tool.

o Renamed "Packager" to "Package robot for upload"

o Added "Extract downloaded robot for editing" to Robot Editor

o Added "Press F5 to refresh" label to robot selection dialog

o Added small battle demo when new version detected



Version 0.99.3

(3/21/2002)

------------

o Fixed velocity bug

  -- Movement is now more optimized

  -- No more '1 2 0 -1 0 1 2 0' velocities

o Fixed maxVelocity bug

  -- setMaxVelocity can no longer be used to instantly stop

o Fixed first turn bug (getTime returing 0 twice)

o New, more accurate CPU benchmark.  (Updated Linpack benchmark)

  -- Should fix '1ms per turn' bug on Win9X systems

  

Version 0.99.2

(3/13/2002)

------------

o Added a development path to support external IDEs such as Eclipse (http://eclipse.org)

  -- Found in Options->Preferences

  -- Simply add the path to your robot project

  -- As usual, robots will be loaded from disk at the start of each battle

o Improved support for RoboLeague

o Documented robocode.control package (http://robocode.alphaworks.ibm.com/docs/control)

o Fixed bug:  sendMessage causing StringIndexOutOfBounds



Version 0.99.1

(3/11/2002)

------------

o Fixed bug:  Some messages were delayed

o Fixed bug:  Broken RoboLeague interoperability

o Fixed bug:  getSender() did not show version or duplicates

o Fixed bug:  RobotPackager not packaging teams correctly under Java2 1.3



Version 0.99

(3/5/2002)

The "TEAMS" release

------------

o Introducing:  Teams!

  -- See sampleteam.MyFirstTeam for an example

  -- Teams may consist of 2 to 10 robots

  -- To use teams, first create one or more TeamRobots, then create a Team.

  -- TeamRobots will not show up in the New Battle dialog by default.

     You can change this behavior in Options->Preferences.

  -- To create a team, select Robot->Team->Create Team.

  -- You can add regular robots to a team,

     but they will not be able to communicate.

  -- The *first* robot you add to a team becomes the "team leader".

     Team leaders start with 200 energy. (They are superheroes)

	 When team leaders die, all other members of the team lose 30 energy.

     Protect your leader!

  -- Team scoring is cumulative, but similar to normal scoring:

     Teams receive 50 points for each surviving team member every time an enemy dies.

     Teams receive 10 * numEnemies points for each surviving teammate upon winning.

     Damage bonuses are for all damage dealt by that team

     Firsts, Seconds, Thirds are based on last surviving team member

  -- Teammates can damage each other

  -- Teams can be packaged like regular robots

  -- Teammates without a version will receive the team version

     [enclosed in square brackets]

  -- Team messages are limited to 32K per message.

o Introducing:  Droids

  -- Droids are robots without radar or scanning ability

  -- simply add "implements Droid" to a TeamRobot to create a droid.

  -- Droids start with 120 energy (due to weight savings on the radar)

  -- Droids do not show up in the New Battle dialog by default.

     You can change this behavior in Options->Preferences.

  -- The API is unchanged, but scanning will not work.

  -- See sampleteam.MyFirstDroid for an example

o Added new class:  TeamRobot

  -- See Javadocs for details.

  -- Adds messaging capability to robots

o Added new class:  MessageEvent

o Added new interface:  Droid

o Fixed bug: Duplicate robots sometimes showed up in robot selection dialog

o Fixed bug: Default Window Size not working for some battles



Version 0.98.3:

(2/8/2002)

The "Everything but teams and it took too long" release

--------------

o setColors() now accepts any color (previously it had to be a default color)

  -- Only works in the first round

  -- Only the first 16 robots in a battle will get their requested colors

o Robots may now extend or use classes that are not in their package

  -- This allows for utility classes, when they are in the robots tree

  -- If you do not wish others to extend your robot, declare your robot class final

  -- If you do not with others to use classes from your package, do not declare them public

  -- All referenced classes will be packaged with the robot packager

o Robots in the robotcache directory that do not have a .properties file will not

  show up in the robot selection dialog (done in order to support extended robots, above)

o You may now delete files in your data directory

o Robocode will now always run at full speed when minimized

o New Battle Dialog "Finish" button renamed to "Start Battle"

o New Battle Dialog "Start Battle" button requests focus when enabled.

o Robocode FAQ linked from help menu

o Robocode now supports RoboLeague by Christian Schnell

  -- http://user.cs.tu-berlin.de/~lulli/roboleague/

o Fixed bug: Default thread priority was low

o Fixed bug: Robots had access to peer

o Fixed bug: Survival seconds reported as Survival firsts

o Fixed bug: Robots did not always receive all onRobotDeath events

o Fixed bug: getTime returning last round's end time at start of rounds

o Editor 'Open File' now defaults to the last opened directory (per session)

o Fixed minor editor bug when parsing for classname

o Fixed bug: Robocode will no longer try to save the size/position of a maximized window

o Fixed bug: Bullets hitting each other immediately with fast gun cooling rate

o Fixed bug: Incorrect number of rounds reported when stop pressed

o Fixed bug: Incorrect number of "seconds" and "thirds" displayed



Version 0.98.2

(11/28/2001)

The "Screaming FPS" release

--------------

o Sped up performance when minimized

o New license includes academic use

o Fixed bug: disappearing energy/name strings



Version 0.98.1

(11/27/2001)

The "Ok, NOW it's starting to feel real" release

--------------

o Fixed bug clearing scaled battles

o Robot consoles changed back to white on dark gray

o Fixed bug with case sensitivity in editor's suggested filename

o Other minor tweaks and bugfixes

o Updated Tracker and RamFire (no setInterruptible)

o Added commentary and dates to this file

o Added link to this file from help menu



Version 0.98

(11/27/2001)

The "It's starting to feel real" release

------------

o Added setColors(Color robotColor, Color gunColor, Color radarColor) to Robot

  -- By default, robots are the default blue

  -- Call this in your run method (no more than once per round) to set your robot's colors

  -- Accepts any System default colors, i.e. Color.red

o Robots are now instantiated each round.

  -- You no longer need to re-initialize all your variables at the beginning of run()

  -- ** Only static variables are persistent across rounds **

o Graphics optimizations

  -- no more rotating images at the start of each battle

  -- far more memory efficient

o New model for CPU time.

  -- Robocode now uses the Linpack benchmark

     (http://www.netlib.org/benchmark/linpackjava/

  -- Used to determine how much time each robot is allowed for processing

o Threading changes

  -- Robocode is now threadsafe (as far as I know, anyway)

  -- Robot threads execute sequentially

  -- No more "busy wait" enhances performance, especially on large battles

o Minimized optimizations

  -- When minimized, Robocode will not do any drawing

  -- FPS can really crank up (when set in options-preferences)

o Minor graphic changes (The gun is slightly further forward)

o New class hierarchy, in order to clean up the javadocs

  -- added _Robot and _AdvancedRobot

  -- These hold deprecated methods and system-related things

  -- added _AdvancedRadiansRobot to clean up the AdvancedRobot docs

  -- You should still extend either Robot or AdvancedRobot

o Battles may now consist of 1-256 robots

  -- A warning confirmation will appear for > 24 robots

  -- A confirmation will appear for 1 robot

o Robots will now appear as they are loaded

  -- So large battles won't appear "hung"

o Consoles persist between battles (although they are cleared)

o Console threading is more efficient

o Console scrolling is crisper (bug fixed)

o Console now has an unlimited size, once opened.

  -- there is an 8K circular buffer before it is opened.

o setInterruptible() moved to AdvancedRobot

  -- deprecated version in Robot does nothing

  -- Note: Balancing of the "Robot" class still needs work.

o skipping turns may happen more often, but is not as big a deal as it used to be.

  -- with the exception of your first turn

  -- You will only lose events if you skip 2 in a row

  -- You will not be stopped unless you skip 60 turns in a row.

  -- skipped turns can be caused by loading classes from disk,

     writing files, etc.  If this becomes a problem, I will preload

	 all classes.

o Fixed bug with compiler when filename has a space

o Fixed bug with getting BulletMissed and BulletHit events for same bullet

o Fixed bug with editor locking up reading some files

o Another round of major code organization

o Again, probably more minor items that I already forgot about :)

o (Later additions... such as:)

  -- Invalid insert bug in editor

  -- Copy/Paste from console



Version 0.97.4

(11/18/2001)

The "finally, a single installer!" release

--------------

o Completely reworked install process.

o There is no longer a setup.exe installer.

o Jikes is now packaged with Robocode as the default compiler

  -- you may use javac if you prefer, and you have it.

o API docs now link to the Java API

o Fixed bug:  Editor did not close files after saving

o Fixed bug:  Unable to deselect "display robot names"

o Fixed bug:  Shared static vars between instances of the same robot

o Fixed a few graphics glitches

o Minor doc updates



Version 0.97.3

(11/5/2001)

The "hourly release" release :)

--------------

o Fixed nullpointer exception when loading robots with no package

o Added robocode.robot.filesystem.quota property to robocode.properties

  -- This is a temporary solution, which sets the default filesystem quota for robots

  -- example:  robocode.robot.filesystem.quota=200000

     for 200k.

o Fixed bug in editor that caused it to suggest an unreasonable filename.

	 

Version 0.97.2

(11/4/2001)

--------------

o Fixed bug that caused some robots to be stopped by the game

o Battles/Rounds start faster (back to 0.96.2 speed)

o More lenient on CPU use

  -- You have roughly 4 whole seconds before your first move

  -- You have roughly 50 + (1000 / fps) milliseconds to process each frame

  -- This is more than twice what the entire game itself gets. :)

  -- Failure to take action in that amount of time results in a SkippedTurnEvent

  -- You will be removed from the round if you skip 30 turns in a round

  -- Un-deprecated onSkippedTurn and SkippedTurnEvent

  -- No reasonable robot should ever receive a SkippedTurnEvent...

     but now it's there just in case.



Version 0.97.1

(11/3/2001)

--------------

o Abstract classes now work properly in the selection dialog and robot database

o Fixed a few Javadoc bugs

o Fixed pause/resume bug

o Javadocs have deprecated calls again



Version 0.97

(11/2/2001)

The "painful but worth it" release

--------------

o I probably missed a few things in this list. :)

o Introducing the Robot Packager

  -- Select your robot, type in a few details, and let it figure out the rest

  -- Saves details in  a .properties file (see details below)

  -- Builds a .jar for you

  -- Save this .jar in your robots directory (not a subdirectory, for now)

  -- You may distribute this jar as a standalone robot.

o .properties files

  -- Not required unless you are packaging your robot

  -- Built automatically by the packager

  -- Includes:  

        Robot version

		Short description

		Optional author name

		Optional webpage

		Robocode version

		Flag for source included

o .jar files, and the robotcache

  -- Simply put a robot .jar file in your robots directory

  -- It will be extracted to the "robotcache"

  -- Jar filename is the unique key for the robotcache

  -- Do not edit files in the robotcache, they may be overwritten.

     Copy them to your robots directory if you like.

	 This will be a feature in a future version of Robocode.

o Robot Database

  -- Built and maintained for you

  -- Allows Robocode to remember which .class files are robots, and which not

  -- Press F5 in the robot selection dialog to refresh the database.

o Robot Selection dialog

  -- Divided up into packages

  -- Shows robot details (from .properties) if they exist.

o .html files

  -- Create a .html file if you like... see sample.SittingDuck

  -- Linked from robot selection dialog

o Major scoring changes

  -- 50 points every time an enemy dies while you are alive

  -- (10 * numOthers) points if you are the sole survivor

  -- 1 point for each point of damage you do with bullets

  -- 2 points for each point of damage you do by ramming (see Ramming changes, below)

  -- bonus .2 * damage done to a specific enemy, if you kill that robot, or

  -- bonus .3 * damage done to a specific enemy, if you kill by ramming

o Ramming changes:

  -- Damage increased (from .4 to .6)

  -- Only generates score if you are moving toward the enemy

  -- If you are ramming, and run out of energy, you will now be disabled instead of killed

o "Life" replaced with "Energy"

  -- A more sensible name

  -- All getLife() calls deprecated and replaced with getEnergy()

o Added getEnergy() to HitRobotEvent (I can't believe it wasn't there before!)

o Only Robots and AdvancedRobots will show in the New Battle dialog.

  -- fixes known bug listed below at the end of 0.96 changes.

o Custom events are now be cleared at the start of each round

  -- However, since many robots rely on them still existing,

     Robocode will currently re-add any custom events

	 that were created at the beginning of the first round,

	 for all remaining rounds.  This is a temporary solution for

	 backwards compatibility, and will cause a warning message in your console.

o You may now print to System.out

  -- Will automatically redirect output to your console

o Robot Editor now supports creating normal Java files

o Added line number display to Robot Editor

o MoveCompleteCondition bug fixed.

o getTurnRemaining(), getGunTurnRemaining(), getRadarTurnRemaining() now return degrees

o getTurnRemainingRadians(), getGunTurnRemainingRadians(), getRadarTurnRemainingRadians() added.

o Added setAdjustRadarForRobotTurn(boolean)

  -- by default, set to the value of setAdjustRadarForGunTurn for backwards compatibility

o Windows now remember their last position

  -- This is based on the preferred size of the window, so

     that different battlefield sizes may have different

	 window position and sizes.

  -- This is stored in the file "window.properties" which you can

     safely delete to reset.

o Added "Default Window Size" to Options menu

  -- Resizes the window to optimal (even better than before)

o Command-line parameters to run a battle

  -- robocode -battle battles\sample.battle -results out.txt -fps 250 -minimize

  -- Results will go to System.out if you do not specify a results file

  -- All other Robocode output goes to System.err

o "Activity" is now defined as loss of 10 energy in the battle

  -- Inactivity Time is now the number of frames in which 10 energy must be lost

  -- This does not include loss due to inactivity itself, or hitting walls

  -- Prevents robots stopping the inactivity timer by calling fire(.1) every 15 seconds.

o Compiler uses -g option for debugging.

  -- This *may* help those users trying to use advanced debuggers.

o Much improved "waiting for robots to start"

o More lenient on "robot has not performed any actions"

o Various javadoc fixes

o Minor updates to template files



Version 0.96.2

(10/9/2001)

--------------

o Fixed bug in movement that allowed robots to exceed maxVelocity



Version 0.96.1

--------------

o Added automatic version checking

o Added getVelocity() to Robot

o Fixed minor bug in editor (caused the "do" in "doNothing" to highlight)

o WinException and DeathException now extend Error instead of RuntimeException.

  -- So you won't catch them by mistake with catch (Exception e)

  -- You still don't want to catch them, or you'll get no score.\

o fixed minor api doc bugs

o Added a warning when you are calling the setXXX methods too many times (300)

  -- has no effect on whether the game stops you or not,

     it simply helps to explain why.

  before taking an action

o Replaced BrowserControl with BrowserLauncher, from http://www.stanford.edu/~ejalbert/software/BrowserLauncher

  -- Should work on more systems

o Synchronized tick()

  -- Two threads cannot take action at the same time.

  -- This entire area needs work

o FPS no longer displayed when Swing doublebuffering is on

o Added getHeadingRadians() to Bullet.

o Fixed getHeading() in Bullet to return degrees.



Version 0.96

(10/5/2001)

The "Robocode is now my life" release

------------

o Renamed "Battles" to "Rounds" -- a single battle consists of multiple rounds.

o Commented and updated all sample robots

o All sample robots are now in package "sample"

o If the old samples exist, Robocode will ask you if it may delete them, when you first run it.

o Only Target, Crazy, Spinbot are still AdvancedRobots

 -- Target must be for the custom event

 -- Crazy and Spinbot call setTurn methods.

o SittingDuck is now an AdvancedRobot

 -- SittingDuck writes to the filesystem.

o Help system now uses system browser.  Hopefully.  Let me know of any issues.

o API Help menu item copied to RobocodeEditor, and uses the local copy.

o Robots may now use,extend,or inherit external classes, as long as they are in the same root package.

  -- You must be in a package to use this feature

o Added call: getDataDirectory() to AdvancedRobot -- returns java.io.File representing your data directory.

o Added call: getDataFile(String filename) to AdvancedRobot -- returns java.io.File representing a file in your data directory.

o AdvancedRobots may now read files that are in the same directory (or subdirectory) as their root package.

  -- It is recommended that you only read from your data directory

  -- You may not read another robot's data directory

  -- If you extend another robot, and it calls getDataDirectory, it will get YOUR data directory.

  -- If you extend another robot, and manually try to read it's data directory, it will fail.

o Added classes: RobocodeFileOutputStream and RobocodeFileWriter

o AdvancedRobots may now write files to their data directory

  -- You must use RobocodeFileOutputStream or RobocodeFileWriter

  -- Any other output stream will fail

  -- You may wrapper them with other outputstreams

  -- Example: PrintStream out1 = new PrintStream(new RobocodeFileOutputStream(getDataFile("my.dat")));

  -- There is a quota of 100K.

o Fixed scoring bug (as exhibited by rk.Rotator)

o Fixed threads stuck in wait condition when new battle selected

o Fixed threads stuck in onWin or onDeath events

o Fixed threads not taking action

o Fixed leftover threads

o Fixed a half dozen other thread issues

o Limited # of worker threads a robot may have to 5 

o Limited print/println calls to out, to 100 per turn.

o Robots now run in their own ThreadGroup.  (You can no longer can see other robot's threads)

o Robots now have their own Classloader.  (static variable "messages" will no longer work)

o Fixed null pointer exception in RobocodeOutputStream

o WinEvents or DeathEvents will now be the only thing in the event queue.

o Reworked event handler system, should be more robust

o Tweaked event priorities.  New default priorities are:

 *	ScannedRobotEvent: 		10

 *	HitRobotEvent:     		20

 *	HitWallEvent:      		30

 *	HitByBulletEvent:  		40

 *	BulletHitEvent:    		50

 *  BulletHitBulletEvent: 	50

 *	BulletMissedEvent: 		60

 *	RobotDeathEvent:   		70

 *	CustomEvent:       		80

 *	WinEvent:          		100 (cannot be modified)

 *	DeathEvent:        		100 (cannot be modified)

o Valid priorities are 0 to 99 (100 is reserved)

o Added new method "setInterruptible(boolean)" to Robot

  -- Can only be used while handling an event

  -- Always resets to false when the event ends

  -- Causes event handler to restart from the top, if

     the same event (or another event of the same priority)

	 is generated while in the event handler following this call.

  -- This will only happen if you take an action inside an event handler,

     that causes the same event handler to be called.

  -- This makes it possible for Robots to turn and move like AdvancedRobots...

  -- This has no effect on events of higher priority

o Calling scan() inside of onScannedRobot() can now restart onScannedRobot

     -- internally calls setInterruptible(true) for itself.

	 -- See sample.Corners for example.

o Robots of class Robot no longer take damage from hitting a wall

o Robots of class AdvancedRobot take more damage from hitting a wall

o Added isMyFault() to HitRobotEvent

  -- returns true if you caused the event by moving toward the other robot

o Revamped robot to robot collisions:

  -- Your movement will be marked complete if you are moving toward the other robot

  -- You will not be stopped if you are moving away from the other robot

  -- Collisions now cause more damage, but are easier to escape from

  -- This means robots without onHitRobot handlers still have a chance...

  -- An event is generated every time one robot hits another

    -- If you are moving toward the other robot, you will get onHitRobotEvent with isMyFault() = true

	-- If another robot is moving toward you, you will get an onHitRobotEvent with isMyFault() = false

	-- If you are moving toward each other, you will get two events, with the isMyFault() = true, first.

o Damage from robot to robot collisions is now a constant 0.4

o Added getBearing() to onHitByBullet

o Added a Bullet object

  -- encapsulates owner, victim, power, velocity, X, and Y.

o Bullet hitting bullet generates BulletHitBulletEvent

  - methods include getBullet() and getHitBullet()

o added getBullet() to HitByBulletEvent, BulletHitEvent, BulletMissedEvent

o Added fireBullet(), which is exactly like fire(), but returns a Bullet object

  -- I could not simply add a bullet return to fire, because it broke *all* existing robot .class files.

o You can now select from the results dialog

o Fixed path for open/save battles on non-Windows systems

o Fixed slashscreen for some systems

o Fixed minor api doc bugs

o Updated many api docs

o Renamed and reorganized many internal classes

o Fixed bug with allowed package names (now allows digits)

o Windows installer now defaults to c:\

o added getGunHeat() to Robot

  -- when gunHeat is 0, you can fire.

  -- gunHeat goes up by (1 + firePower / 5) when you fire.

    -- this is unchanged from the v0.95

o added getGunCoolingRate() to Robot

o deprecated getGunCharge()

  -- use getGunHeat()

o deprecated endTurn()

  -- It will still work for now, but you should replace calls to to it with execute().

o Removed onSkippedTurn

  -- your robot will simply be stopped instead.

  -- The results dialog will report "not deterministic"

  -- Not deterministic means that a battle started with the exact same conditions

     and starting positions, may not end up with the same results.

	 (Ok, so far, you can't test that...) :)

  -- Added getWaitCount() and getMaxWaitCount() to AdvancedRobot.

o deprecated SkippedTurnEvent

  -- well, it's no longer used.

o deprecated all getRobotXXX methods

  -- replaced with getXXX methods.

o deprecated all getXXXDegrees and setXXXDegrees methods

  -- just use the getXXX and setXXX methods

o Compiler will always show output, and uses the -deprecation flag

  -- so you can see that you're using a deprecated call

  -- I would like to remove all deprecated calls in the next version

o Known bug:  New battle dialog not smart enough to differentiate between Robots classes and other classes 

  -- You will be able to put other classes into a battle

  -- They will sit there and do nothing



Version 0.95

(9/9/2001)

"The /. release"

------------

o Completely rewrote all windows and dialogs to use LayoutManagers

o Linux support vastly improved (although fps still not great)

o Improved framerate calculation (should be smoother on most systems)

o Robot exceptions now all go to robot's console

o Fixed bug in initialization - radar turn

o Hitting a wall no longer resets inactivity counter

o Better pause functionality (fixed bugs)

o Known bug:  Help system still not using external browser

o Smarter dialog locations



Version 0.94

(8/9/2001)

------------

o Fixed a few bugs so Linux version would run

o Known bug:  Linux version does not run well



Version 0.93

(4/23/2001)

------------

o Completely redone graphics for tanks, guns, radar

o Firepower adjusted.  Higher-power bullets now move slightly slower and fire slightly slower.

o Gun must 'charge up' before firing.  This avoids the "lucky shot" syndrome at the beginning of a battle.

o Added execute() method for AdvancedRobots.  Better name for 'endTurn'.

o Optimized drawing of explosion graphics

o Added buttons for selecting battle size

o Bullets can now hit each other (not perfect yet)

o Updated security manager to work with jdk1.4

o Revised bounding box for new graphics.  The graphics should no longer have a 5-pixel blank area

o Optimized scanning code

o Added 'color mask' to determine which parts of image should be recolored

o Replaced splashscreen and icons

o Java-based help, api, check new version.

o Robot menu (disabled)

o Changed fireDelay mechanism to be gunCharge.  Still in progress.

o Renamed to Robocode

o Added Buttons for framerate

o Added Buttons for battle size



Version 0.92

(3/2001)

------------

o Added getTime() method to Robots

o Added getFireDelay() method to Robots

o Added explosions



Version 0.91

(3/2001)

------------

o Fixed bug in waitFor() so that automatic scanning will not repeatedly generate events when the condition is true.

o Fixed bugs in Tracker sample robot

o Fixed display issues with view scan arc option



Version 0.9

(3/2001)

-----------

o Completely reworked scan() to use a sweep as the radar moves.  If the radar is not moving, the scan will be a straight line.

o Added fire assistance to regular Robot classes (not AdvancedRobots).  If you fire at a robot you see during scan(), and gun/radar are 

  together, and you fire() before doing anything else, you will fire at its center.



Version 0.8

(2/2001)

-----------

o Initial release

  -- Robocode brought to IBM



Version 0.1

(9/2000)

-----------

o Development started

  -- as late-night project

