"Robot Battle is a programming game that challenges you to design and code adaptable battling robots. Robot Battle is unique because it takes strategy rather than reflexes, accuracy, or timing to succeed. Winning Robot Battle players are those who create the smartest robots. What differentiates one robot from the next is its brain, for which you are responsible." (http://www.robotbattle.com/)

Robot Battle was created by Brad Schick in 1994 and released to the public for free in the same year, when it reached version 1.2. It went through many versions until seeming to peak at 1.3 in 1995, until in 1997 David Finch released 1.33. The community was at that time held together by the Robot Battle Mailing List (RBML), where tournaments were held, new players could be helped and complicated coding questions could be posed and answered.

Early in 2001 Brad began work on Robot Battle 1.4, which promised to be a massive upgrade. The RBML was alive with ideas, suggestions and offers to help, which resulted in the Robot Battle that new players will know, including new features such as:

Then in mid 2001 a small company called Garage Games showed an interest in Robot Battle and Brad agreed to sell the game through them. Soon after the first official 1.4 release in December 2002 work began on the Robot Battle Registry, a system of forums and a way of storing robots so that other people can download them, as well as a way to organise and advertise tournaments. The registry opened in May 2003.

Now Robot Battle has a steadily growing user base, communications over the Registry forums, RBML and IRC, the game sells through http://www.garagegames.com/ although a demo is also available from http://www.robotbattle.com/. At first the Registry was only available for people who had purchased the game, but it has now been opened up to anybody.

Brad has always ensured that Robot Battle is open source, allowing anybody to read the code in order to help design robots or programs which interact with the game somehow. When 1.4 was released and the game went on sale for money the product key code was kept as an interaction with Garage Games, so that the game is still secure in that aspect.

More information available at http://www.robotbattle.com/history.php

The Robot

The robots in Robot Battle have three separate parts. The body contains the tracks, is a square size 33x33, and rotates at a speed of 5 degrees per turn. The gun has the ability to shoot antimatter missiles which will damage robots, and destroy missiles, mines and cookies on collision, and can rotate 10 degrees per turn. The radar has the ability to scan for cookies, mines, robots, and walls, and can rotate 15 degrees per turn.

Robot Coding

Robots are coded in Robot Scripting Language (RSL), and can be created in all text editors such as Notepad or UltraEdit (including syntax highlighting file available). Robots are usually worked on and distributed in .prg format, but some coders choose to scramble their robots and distribute them as .dst files. The scrambling software was created by Brad for Robot Battle 1.3 and later edited by Joseph "Sorcerer" Fowler and Mark Duller to give two seperate programs both compatable with Robot Battle 1.4.

RSL is has been said to resemble many languages including Basic, C, Assembly and JavaScript. Each robot has one or many sections, separated by section names and curly brackets, "init" being the only required section and where other sections are defined by an event, a name and a priority. Events able to be registered are as follows:

The Core section does not need a priority, and contains the details of what the robot will do when it isn't doing anything else. The Ascan, when used, usually has the highest priority (least important) and takes place whenever the robot is moving. The other events take place when an object is detected, with the radar, or collided with by the body.

The parts of the robot are controlled by commands, the most common of which are these:

The easiest way to make a robot is to look at the ones which come free with the game, "Combo", "Smart Corner", "Events", "Fire", "Rammer", "Shell", "Side Liner", "Target", "Walls II" and "Zag". These robots demonstrate uses of the simple commands above, as well as some more advanced tactics such as the use of radio and the differences when creating a robot with "blocking" turned off, which I will not venture into now.

Download and Buy

So if you're an expert coder looking for a new challenge or language, someone who wants a good place to start, or just want to give it a go, head over to www.robotbattle.com and get yourself a copy of the demo, play around a bit and then jump onto the Registry, we're all happy to help.

Many thanks to Ville, Mark, Brad and John for their help with the facts in this node.