Drunken Bot

[ menu ]
[ end ]
DrunkenBot is a coding game, where the player does an AI for a robot, which in turn fights against other bots and AI:s. It is meant for coding parties.
Unlike most projects like this, there is no script language, but AI is implemented in C++, this makes coding of the engine more accurate, since giving wrong data to the AI can lead into funny consiquenses.
Also a difference to most others is that the killing field is not just a empty space, but rather a maze, with weapons lying here and there, with different properties.
One of the main ideas is that AIs are reloaded every time the robot dies, so that if the game is running on big screen, one can observe his bots weaknesses and repair them. The downside of this approach is that there is no way of trapping bad code, so if any player does anything evil, the whole game will crash.
This is the third try of this project, all previous tries have died to their own impossibility, most notably the thinking while coding principle. This time, a lot more thinking was done before even touching the code, although not even nearly enough, and nothing was written down, thus there have been quite a few changes in the header files. But with the lessons learned from the two previous tries and a new coder, there will hopfully be a result.
technical info
The codebase is developed under linux and windows2000, and has been succesfully compiled on digital unix.
For visualisation of the game, there are currently a DirectDraw engine and a really simple text engine using only ansi escape sequences, but in the future there will be at least a Direct3D engine, a graphical engine for other platforms may or more likely will not be implemented.
Learning from the previous mistakes, the game engine is kept apart from the graphics engine, which greatly eases the development in such different environments.
project status
There are still big things missing, like collision detections and shooting, but things are currently looking good for a usable release in just a few days or at least weeks.