Core War: RobotWar

RobotWar is a programming game developed for the PLATO computer system at Indiana University in the 1970s by Silas Warner. In 1980 RobotWar was ported to the Apple II and published by MUSE Software. The aim of the game is to write a program to control the movement, radar and gun of a battle robot. The original PLATO game placed two robots in a battle arena with the survivor being declared winner. The Apple II release supported up to five robots in the arena.

Specification

Programs are written in small, custom language which controls the robot using 8 i/o registers. Labels are up to 32 characters terminated by a newline. The following commands and registers are supported:

Command Description ; The remainder of this line is a comment <arg> Store the value of <arg> in the accumulator TO <reg> Store the value of the accumulator in <reg> + <arg> Add <arg> to the accumulator - <arg> Subtract <arg> from the accumulator * <arg> Multiply the accumulator by <arg> / <arg> Divide the accumulator by <arg> IF <arg> < <arg> If the first <arg> is smaller… IF <arg> > <arg> If the first <arg> is larger… IF <arg> = <arg> If the <arg>s are equal… IF <arg> # <arg> If the <arg>s are unequal… GOTO <arg> Go to <arg> GOSUB <arg> Call a subroutine at <arg> ENDSUB Return from a subroutine

# Register Description 1–23 A–W General purpose 24 X Current x-coordinate (0..256) 25 Y Current y-coordinate (0..256) 26 Z General purpose 27 AIM Angle of the gun (0..359) 28 SHOT Set to distance to shoot, returns status of gun 29 RADAR Set to angle to scan, returns distance to wall/robot 30 DAMAGE Damage status (0..100) 31 SPEEDX Horizontal speed (-255..255) 32 SPEEDY Vertical speed (-255..255) 33 RANDOM Set to limit, returns a random number (0..limit) 34 INDEX The register number to be used by DATA N/A DATA Uses INDEX to access a register by number

Robots battle in a 260×260 metre arena (x- and y-coordinates are in the range 0..256). The DAMAGE register starts at 100 and drops every time the robot is attacked or collides with something. A robot is destroyed when DAMAGE reaches 0.

The complete specification is available in the RobotWar manual.

Tutorials

The RobotWar manual has a step by step guide to the language of robots.

The Key Summary and Programming Instructions contains a brief description of the controls and language.

Speeding Up Your Robot by Richard Fowell is a tutorial on instruction timings and optimising for speed.

RobotWar Gun and Radar Behavior by Richard Fowell examines the finer details of robot warfare.

Software

RobotWar was published on a 5.25″ disk for the Apple II / II+, priced $39.95. Early versions restricted the INDEX register so it could only access registers A – Z . Later versions allow INDEX to access all registers.

rwdc.c is a decompiler to recover a robot program's source code from its object code. A Windows binary is available.

The following robot programs are available:

Bottom, Mover, Random, Scanner and Target (included on the RobotWar disk).

Hector II by Larry Farrell and Mark Hougaard (published in Interface Age, Nov 1981).

Bottom Killer, George and Test by Bill Edmunds (published in Computer Gaming World, Nov–Dec 1981).

Norden+ by Richard Fowell (published in Computer Gaming World, Mar–Apr 1982).

Dragon by Doug Hogg (published in Computer Gaming World, Mar–Apr 1983).

Bell, Blaster, Bolo, Bug, Corn1b, Cornr1c, Deathbot, Echo, Framer, G.I.Joe, Gnat, Indian2, Killer, Killer, Lemuel, Lobo, Maniac, Master, Mustang, Norden2, Old Kro, Omar, qx4, Ralph, Remover, Robby, Samoth, Sample, Sample Robot, Scoot, Scoot2, Sentry2, Sidebot, Slinky, Smokin, Spiro, Stalker, Super Robot, Tojo, Twoshot, Ultima, Walter, Yeah, Zap, Zero

CGW Tournaments

The First Computer Gaming World RobotWar Tournament was held in 1982. Norden+ claimed first prize for Richard A. Fowell, who won the RobotWar trophy and a RobotWar t-shirt.

In 1983 CGW held their second RobotWar Tournament. 12 robots entered, with Dragon by Doug Hogg taking first place. Second place went to Corner by David A. Jones, with Hot Rod and Norden B tied for third. A disk of the entries was available for $10.

The Third Annual CGW RobotWar Tournament received 17 entries. Dragon4A by Doug Hogg and Mustang by Stanley Chen shared first place, winning their creators $50 and a RobotWar trophy. A disk containing the entries was available for $15.

12 robots entered the Fourth Annual CGW RobotWar Tournament in 1985. Newman Lowe claimed first place with his robot Nobody, winning the RobotWar trophy.

The Postal RobotWar Club of America

Frank Krogh formed the Postal RobotWar Club in July 1982 to sponsor tournaments for players unable to attend the Burbank / UCLA RobotWar meetings. Robots were awarded the titles master, champion and grand champion as they progressed through the levels. The club also offered a lightweight tournament for robots under 150 instructions and a team tournament.

Standard tournament results:

# Date Winner 1 Oct 1982 Stalker by Pat Bachelder 2 Nov 1982 Norden2 by Richard Fowell 3 Dec 1982 Samoth by Tom Schai 4 Jan 1983 ??? 5 Feb 1983 ??? 6 Mar 1983 Mr Maim by James Marca 7 Apr 1983 Aussi2 by Bryan Johnson 8 May 1983 Sloturer by Aaron Inami 9 Jun 1983 Remover by Newman Lowe 10 Jul 1983 Serpent by Robert Hogg 11 Aug 1983 Omni B by Frank Krogh 12 Oct 1983 Slinky by Frank Krogh 13 Dec 1983 Lobo by Newman Lowe 14 Feb 1984 Bully by Frank Krogh 15 Apr 1984 George 4 by Frank Krogh 16 Jun 1984 George 9 by Frank Frogh 17 Aug 1984 Indian 3D by Stanley Chen 18 Oct 1984 Indian 3 by Stanley Chen 19 Dec 1984 Seeker by Frank Krogh 20 Mar 1985 Nobody by Newman Lowe 21 Jun 1985 Bodashus by Newman Lowe

References