botZilla : A Programming Challenge.

by Steve Baker



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.