Let Floyd launch the spacetruck? Please? Floyd has not crashed a truck in over two weeks!
-- Steve Meretzky, Stationfall
Floyd ist eine plattformunabhängige Sprache für die Entwicklung von Adventurespielen. Mit Adventurespielen ist dabei die klassische Variante der Textadventures gemeint, die vom Spieler durch Eingabe einfacher Kommandos und Sätze gesteuert werden. Diese Spiele sind kommerziell seit gut zwanzig Jahren ausgestorben. Im Netz findet sich aber immer noch eine große, meist englischsprachige Anhängerschaft, die viele neue Spiele entwickelt und spielt.
Wie alle anderen Spiele lassen sich auch Adventures mit einer normalen Programmiersprache wie C oder Java schreiben. Dabei müßte aber erst viel Code geschrieben werden, um die in jedem Adventure vorkommenden Aufgaben wie die Verarbeitung der Spielereingabe, die Simulation einer Spielwelt oder das Speichern und Laden von Spielständen zu erledigen.
Floyd nimmt dem Autor solche Routinearbeit ab und hilft ihm, sich auf die Umsetzung der Handlung zu konzentrieren. Floyd kann mit Spielereingaben umgehen, in denen mehrere Objekte oder Wörter wie "alle" und "außer" vorkommen. Eingaben können korrigiert oder rückgängig gemacht werden. In der Spielwelt können Räume, Verbindungen, Nichtspielercharaktere, Behälter, Fahrzeuge und viele weitere Objekte vorkommen, deren Verhalten sich leicht bestimmen läßt. Die Ein- und Ausgabe unterstützt Floyd mit Skripten, Menüs, Textfenstern und Grafiken.
Floyd verfügt über eine Standardbibliothek, in der wichtige Objekte der Spielwelt und einige nützliche Funktionen vordefiniert sind. Die Standardbibliothek besteht aus mehreren Quelltextdateien und läßt sich anpassen und erweitern.
2010 wurde im Rahmen des Grand Prix 2010 eine neue Version von Floyd veröffentlicht. Sie stellt eine vollständige Neuimplementierung des bisher nur für Windows verfügbaren Interpreters dar und läuft auf allen Java-fähigen Systemen.
Den Interpreter gibt es als plattformunabhängige Jar-Datei (4,2 MB), die auf jedem Java-fähigen PC oder Mac ausgeführt werden kann. Alternativ gibt es auch Programmdateien für Windows (3,9 MB) und Mac (3,8 MB).
Der Floyd-Interpreter setzt mindestens Java 5 voraus (Java 1.5.0). Ob und in welcher Version Java auf dem System installiert ist, kann auf der Konsole mit
java -version
festgestellt werden. Die aktuelle Java Version kann unter java.com heruntergeladen werden.
Unter Windows und Mac OS läßt sich der Interpreter mit einem Doppelklick starten. Alternativ kann die Jar-Datei auch auf der Konsole mit
java -jar floyd-3.4.jar
aufgerufen werden.
Wer selber mit Floyd programmieren möchte, braucht die Dateien der Standardbibliothek (16 KB). In Eclipse erleichtert dieses Plugin von Raimund Seisenberger die Arbeit mit Floyd-Quelltexten (64 KB). Für die Texteditoren Proton und Textpad gibt es auch zwei Syntaxdateien, die eine Syntaxhervorhebung ermöglichen (4 KB).
Bei Verwendung des Eclipse-Plugins ist zu beachten, daß im Eclipse-Ordner noch eine Datei floyd.properties mit der Eigenschaft stdlib.path und dem Pfad zu den Bibliotheksdateien angelegt werden muß. Der Inhalt kann z. B. so aussehen:
stdlib.path = C:\\Spiele\\floyd\\
Der Quelltext des Interpreters liegt in einem CVS Repo bei Sourceforge, das anonym gelesen werden kann:
cvs -z3 -d:pserver:anonymous@javafloyd.cvs.sourceforge.net:/cvsroot/javafloyd checkout -P CVSROOT
Das neue Spiel Ein Fall in Jashpur und zwei ältere Vertreter des Science-Fiction-Genres, Der Nebelmond und Download, gibt es als Bundle (203 KB).
Interessierte können hier auch in die Quelltexte der bisherigen Spiele schauen (83 KB). Zusätzlich enthält die Zip-Datei noch die deutsche Floyd-Version des Cloak of Darkness. Dabei handelt es sich um ein simples Mini-Spiel, das im englischen Original dem Vergleich verschiedener Sprachen für Adventurespiele dient. Es wird auch in der Dokumentation näher erläutert.
Diese Spiele können auch direkt gestartet werden (vorausgesetzt, auf Ihrem Rechner ist Java installiert): Der Nebelmond, Download, Ein Fall in JashpurDie Dokumentation gibt es als PDF-Datei (400 KB). Sie erklärt die Programmierung mit Floyd vom einfachsten Hallo-Welt Programm bis zu den Details des Parsers.
Neben der Dokumentation der Sprache gibt es auch noch eine kurze Hilfe für den Interpreter (66 KB).
15.05.2018:
16.07.2017 / V3.4:
29.04.2012 / V3.3a:
02.04.2012 / V3.3:
22.01.2012 / V3.2:
27.11.2011 / V3.1.2:
10.07.2011 / V3.1.1:
Das Update behebt einen Bug in timeout. Die Dokumentation wurde in Kapitel 6.2 aktualisiert.
06.07.2011 / V3.1.0:
05.06.2011 / V3.0.4a:
27.02.2011 / V3.0.4:
24.10.2010 / V3.0.3:
Verbessert wurden die Behandlung von Behältern und Ablagen, sowie die Reaktion auf die Verben betreten, durchsuchen,
schauen, liegen, sitzen, essen und trinken. Behoben wurde auch ein Fehler in Download, der die Erkennung einiger
Objekte verhinderte. Betroffen sind alle Dateien auf dieser Seite.
Fragen, Kommentare und Anregungen nehmen die Autoren Oliver Berse und Raimund Seisenberger gerne unter mail@oliver-berse.de entgegen. Fragen können auch im IF-Forum gestellt werden.
Infos über deutschsprachige Spiele und ein Online-Magazin finden sich bei ifwizz. Im englischen Sprachraum gelten Textadventures auch als Interactive Fiction. Damit beschäftigen sich das SPAG Magazin, die Brass Lantern und das Blog von Emily Short.