## 1. Introduction

This is the user manual for RealTimeBattle. Here you should find how to run the program, how the program works, how to create your own robots and how to construct arenas.

RealTimeBattle is a programming game for Unix, in which robots controlled by programs are fighting each other. The goal is to destroy the enemies, using the radar to examine the environment and the cannon to shoot.

Even though the environment the robots are moving in is fairly simple, it is far from easy to construct an intelligent robot-program. RealTimeBattle is constructed to be easy to use, flexible and fast. The intention is that the program could be used as a test for intelligent algorithms, as well as just a game to play and enjoy.

Features include:

- Game progresses in real time, with the robot programs running as child processes to RealTimeBattle.
- The robots communicate with the main program using the standard input and output.
- Robots can be constructed in almost any programming language.
- Up to 120 robots can compete simultaneously.
- A simple messaging language is used for communication, which makes easy to start constructing robots.
- Robots behave like real physical object.
- You can create your own arenas.
- Highly configurable.
- Possibility to plug in external clients.
- Basic team support directly integrated in the game, sophisticated team play available due to team frameworks.

## 1.1 More information

More information can be found in the `INSTALL`, `AUTHORS`, `BUGS`, `TODO`, `README`, `FAQ` and `ChangeLog` files in the distribution. More updated information is available on the RealTimeBattle homepage, where you can also find robots, news on tournaments as well as this manual in different formats.

## 1.2 Requirements

The hardware requirements are very much dependent on what you do. Running a few robots should be possible to do on any computer on which GNU/Linux or any other Unixes can be run. The demand on hardware will, however, grow with the number of robots you want on the battlefield simultaneously; running 120 advanced robots is certainly demanding for any personal computer.

RealTimeBattle is only available on Unix. It is developed on a Linux-machine, but it should compile on other Unix dialects too. Running in competition-mode is currently only possible on Linux with the '/proc'-directory enabled, because of the need to get the cpu usage of child processes.

The only software requirement is gtk+, which is used for the graphical user interface.

## 1.3 Background

The project started in August 1998. Inspiration came from RobotBattle, a very interesting game we used to enjoy some years earlier. That version of RobotBattle, however, had some drawbacks: It was only available on Windows and the robots were written in an own language, which restricts the possibilities to write intelligent robots. RobotBattle has since then been under development, but it still lack support for other operative systems.

We therefore decided to construct a Unix robot programming game, which makes use of features of a modern OS.

## 1.4 License

RealTimeBattle is distributed under the GNU General Public License, in the spirit of the Linux community. Official versions of RealTimeBattle will be released by the authors.

Copyright (C) 1998-2000 Erik Ouchterlony and Ragnar Ouchterlony, see the `AUTHORS` file for further developers.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

## 1.5 Bug reports

If you find anything in this package which doesn't work, appears strange, is missing, is spellt wrong or is just confusing, don't hesitate to send in a bug report to the Sourceforge Bug Tracker.