The goal is to destroy the enemies, using the radar to examine the environment and the cannon to shoot.
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.
Here is a list of features of RealTimeBattle:
- 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.
- Any number of robots can compete simultaneously if allowed by your operating system.
- A simple messaging language is used for communication, which makes it easy to start constructing robots.
- Robots behave like real physical object.
- You can create your own arenas.
- Highly configurable.
- It is distributed under the General Public License (GPL).
GUI Click on the images to get a larger version. This is a screenshot from version 0.9.1 of RealTimeBattle using gtk+ 1.0.6
The RealTimeBattle Team Framework Group proudly announces RealTimeBattle 1.0.8.
There is a long distance between the last version and the current one, because we have integrated improvements from different developer teams around the globe who have only little time to work on RealTimeBattle.
So what's new on the 1.0.8 version? We will list the ten most important points here:
1. Beginning separation of GUI and Core
Now, the first steps are made to separate the GUI components from the simulation core. If you compile RealTimeBattle with the --enable-network option, you can connect to the RealTimeBattle core via TCP/IP on a port specified as command line parameter. You will be able to start and watch tournaments from remote. With this approach, new external clients and visualization plugins can be developed without changing the core. The protocol corresponds to the protocol used for logging tournaments. At the moment, there is only one client available, that is still in development. There are progresses in external clients that also support sound and comments about the running games. Thanks to Mr. Friendly (Volker Ströbel) for his efforts to get things done.
2. More sample robots, improved sample robots
With version 1.0.7 we started to distribute a variety of different robots in different programming languages in the Extended Edition. We have recognized, that almost every person interested in RealTimeBattle downloaded this version, so we will only release an Extended Version for 1.0.8.
The sample robots have been improved and new robots were introduced: The RealTimeBattle Team Framework now supports two more strategies (Cobra and Columbus) and Raziel (a python bot) joined the other robots. Thanks to Sebastian Rolof, Tino Truppel and Torsten Sachse.
3. Code Cleanup
All custom collection classes in the code were replaced by STL containers. RealTimeBattle will now stand a Denial of Service Attack by an evil robot and is no longer vulnerable to several buffer overflow possibilities. Thanks to Georg Zetzsche for helping me with this issue. RealTimeBattle will not crash any longer if a wrong tournament file or arena file is supplied. Thanks to Christian Heinemann for his work.
4. Bug Fixing
Features that were broken in 1.0.6 and 1.0.7 like the replaying and recording of log files or the compilation without GUI now work again. For further details about the fixed bugs, see our bugtracker.
5. Supported platforms
RealTimeBattle 1.0.8 was successfully compiled and tested under
Linux (32 and 64 Bit x-86, Alpha)
Open BSD (x-86)
Free BSD (x-86)
Net BSD (x-86)
Mac OS X 10.2
Solaris 9 (sparc and x-86)
Windows with the Cygwin environment
Thanks to Simen Røkaas for his distribution to the Windows port.
It would be cool, if some volunteer would manage to create some binary packages (e. g. RPM, MSI) for RealTimeBattle 1.0.8. At the moment, the only distribution we know, that already ships with RealTimeBattle is Debian.
6. Team Support
RealTimeBattle now supports teams without changing the protocol. The RobotInfo message now distinguishes friends and enemies. All team members get the same colour. To assign to a team, you have to specify the team name with your name. "Name foo Team: bar" lets your robot "foo" join the Team "bar".
7. Updated Documentation
The English and German documentation will tell you everything about the new features like team support and GUI/Core separation. Furthermore, outdated links and email addresses were updated. Documentation for other languages still do not reflect the latest changes. We need volunteers to update them.
English RealTimeBattle Documentation (v1.0.8)
German RealTimeBattle Documentation (v1.0.8)
French RealTimeBattle Documentation (v1.0.5 rev 1)
Spanish RealTimeBattle Documentation (v1.0.8)
Japanese RealTimeBattle Documentation (v1.0.0 rev 1)
8. Introduction of the RealTimeBattle Security Infrastructure
While we are planning the next World Champion Ship (probably held in Potsdam on the RoboClash 2006), we have developed a method to guarantee, that robots must behave according the rules. Deletion of files, spying out other binaries, establishing network connections, sending signals to non team mates, creating files in other directories than the team directory, interacting with other processes not part of the team, misuse of resources like memory, CPU and disk space and other evil actions will be automatically prevented by the applied mechanism. The solution works with a portable system call interposition tool named systrace (www.systrace.org). The RealTimeBattle security infrastructure mainly consists of a shell script (create_guardedrobot.sh) that automatically creates wrapper scripts and system call policies for the competing robots. The RealTimeBattle Security Infrastructure is described in detail in chapter seven of "Secure execution of untrusted code" (only available in German).
9. Tournament Pack
To get an overview about how clever robots can act in the RealTimeBattle arenas, we have packed the log files of all champion ships together and released them in a separate download file. This is nothing really new, but very convenient because otherwise you have to download a lot of files.
For those who took part in the recorded tournaments: We would be very happy, if you could provide us with the source code of your robots so that we can add it to the sample robots.
10. Diagram Pack
We always search new interested developers to assist us improving RealTimeBattle and the RealTimeBattle Team Framework. In order to get a quick overview about the architecture of RealTimeBattle and the Framework, we have packaged all existing design and analysis diagrams (UML and FMC) in a separate download. Sometimes, you can save a lot of time by studying these diagrams instead of reading the code over and over. Thanks to Falko Menge and the RTB-Team Analysis Group.