is an Open Source educational game written in Java to teach you Java!
Competitors write software that controls a miniature tank that fights other identically-built (but differently programmed) tanks in a playing field. Robots move, shoot at each other, scan for each other, and hit the walls (or other robots) if they aren't careful. Though the idea of this "game" may seem simple, the actual strategy needed to win is not. Good robots can have thousands of lines in their code dedicated to strategy. Some of the more successful robots use techniques such as statistical analysis and attempts at neural networks in their designs.
Safely run other peoples' bots
One can test a robot against many other competitors by downloading their bytecode, so design competition is fierce. Robocode provides a security sandbox (bots are restricted in what they can do on the machine they run on), which makes internet redistribution safe.
Movement and Targeting
Robocode competition is all about two things:
1. Avoid getting hit too much (Movement)
2. Try to predict where the opponent(s) will move and hit them as much as possible (Targeting)
Many sophisticated techniques have emerged. In particular, many top bots utilize:
* WaveSurfing - Adapting your movement and trying to avoid getting hit the same way twice.
* StatisticalTargeting - Collect data that describes the targeting situation together with what would have been the correct decision for each situation. Use this data to make targeting decisions.
* GuessFactorTargeting - The best known form of StatisticalTargeting where the stats for enemy robots are each contained inside one number (the "GuessFactor").
* PatternMatching - Tries to match patterns of observed behavior with previously observed patterns, and make decisions on targeting based around that.
Several sample robots are included in Robocode to help the beginners get started. They demonstrate various basic techniques used in coding robots, from event-driven programming to writing out data to files for use later.
What is it? It's a Programming tool, a game, educational, and has a lot of grownups stirred up about it in general.
The Wikipedia page tells you a LOT more: http://en.wikipedia.org/wiki/Robocode
Works on Mac OS X Tiger and Linux and Windows http://robocode.sourceforge.net/
Categories: What is it? - Educational - Programming - Games - Fighting Strategy - Mac System X - Leopard - Tiger - PPC - MacIntel - LINUX - Windows