- Robocode
-
Robocode ist ein Open Source-Programmierspiel, bei dem virtuelle Roboter auf einem Spielfeld gegeneinander kämpfen. Entwickelt wurde es von Mathew Nelson (ursprünglich von IBM), zurzeit ist Flemming N. Larsen Hauptentwickler und nimmt Aktualisierungen und Bugfixes vor. Weiterentwickelt wird es von der Community. Es wurde entwickelt, um die Programmiersprache Java im spielerischen Umgang erlernen zu können. Aufgrund der einfachen Bedienung und dank der mitgelieferten Beispiele kann schon in wenigen Minuten ein simpler virtueller Roboter (im Englischen kurz: Bot) entwickelt werden. Die Entwicklung komplexerer Bots nimmt jedoch wesentlich mehr Zeit in Anspruch.
Inhaltsverzeichnis
Das Spiel
Die Spieler schreiben die Software für einen virtuellen Roboter (einen Panzer), welcher dann gegen andere Bots (von anderen Mitspielern und daher mit anderer Software) auf einem ebenfalls virtuellen 2-dimensionalen Schlachtfeld antreten. Die Bots können sich bewegen, schießen und bestimmte Variablen ihrer Umwelt wahrnehmen. Obwohl die Grundidee hinter diesem Spiel sehr einfach ist, ist es sehr schwierig eine gute Strategie für einen Sieg zu entwickeln. Die besten Bots haben deshalb auch hunderte Zeilen Softwarecode und verfolgen bei ihrer Siegstrategie so unterschiedliche Ansätze wie statistische Analysen, ereignisbasierte Routinen oder ein künstliches neuronales Netz.
Bei dem Spiel geht es darum, den eigenen Panzer so zu programmieren, dass er so wenig wie möglich getroffen wird und selbst so oft wie möglich die Panzer der anderen Spieler trifft. Gewinnbedingung ist, als letzter Roboter auf dem Spielfeld zu verbleiben oder in Teamspielen, alle Roboter der gegnerischen Teams vernichtet zu haben.
Das Spiel ist kein Onlinespiel, es ist also nicht möglich, Partien über das Internet auszutragen. Man kann aber eine Vielzahl an Steuerprogrammen (die teilweise sogar als Open Source vorliegen) im Internet finden, welche man dann auf seiner lokalen Maschine ausführen kann. Die Steuersoftware läuft in einer abgeschirmten Umgebung, d.h. es bestehen keine Sicherheitsrisiken beim Ausführen fremder Binärdateien. Lässt man die eigene Software gegen die fremde antreten, lässt sich die Effektivität der eigenen Software testen.
Größenbeschränkungen
Um Programmierer dazu zu zwingen, den Funktionsumfang ihrer Bots einzuschränken, gibt es verschieden Roboterklassen, die sich durch unterschiedliche Größen der Binärdateien auszeichnen. Auf diese Weise bleibt es auch Anfängern offen, sich mit etablierten Robocode-Spielern zu messen.
Man unterscheidet:
- Megabots ohne Größenbeschränkung
- Minibots mit unter 1500 Bytes
- Microbots mit weniger als 750 Bytes
- Nanobots mit weniger als 250 Bytes
Ligen
Es gibt mehrere Robocode Ligen, die bekanntesten sind:
RoboRumble@Home
RoboRumble@Home ist eine ständige Liga, die drei verschiedene Disziplinen in allen Klassen austrägt. Die Disziplinen sind:
- 1-on-1, wobei nur 2 Roboter auf das Spielfeld gelassen werden
- melee, eine Massenschlacht mit mehr als zwei Robotern; wer als letzter übrig bleibt, gewinnt
- team, Gruppen treten gegeneinander an.
In den Modi 1-on-1 und melee tritt jeder Roboter mindestens ein mal gegen jeden anderen an. Im Team-Modus scheiden Teams nach einer Niederlage aus (KO-System).
Robocode Little League
Die Robocode Little Leage war spezialisiert auf größenbeschränkte Bots. Die RLL ist momentan nicht mehr aktiv.
Einige wichtige Bots
Die besten Bots in allen Klassen und Disziplinen (Stand Februar 2006)
RR@H Champions
Klasse Disziplin Bot Kommentar Megabots 1-on-1 Dookious Hochspezialisierter 1-on-1 Bot. Seit langem ungeschlagen und Open-Source. melee Aleph teams Aleph Eine spezialisierte Team-Version von Aleph Gesamt Shadow Ein hervorragender Allrounder Minibots 1-on-1 Pugilist Open-Source-Bot. Über ein Jahr lang Tabellenerster. melee GlowBlowMelee Gesamt - Durch die Größenbeschränkung sind die Bots sehr spezialisiert. Microbots 1-on-1 Thorn Open Source melee Shiz Open Source Gesamt - Durch die Größenbeschränkung sind die Bots sehr spezialisiert. Nanobots 1-on-1 Splinter Open Source melee Lib Open Source Gesamt DoctorBob Für seine Klasse schlägt sich dieser Bot recht gut in allen Disziplinen. Besondere Bots
Der lange Zeit als unschlagbar geltende SandboxDT ist noch immer ein starker Gegner und definiert noch heute die Trennlinie zwischen Spreu und Weizen.
Technisch besonders interessant sind Shadow, der das sogenannte 'WaveSurfing' einführte und FloodMini, ein Open-Source Minibot, der die StatisticalTargeting-Technologie etablierte.
In den letzten Jahren gilt CassiusClay, ebenfalls Open Source, als einer der technisch ausgefeiltesten Bots.
Phoenix, die aktuelle Nummer 2 der RR@H, zeigte erstmals eine grafische Debug-Umgebung.
Weblinks
Commons: Robocode – Album mit Bildern und/oder Videos und Audiodateien-
Wikiversity: Projekt:Robocode – Kursmaterialien, Forschungsprojekte und wissenschaftlicher Austausch
- Offizielle Website (englisch)
- www.robocode.de
- www.robowiki.net – guter Einstiegspunkt für Anfänger
- jgap.sf.net – Robocode automatisch generieren mit Hilfe Genetischer Programmierung
- Marvin’s Arena – Robocode ähnliches C# Spiel
Kategorien:- Computerlernspiel
- Programmierspiel
- Freies Computerspiel
- Freie Lern-Software
Wikimedia Foundation.