Scalatron: Eclipse für den Bot-Bau einrichten

Veröffentlicht am

Nachdem ich kürzlich schon einen einleitenden Artikel zu Scalatron gepostet habe, möchte ich nun noch einen zweiten Artikel zum Thema hinterherschieben.

Es geht um die Einrichtung einer Bot-Entwicklungsumgebung mit Eclipse. Die offizielle Doku ist nur in englischer Sprache verfügbar und beschränkt sich zudem auf die IDE IntelliJ IDEA.

Das Setup ist natürlich kein Hexenwerk, und wer sich mit Eclipse und Java gut auskennt, wird das auch ohne diese Schritt-für-Schritt Anleitung hinbekommen. Scalatron wendet sich ja aber genauso auch an Einsteiger…

Warum überhaupt eine IDE?

Der Eclipse-Splash

Scalatron bringt ja zunächst einmal eigentlich alles mit, was man braucht, um direkt loszulegen: natürlich das Spiel an sich, aber auch eine Benutzerverwaltung und eine Browser-Entwicklungsumgebung. Mit dieser kann jeder eingeloggte Benutzer sofort anfangen, einen Bot zu programmieren. Warum also eine IDE?

Die Frage ist schnell beantwortet – wer schon die ersten Versuche unternommen hat, einen Bot zu schreiben, wird das vermutlich auch schon erkannt haben: die Möglichkeiten, den eigenen Bot mit der Sandbox-Funktion zu testen, sind doch recht eingeschränkt. Programmierer sind es gewohnt, Programme zum Testen an bestimmten Punkten zu unterbrechen (sog. Breakpoints) und die Ausführung bei Bedarf Schritt für Schritt fortzusetzen – und während dessen den Zustand (also die Werte der Variablen) zu beobachten. Das geht mit der Sandbox nicht.

Wir brauchen also ein „richtiges“ Programm zum Entwickeln – eine IDE. Die bietet außerdem i.N. verschiedene Eingabehilfen usw. Also: her damit!

Eclipse installieren

Beim Erststart: Welcome-Fenster in Eclipse

Mit diesem Abschnitt sind wir recht schnell fertig. Denn: Eclipse muss gar nicht installiert werden. Es reicht, die gewünschte Version von www.eclipse.org herunterzuladen, und das heruntergeladene .tar.gz-Archiv zu entpacken. Im entpackten Verzeichnis (namens eclipse), findet man dann die auszuführende Binary – ebenfalls mit dem Namen eclipse. Schließt das Welcome-Fenster, das euch begrüßt, um die eigentliche Oberfläche zu sehen.

Zwei Dinge sind allerdings zu beachten:

  • Zum Zeitpunkt der Erstellung dieses Artikels heißt/hieß die aktuelle Eclipse-Version Juno. Für diese gibt/gab es aber das Scala-Plugin noch nicht. Greift also auf die vorige Version Indigo zurück. Wollt ihr eine aktuellere Version benutzen, seht zunächst auf der Internetseite des Scala-Plugins nach, ob es für die jeweilige Eclipse-Version verfügbar ist.
  • Ich habe schon Probleme gehabt, gerade im Zusammenhang mit dem Scala-Plugin – solange ich OpenJDK verwendet habe. Solltet ihr also unverständliche Fehler bekommen, ladet euch doch das JDK von Oracle herunter und startet Eclipse dann damit (den Pfad müsst ihr auf euer System anpassen):
    ./eclipse -vm /path/to/oracle/java/bin/java

Das Eclipse-Plugin „Scala IDE“ installieren

Installation des Scala-Plugins

Das Plugin bekommt ihr über eine sog. Update-Site. Schaut einfach auf der Download-Seite von www.scala-ide.org, der Webseite des Plugins. Dort findet ihr für jedes Release die Informationen, für welche Eclipse-Versionen es verwendbar ist – und außerdem pro Release einen grünen Kasten, in dem die Adresse der jeweiligen Update-Site genannt ist. Diese Update-Site-Adresse kopiert ihr euch nun in die Zwischenablage.

Dann in Eclipse folgendes tun:

  • HelpInstall New Software...
  • Neben dem Eingabefeld Work with auf den Button Add klicken, um eine neue Update-Site hinzuzufügen.
  • Als Name Scala IDE eingeben und in das Feld Location die zuvor kopierte URL der Update-Site einfügen und mit OK bestätigen.
  • Nun prüft Eclipse, was ihr von dieser Update-Site installieren könnt. Sobald die Liste aufgebaut ist, hakt alles an und klickt auf Next >… und dann nochmal auf Next >.
  • Ihr werdet dann noch einmal gefragt, ob euch die angezeigten Lizenzbedingungen gefallen. Sollte das der Fall sein (was für den weiteren Verlauf ganz gut wäre), wählt die Option I accept… und klickt Finish.
  • Das Plugin wird nun installiert.

