[Home]SchwarzerPeter/RoboCodeStartup

Robo Home | SchwarzerPeter | Changes | Preferences | AllPages

Schon immer gab es Computerspiele, die nicht für eine breite Zielgruppe, sondern direkt von Programmierern für Programmierer entwickelt wurden. Vielleicht kann sich der eine oder andere noch an das Spiel CoreWars erinnern, in dem sich ASM-ähnliche Programme um die Hoheit in einem Speicherbereich bekämpften. Das gleiche Spielprinzip kehrt wieder - diesmal allerdings nicht in ASM, sondern in Java. Das ganze heißt Robocode und ist frei beim Open Source-Hoster Sourceforge erhältlich. Die Community hat bereits einige Seiten wie RoboWiki und RoboCodeRepository? auf die Beine gestellt.

Der erste Schritt für den interessierten Programmierer ist der Download des Installationsarchives von http://robocode.sourceforge.net/download. Natürlich muss ein JDK installiert sein. Sollte das nicht der Fall sein, kann die aktuelle Version unter http://java.sun.com/getjava heruntergeladen werden. Anschliessend wird die Installation mit einem Doppelklick auf die JAR-Datei oder die folgende Befehlszeile gestartet:

$> java -jar robocode-setup-1.0.7.jar

Nach der Auswahl des Zielverzeichnis werden einige Verzeichnisse und Dateien entpackt, anschliessend kann Robocode schon mittels der erzeugten Verknüpfungen gestartet werden. Es präsentiert sich ein schwarzes Fenster. So weit, so gut. Aber wo sind jetzt die kriegerischen Roboter?

Nach dem Start von Robocode präsentiert sich der Bildschirm aufgeräumt und man ist sofort versucht, den Menüpunkt Battle anzuklicken. Für einen ersten Test reicht das natürlich auch aus. Ein Klick auf "Battle - New" präsentiert einen Dialog, in dem man nun die Kämpfer auswählen kann. Für den Anfang genügen sicherlich 2 Roboter. Später können selbstverständlich auch mehrere Kämpfer und sogar Teams gegeneinander antreten. Nach einem Klick auf "Start" beginnt der Kampf und die beiden Roboter suchen nach ihrem Gegner.

Je nach Intelligenz der Such-, Bewegungs- und Angriffalgorithmen wird einer der beiden Roboter bald die Oberhand gewinnen und durch geschicktes Ausweichen und Feuern den anderen Roboter zerstören. Jeder Kampf dauert mehrere Runden an und am Schluss erfolgt eine Auswertung der Kämpfe. Der bessere Roboter hat schliesslich mehr Punkte gesammelt und wahrscheinlich den Gegner auch öfter zerstört.

Mittlerweile gibt es eine stattliche Anzahl von Ansätzen, dem Roboter das Aufspüren von Gegnern beizubringen. Dabei werden nicht nur die aktuelle Position, sondern auch die Bewegung und die früheren Aktionen berücksichtigt. Aber wie funktioniert diese "Intelligenz? Wie kann man einen eigenen Roboter in die Arena schicken und diesen möglichst clever vor den Schüssen der Gegner ausweichen lassen?

Um den Einstieg in die Programmierung zu erleichtern, habe ich einen kleinen Roboter erstellt, der zwar nicht besonders intelligent, aber dafür leicht zu durchschauen ist. Gerade richtig für den allerersten Schritt in der Welt der Roboterkriege.


Robo Home | SchwarzerPeter | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited April 7, 2005 15:51 EST by SchwarzerPeter (diff)
Search: