Zum Inhalt springen

„Robocode“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Keine Bearbeitungszusammenfassung
keine Belege oder Rezeption
 
(20 dazwischenliegende Versionen von 15 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Belege fehlen}}
[[Datei:Robocode logo tanks.png|thumb|right|300px|Startbildschirm]]
{{Infobox Computer- und Videospiel
'''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 [[International Business Machines|IBM]]), zurzeit ist [[Flemming N. Larsen]] Hauptentwickler und nimmt Aktualisierungen und [[Bugfix]]es vor. Weiterentwickelt wird es von der Community.
| Bild = Robocode logo tanks.png
Es wurde entwickelt, um die Programmiersprache [[Java (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 [[Englische Sprache|Englischen]] kurz: Bot) entwickelt werden. Die Entwicklung komplexerer Bots nimmt jedoch wesentlich mehr Zeit in Anspruch.
| Entwickler = Mathew Nelson<br />Flemming N. Larsen
| Publisher = ABFRAGE_WIKIDATA
| Release =
| Plattform = ABFRAGE_WIKIDATA
| Genre = [[Simulation (Computerspielgenre)|Simulation]], [[Digitales Lernspiel|Lernspiel]]
| Spielmodi = ABFRAGE_WIKIDATA
| Sprache =
| USK = ABFRAGE_WIKIDATA
| PEGI = ABFRAGE_WIKIDATA
}}
'''Robocode''' ist ein [[Open Source|Open-Source]]-[[Programmierspiel]], bei dem virtuelle [[Roboter]] auf einem Spielfeld gegeneinander kämpfen. Entwickelt wurde es von [[Mathew Nelson]] (ursprünglich von [[International Business Machines|IBM]]), zurzeit ist [[Flemming N. Larsen]] Hauptentwickler und nimmt Aktualisierungen und [[Bugfix]]es vor. Weiterentwickelt wird es von der Community.

Es wurde entwickelt, um die Programmiersprache [[Java (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 [[Englische Sprache|Englischen]] kurz: Bot) entwickelt werden.


== Das Spiel ==
== 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 [[Abhängige und unabhängige Variable|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 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 virtuellen zweidimensionalen Schlachtfeld antritt. Die Bots können sich bewegen, schießen und bestimmte [[Abhängige und unabhängige Variable|Variablen]] ihrer Umwelt wahrnehmen. 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]].
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.
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. Gewonnen hat, wessen Roboter als letzter auf dem Spielfeld zu verbleibt oder, in Teamspielen, alle Roboter der gegnerischen Teams vernichtet hat.


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 [[Laufzeitumgebung|Umgebung]], d.h. es bestehen keine Sicherheitsrisiken beim Ausführen fremder [[Binärdatei]]en. Lässt man die eigene Software gegen die fremde antreten, lässt sich die [[Effektivität]] der eigenen Software testen.
Das Spiel ist kein [[Online-Spiel]], 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 [[Laufzeitumgebung|Umgebung]], d.&nbsp;h., es bestehen keine Sicherheitsrisiken beim Ausführen fremder [[Binärdatei]]en. Lässt man die eigene Software gegen die fremde antreten, lässt sich die [[Effektivität]] der eigenen Software testen.


== Größenbeschränkungen ==
== 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.
Um Programmierer dazu zu zwingen, den Funktionsumfang ihrer Bots einzuschränken, gibt es verschiedene 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:
Man unterscheidet:
# Megabots ohne Größenbeschränkung
# Megabots ohne Größenbeschränkung
# Minibots mit unter 1500 [[Byte]]s
# Minibots mit weniger als 1500 [[Byte]]s
# Microbots mit weniger als 750 Bytes
# Microbots mit weniger als 750 Bytes
# Nanobots mit weniger als 250 Bytes
# Nanobots mit weniger als 250 Bytes


== Ligen ==
== Ligen ==
Es gibt mehrere Robocode Ligen, die bekanntesten sind:
Es gibt mehrere Robocode-Ligen, die bekanntesten sind:


=== RoboRumble@Home ===
=== RoboRumble@Home ===
RoboRumble@Home ist eine ständige Liga, die drei verschiedene Disziplinen in allen Klassen austrägt.
RoboRumble@Home ist eine ständige Liga, die drei verschiedene Disziplinen in allen Klassen austrägt.
Die Disziplinen sind:
Die Disziplinen sind:
# 1-on-1, wobei nur 2 Roboter auf das Spielfeld gelassen werden
# 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
# melee, eine Massenschlacht mit mehr als zwei Robotern; wer als letzter übrig bleibt, gewinnt
# team, Gruppen treten gegeneinander an.
# 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]]).
In den Modi 1-on-1 und melee tritt jeder Roboter mindestens einmal gegen jeden anderen an. Im Team-Modus scheiden Teams nach einer Niederlage aus ([[K.-o.-System]]).


=== Robocode Little League ===
=== Robocode Little League ===
Die Robocode Little Leage war spezialisiert auf größenbeschränkte Bots. Die RLL ist momentan nicht mehr aktiv.
Die Robocode Little League war spezialisiert auf größenbeschränkte Bots. Die RLL ist momentan nicht mehr aktiv.


== Einige wichtige Bots ==
== Rezeption ==
{{lückenhaft}}
Die besten Bots in allen Klassen und Disziplinen (Stand Februar 2006)

=== RR@H Champions ===
{| border=1 cellspacing=0 cellpadding=0
|-
! 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 || Spinter || 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 [[Debugging|Debug]]-Umgebung.


== Weblinks ==
== Weblinks ==
{{Commons|Robocode}}
{{Commons|Robocode}}
* {{Wikiversity|Projekt:Robocode|Projekt:Robocode}}
{{Wikiversity|Projekt:Robocode|Projekt:Robocode}}
* [http://robocode.sourceforge.net/ Offizielle Website] (englisch)
* [http://robocode.sourceforge.net/ Offizielle Website] (englisch)
* [http://www.robocode.de/ www.robocode.de]
* [http://www.robowiki.net www.robowiki.net]
* [http://www.robowiki.net www.robowiki.net] – guter Einstiegspunkt für Anfänger
* [http://jgap.sourceforge.net jgap.sourceforge.net] – Robocode automatisch generieren mit Hilfe Genetischer Programmierung
* [http://jgap.sf.net jgap.sf.net] – Robocode automatisch generieren mit Hilfe Genetischer Programmierung
* [http://www.marvinsarena.com/ Marvin’s Arena] – Robocode ähnliches C# Spiel



[[Kategorie:Computerlernspiel]]
[[Kategorie:Computerlernspiel]]
Zeile 93: Zeile 61:
[[Kategorie:Freies Computerspiel]]
[[Kategorie:Freies Computerspiel]]
[[Kategorie:Freie Lern-Software]]
[[Kategorie:Freie Lern-Software]]

[[bg:Robocode]]
[[ca:Robocode]]
[[cs:Robocode]]
[[en:Robocode]]
[[fr:Robocode]]
[[it:Robocode]]
[[ja:Robocode]]
[[pl:Robocode]]
[[pt:Robocode]]

Aktuelle Version vom 6. August 2023, 16:58 Uhr

Robocode
Entwickler Mathew Nelson
Flemming N. Larsen
Plattform Java Virtual Machine
Genre Simulation, Lernspiel

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 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 virtuellen zweidimensionalen Schlachtfeld antritt. Die Bots können sich bewegen, schießen und bestimmte Variablen ihrer Umwelt wahrnehmen. 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. Gewonnen hat, wessen Roboter als letzter auf dem Spielfeld zu verbleibt oder, in Teamspielen, alle Roboter der gegnerischen Teams vernichtet hat.

Das Spiel ist kein Online-Spiel, 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

[Bearbeiten | Quelltext bearbeiten]

Um Programmierer dazu zu zwingen, den Funktionsumfang ihrer Bots einzuschränken, gibt es verschiedene 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:

  1. Megabots ohne Größenbeschränkung
  2. Minibots mit weniger als 1500 Bytes
  3. Microbots mit weniger als 750 Bytes
  4. Nanobots mit weniger als 250 Bytes

Es gibt mehrere Robocode-Ligen, die bekanntesten sind:

RoboRumble@Home

[Bearbeiten | Quelltext bearbeiten]

RoboRumble@Home ist eine ständige Liga, die drei verschiedene Disziplinen in allen Klassen austrägt. Die Disziplinen sind:

  1. 1-on-1, wobei nur 2 Roboter auf das Spielfeld gelassen werden
  2. melee, eine Massenschlacht mit mehr als zwei Robotern; wer als letzter übrig bleibt, gewinnt
  3. team, Gruppen treten gegeneinander an.

In den Modi 1-on-1 und melee tritt jeder Roboter mindestens einmal gegen jeden anderen an. Im Team-Modus scheiden Teams nach einer Niederlage aus (K.-o.-System).

Robocode Little League

[Bearbeiten | Quelltext bearbeiten]

Die Robocode Little League war spezialisiert auf größenbeschränkte Bots. Die RLL ist momentan nicht mehr aktiv.

Commons: Robocode – Album mit Bildern, Videos und Audiodateien
Wikiversity: Projekt:Robocode – Kursmaterialien