botZilla : A Programming Challenge.

Oh No! It's BotZilla!

500' tall robotic monsters are rampaging through the city! The population
has fled and a force field has been erected to contain the mayhem. But who
can stop the terrible destruction?
The Mayor needs a truly great programmer to program a robot to take
out the monsters. He can only turn to the legendary super-programmers
at {insert name of your organisation} for help.
But who should we choose to take on the ultimate challenge?
We'd better run a competition to find out.

Introduction to botZilla.

botZilla is an unusual programming challenge. Your objective is to write
a piece of software to control a virtual robotic monster which has to beat
the stuffing out of any number of similar robots to win the competition.

The contest is set in a small city in which 500' tall robotic monsters are
rampaging (as these things tend to do!) - your software is presented with
a "radar map" of the area immediately surrounding it - along with other
status information. You have to process this and come to a decision on
how to drive the robot: which direction to steer in, how fast to move,
whether to shoot, claw, etc.

How The Challenge Works.

In the DOWNLOAD section of this web site,
you will find a piece of software that runs under either MS-Windows or
Linux. It's called "The City Simulator". This is a fairly complex
graphical simulation of a small city and the robots within it - all that
is missing is the robot's brains - which is where you come in!

Your software contribution takes the form of a small(?!), dynamically linkable
library (a '.DLL' in Windows terminology - a '.so' if you are using
Linux, UNIX, etc). The detailed specifications for this are laid down in
the RULES section of this site - but the intention
is that you have a shallow learning curve and that everyone who can program
in either C or C++ starts off on an even footing.

When the City Simulator starts up, it loads up the model of the city and
initialises everything - then calls each robot's control program in turn.

Your library will be called somewhere between 10 times and 100 times per
second and should update the robot's
controls as needed and then return within at most a millisecond. The
city simulator resolves the movement of the robots, decides what happened
as a result of any combat - then loops around again - whilst rendering a
3D view of the action for the spectators to watch and to aid with debugging
your algorithms. See the SCREENSHOTS
section for an idea of what to expect.

The competition can either be run in a one-on-one form with a number of
knockout or league format rounds to determine a final winner - or for
more fun, you can just toss all of the robots into the arena at once
and let them duke it out. However, the all-against-all form does tend
to be somewhat random - if you want to know which bots are the most
consistently good, run one-on-one contests.

If in the future, we'll add variety
and complexity to the tasks that the robots have to perform.

Getting Started.

STEP 3: Subscribe to the MAILING LIST
and post a message to tell us who you are and what group you work in.

STEP 4: INSTALL the City Simulator on
your PC and try running it.
It comes with a handful of sample 'bots and instructions for building
them under Linux and Windows - using either MSVC or MS Visual C++
Toolkit 2003 (which is a free C/C++ compiler that you can download if you
don't own MSVC).

STEP 5: Pick one of the sample bots and start modifying it.

STEP 6: You can debug your bot by setting it loose with the sample bots.
There is also a special bot that works by reading the computer's joystick
so you can control it directly in realtime - just like a conventional
computer game. This is handy because a real, live human is likely to be
the hardest opponent for your bot to beat!