Inform: Erste Schritte

Wie man sein erstes Textadventure mit der deutschen Inform-Library zum Laufen bringt, erklärt dieser Artikel.


1. Download der einzelnen Komponenten

Wer ein deutsches Adventure mit Inform programmieren will, benötigt einen Inform-Compiler und die deutsche Library.

Die einfachste Möglichkeit unter Windows ist, das Inform Jump Start Kit herunterzuladen. Es enthält Compiler, Library und das Beispieladventure »Raum«, auf das wir weiter unten noch eingehen werden.

Unter Linux ist die ganze Sache etwas komplizierter: Man lädt zuerst das Inform-Paket für Linux herunter und installiert es (je nach Geschmack als Source-Tarball oder als Version für einen Packet Manager - bitte auch die möglichen Probleme beachten, die auf der Seite des Inform-Paketes beschrieben werden). Die Beispiele des deutschen Jump Start Kit lädt man von dieser Seite herunter.

Die neuesten Versionen der Libary findet man sowohl für Windows als auch für Linux im Archiv. Ein Überspielen der Library ist vor allem in der Linux-Version wichtig, da das Packet veraltete Dateien enthält!

Neben Compiler und Library benötigt man noch die passende Dokumentation. Graham Nelsons Inform Designer's Manual ist das Handbuch für Inform und die (englische) Library. Es ist im PDF-Format und als Buch erhältlich.

Die Besonderheiten der deutschen Library sind auf der Seite von Toni Arnold beschrieben. Es ist sinnvoll, sich diese Beschreibungen auszudrucken und sie während des Programmierens griffbereit zu haben.


2. Der Editor

Inform-Dateien koennen mit jedem ASCII-Texteditor bearbeitet werden. Standard-Editoren wie Notepad und ed sind aber nur bedingt geeignet. Auf dem Shareware- und Freewaremarkt gibt es Hunderte von Editoren. Welchen Editor man benutzt, ist Geschmackssache, aber eine gute Bedienbarkeit (wie die automatische Einrückung von Codeblöcken und gute Such- und Ersetzungs-Funktionen) erleichtert die Arbeit ungemein. Hilfreich ist auch das »Syntax Coloring«, eine farbliche Hervorhebung der verschiedenen Elemente des Codes (Schlüsselwörter, Texte usw.), das das Entwickeln vereinfacht.

Unter Windows empfehle ich UltraEdit, der zwar 30 Dollar kostet, aber sicherlich einer der besten Editoren auf dem Markt ist und Syntax Coloring für Inform bietet (zu finden unter Downloads->Wordfiles/Macros->Inform6; die Online-Hilfe erklärt, wie man ein Wordfile in den Editor integriert, was jedoch sehr einfach ist).

Interessant für Windows-Benutzer ist außerdem der Visual Inform Editor, der die Objekte eines Adventures als Baum darstellen kann und die Bearbeitung der Daten vereinfacht. Die Bedienung ist vielleicht etwas ungewöhnlich, aber die klar strukturierte Eingabe ist gerade im frühen Stadium eines Adventures sehr praktisch, etwa um die Karte einfach erstellen zu können.

Unter Linux bieten vim und emacs Coloring für Inform. Mehr dazu unter dem Punkt »Editors and environments« auf der Seite von Graham Nelson.


3. Das Beispiel raum.inf

Nachdem man sich die wichtigsten Dinge des Inform Designer's Manual angeeignet hat, sollte man einen Blick auf die schon erwähnte Datei raum.inf werfen, um in die Deutsche Library einzusteigen.

Die meisten Dinge entsprechen genau der Anleitung von Graham Nelson, statt Grammar wird allerdings GermanG eingebunden. (Anm.: Unter Linux ist die Groß- und Kleinschreibung wichtig, so dass man eventuell die Include-Anweisungen anpassen muss.)

Wenn man sich das Objekt Knödel einmal näher anschaut, fällt auf, dass zu den normalen Objekt-Properties der Library zwei weitere hinzugekommen sind: Dekl und Adj. Gerade Dekl ist wichtig, es definiert die Deklination eines Objektes. Ohne die Angabe von Dekl gibt der Interpreter beim Spielen Laufzeitfehler aus!

Dekl verweist auf eine der von null bis zehn durchnummerierten Deklinationsklassen, die auf Tonis Seite beschrieben sind. (Da man die Deklinationstabellen oft braucht, ist es praktisch, sie ausgedruckt vorliegen zu haben.)

Ungeheuer wichtig ist auch, dass jedes Objekt ein (und nur ein) Geschlecht bekommt. Dies geschieht über die Attribute male (männlich), female (weiblich) und neuter (sächlich). Objekte, die in der Mehrzahl stehen, bekommen das Attribut pluralname. Der Knödel ist männlich, anders als englische Objekte, die meist sächlich sind. Wird das Geschlecht vergessen, dann kommt wieder ein Laufzeitfehler.

Die Property adj ist eine Liste von Adjektiven, die dem Namen des Objekts in der jeweils korrekt gebeugten Form vorangestellt werden. Mit einer weiteren spezifisch deutschen Property post kann man dem Namen eines Objekts eine Wortgruppe anhängen, wie »des Drachen« in »das Ei des Drachen«.

Weitere Änderungen ergeben sich aus den verschiedenen Fällen im Deutschen bei Pronomen und Artikeln. Genügt im Englischen ein »the«, will das Deutsche genau den Kasus des referenzierten Objekts wissen. Aus diesem Grund werden Funktionen wie the oder this ersetzt durch der, den, dem, des oder dieser, diesen, diesem, dieses. Ein Satz im Englischen der z.B. "You close ", (the) obj, "." heißen würde, wäre im Deutschen "Du schlie@sst ", (den) obj, ".". Wieder gilt: Auf Toni Arnolds Seite können alle Funktionen nachgeschlagen werden, die es gibt.

Früher oder später wird man nicht darum herum kommen, einen Blick in den Code der Library zu werfen. Die Datei germang.h ist hierbei die wichtigste, sie enthält die Verbdefinitionen. Hier kann man nachsehen, welches Verb welche Aktionen nach sich zieht und wo man für sein Adventure etwas ändern muss.


4. Kompilieren

Parameter zum Kompilieren können beim Aufruf oder in einer separaten Steuerdatei uebergeben werden. Für das Beispiel wird die Steuerdatei raum.icl verwendet, die einige Optionen (Switches) enthält. Sehr wichtig hier ist die Angabe +language_name="German", mit der die Sprache für das Spiel angegeben wird. Ohne diese Zeile kann das Spiel nicht korrekt kompiliert werden.

Kompiliert wird mit der Anweisung informbp (raum.icl) oder inform (raum.icl), je nach Typ des Compilers. Für das Beispiel raum.inf sollte alles von Anfang an funktionieren.

Um den Vorgang für Windows-Benutzer zu vereinfachen, enthält das Jump-Start-Kit die Batch-Datei compile.bat, mit der die Spieldatei raum.z5 erstellt wird.

Damit ein eigenes Spiel aufgesetzt werden kann, muss nur der Name in allen diesen Dateien (raum.inf, raum.icl, compile.bat) ausgetauscht werden. Viel Glück!