Sobald das Plugin heruntergeladen und installiert ist, könnt ihr Eclipse mit Klick auf den Button Restart Now neu starten und so das Plugin aktivieren.

Es erscheinen dann drei Dialoge:

  • Upgrade of Scala plugin detected [...]. Hier mit Yes antworten, um den Dialog zur Überprüfung der Scala-Plugin-Einstellungen zu öffnen.
  • Der Einstellungs-Dialog kann dann einfach wieder mit OK geschlossen werden.
  • Bei JDT weaving is currently disabled [...] mit OK antworten, um die JDT-Weaving-Funktion zu aktivieren.

Eclipse wird nun noch einmal durchgestartet und ist dann bereit für Scala-Projekte.

Bot-Projekt einrichten

  • Im Fensterbereich mit dem Titel Package Explorer in Eclipse rechtsklicken. Dann NewOther...
  • Unterhalb von Scala Wizards den Eintrag Scala-Project auswählen und mit Next > bestätigen.
  • Als Project Name beispielsweise MyBot eingeben und mit Finish abschließen.
  • Die Frage This kind of project is associated with the Scala perspective [...] mit Yes bestätigen.

Dann die Klasse für den Bot erstellen:

  • Wieder Rechtsklick im Package Explorer und diesmal Scala Class auswählen.
  • Als Name beispielsweise MyBot eingeben und mit Finish abschließen.
  • Den Inhalt der erzeugten Klasse (wird nach dem Erstellen im Editor angezeigt) überschreiben wir nun zunächst mit dem Code für den ersten Beispiel-Bot aus dem Scalatron-Tutorial:
    class ControlFunctionFactory {
        def create = new ControlFunction().respond _
    }
    
    class ControlFunction {
        def respond(input: String) = "Status(text=Hello World)"
    }
  • Mit StrgS wird gespeichert.

Den Bot ins Spiel exportieren

Um nun euren Bot nach Änderungen zu exportieren und so im Spiel zu aktualisieren, müsst ihr ein JAR-File erstellen. Das funktioniert so:

  • Rechtsklick im Package Explorer, dann Export...
  • Unterhalb von Java den Eintrag JAR file wählen und mit Next > bestätigen.
  • Dann im Eingabefeld JAR file den Pfad für die JAR-Datei eingeben, die erzeugt werden soll. Die Datei muss ScalatronBot.jar heißen und im Verzeichnis bots/meinuser (den eigenen Usernamen benutzen) unterhalb des Scalatron-Verzeichnisses erstellt werden.
  • Dann mit Finish abschließen.

Falls das Spiel schon läuft, drückt im Spiel die Taste R, um die Bots neu zu laden.

Remote Debugging

Remote-Debuggen des Bots

Um den Bot debuggen zu können, wird die Remote-Debugging-Funktionalität von Java genutzt. Das hat den Charme, dass dabei Spiel und Entwicklungsumgebung auf unterschiedlichen Rechnern laufen können. Es heißt aber auch, dass das ganze Spiel pausiert, wenn ihr in eurem Bot einen Breakpoint setzt und damit das Programm anhaltet.

Das Spiel muss dazu zunächst mit speziellen VM-Optionen gestartet werden, damit Java Debugger-Verbindungen überhaupt annimmt:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar Scalatron.jar

Dann kann in Eclipse eine Start-Konfiguration angelegt werden. Dazu folgendermaßen vorgehen:

  • Im Menü auf RunDebug Configurations
  • Dort Rechtsklick auf Remote Java Application und dann New
  • Dann nur noch den Port auf 5005 abändern und das Debuggen mit Klick auf Debug starten.

An dieser Stelle möchte ich nun aber mein Tutorial beenden. Zu beschreiben, wie das Debuggen selbst funktioniert, würde den Rahmen sprengen. Hier muss ich leider auf die englischsprachige Eclipse-Hilfe verweisen.


Dieser Artikel wurde in der/den Kategorie(n) Planet-U, Programmierung und Skripting veröffentlicht und mit den Tags , , , versehen.

3 Kommentare zu Scalatron: Eclipse für den Bot-Bau einrichten

  1. Pingback: Logbuch: 31. Juli 2012 « Schichtstufen

  2. Kommentar von zerology
    4. September 2012, 19:52 Uhr.

    Und wieder herzlichen Dank.
    Was Du mir inzwischen für Zeit gespart hast :-)
    (Grade beim Bau von „Infrastruktur“ kann man sich ja beliebig verfransen ..)

    Liebe Grüße, z.

    • Kommentar von Gerald
      4. September 2012, 20:05 Uhr.

      Freut mich, dass es dir geholfen hat. :)

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>