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…

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!
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:
./eclipse -vm /path/to/oracle/java/bin/java
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:
Help → Install New Software...Work with auf den Button Add klicken, um eine neue Update-Site hinzuzufügen.Scala IDE eingeben und in das Feld Location die zuvor kopierte URL der Update-Site einfügen und mit OK bestätigen.Next >… und dann nochmal auf Next >.I accept… und klickt Finish.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.OK geschlossen werden.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.
Package Explorer in Eclipse rechtsklicken. Dann New → Other...Scala Wizards den Eintrag Scala-Project auswählen und mit Next > bestätigen.Project Name beispielsweise MyBot eingeben und mit Finish abschließen.This kind of project is associated with the Scala perspective [...] mit Yes bestätigen.Dann die Klasse für den Bot erstellen:
Scala Class auswählen.MyBot eingeben und mit Finish abschließen.class ControlFunctionFactory {
def create = new ControlFunction().respond _
}
class ControlFunction {
def respond(input: String) = "Status(text=Hello World)"
}
Um nun euren Bot nach Änderungen zu exportieren und so im Spiel zu aktualisieren, müsst ihr ein JAR-File erstellen. Das funktioniert so:
Export...Java den Eintrag JAR file wählen und mit Next > bestätigen.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.Finish abschließen.Falls das Spiel schon läuft, drückt im Spiel die Taste R, um die Bots neu zu laden.
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:
Run → Debug ConfigurationsRemote Java Application und dann NewPort 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.
3 Kommentare zu Scalatron: Eclipse für den Bot-Bau einrichten
Pingback: Logbuch: 31. Juli 2012 « Schichtstufen
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.
4. September 2012, 20:05 Uhr.
Freut mich, dass es dir geholfen hat.