The Robot Auto Racing Simulation
A Challenge for Evolutionary Programming
A Competition for Programmers
by Mitchell E. Timin
Version 0.2 of RARS (Robot Auto Racing Simulation) is ready. It is
written in the Borland flavor of C++ and has been compiled and tested
with Turbo C++ 3.0 for MSDOS. It should be easy to port to any C++
that has functions for drawing lines and arcs, a flood-fill or color
fill function, and text output to the graphic screen. Hence it will
not be difficult to make it run on a Macintosh or Unix system.
Enhancements to ver. 0.1 include a track with a right turn, display
of the leader's max and average speeds, and separation of the graphics
calls into a separate file, for easier porting. Some not-obvious
bugs have been fixed of course. The five supplied robot "drivers"
have been improved so as to be able to handle the right turn.
This is a new Artificial Intelligence problem that will serve both
as a vehicle for genetic and neural software development, and as a
competition between programmers.
There is now a RARS anonymous ftp site: magdanoz.mcafee.com in
directory /bin/ftp/rars. Anyone can get any RARS stuff there,
code, announcements, car controllers, documentation, etc.
RARS consists of a simulation of the physics of cars racing on a
track, with a simple bird's-eye view of the race. The unique feature
is that each car is controlled by a separate and independent control
program. Each car is "driven" by its own control program, which
receives information from the simulation telling it about the car's
local situation. The "driver" (control program) adjusts the steering
and throttle, and then the physics simulation moves the car a little.
This happens many times per second, of course. Every car has exactly
the same physical characteristics, only the "drivers" are different.
Hence, the result is a competition between the control programs.
Furthermore, the competition is visible as an auto race, with
acceleration, passing, cornering, braking, etc.
Although this project is at a very early stage of development,
version 0.2 works, and displays an entertaining race. It includes
six similar, but not identical, control programs. These are meant to
serve as examples for programmers wishing to develop programs to
compete in these races. The control programs may be written in other
languages, although for version 0.2 they must be linkable with the
Borland linker. (or supplied in source form for Turbo C, C++ or
TASM) In version 0.2 up to six*** cars can race simultaneously; if
there are more than six, then the control programs can each handle
two or more cars. When other control programs are written, then
there could be six*** control programs active.
For genetic programming, the races will be between several programs
selected from an evolving population of programs. The racing may
take place continuously for long periods of time, with the graphic
display disabled for faster execution. Of course losers will be
eliminated and winners will breed. Genetic Algorithm proponents
will probably design robot drivers with a vector of parameters to
be determined by evolution. Neural nets are also candidate "drivers".
Wanted - People to do or help with any of the following:
Handling a mailing list and listserver
Porting to other platforms
Testing the software and suggesting enhancements
Improving the graphics
Locating a corporate or university sponsor
Creating new track designs
Adding sound effects
Act as a race director to manage a "race meet"
Reporting, both to academic journals and popular magazines
Improving the software in any of dozens of ways
(and of course, building "drivers" to compete in the races!)