Inform 6 unter Ubuntu Linux installieren
Inform bezeichnet sowohl eine Programmiersprache als auch den dazugehörigen Übersetzer. Verwendungszweck ist das Schreiben von Interactive-Fiction und Textadventures. Die Stand 2015 aktuelle Sprach-/Compiler-Version ist Inform 7. Dieser Artikel bezieht sich auf Inform 6. Zwischen beiden Versionen besteht ein großer Unterschied in der Form des Quellcodes.
Umfang des Artikels ist die Installation einer Entwicklungsumgebung unter Ubuntu 15.10 und das Einbinden einer Bibliothek zum Schreiben deutschsprachiger Interactive-Fiction. Der Artikel dient nicht als Tutorial zum Erlernen der Sprache Inform oder wie man Interactive-Fiction und Textadventures schreibt.
Inform-Compiler
Der Compiler zum Übersetzen von Inform-Quellcode nach Z-Code wird unter Ubuntu 15.10 mit folgendem Befehl installiert:
sudo apt-get install inform
Dies installiert den Compiler in der Version 6.31. Außerdem wird bereits der Interpreter XZip zum Ausführen von Z-Code über das Paket xzip
mitinstalliert.
Möglicherweise erhält man beim Ausführen von XZip folgende Fehlermeldung:
xzip: fatal error: unable to load font <-adobe-times-medium-r-normal--14-*-*-*-*-*-iso8859-1>
Der Fehler lässt sich durch das nachinstallieren des fehlenden Fonts beheben:
sudo apt-get install gsfonts-x11
Dokumentation
Der Leitfaden für Einsteiger “The Inform Beginner’s Guide” und das Entwicklerhandbuch “The Inform Designer’s Manual” können über Ubuntu installiert werden:
sudo apt-get install inform-docs
Die Dokumentation befindet sich hiernach unter /usr/share/doc/inform-docs
.
Major-Mode für Emacs
Für Emacs gibt es einen Major-Mode zum Schreiben von Inform-Code. Dieser trägt den sprechenden Namen inform-mode und kann auch als Ubuntu-Paket installiert werden:
sudo apt-get install inform-mode
Die Dokumentation enthält Angaben zur Benutzung und Konfiguration des Major-Modes. Der inform-mode wird standardmäßig zusammen mit dem Minor-Mode auto-fill gestartet. Dadurch werden beim Schreiben automatisch Zeilenumbrüche eingefügt. Wen das stört, der kann die folgende Zeile in die Datei ~/.emacs
aufnehmen, um den Minor-Mode zu deaktivieren:
Interpreter
Es gibt verschiedene Interpreter, die sich allesamt über Ubuntu installieren lassen: XZip, fizmo, Jzip, Gargoyle, Frotz. Persönlich bevorzuge ich fizmo, da dieser textbasiert ist und eine gute Unterstützung von Umlauten bietet.
Die auf ncurses basierende Fassung von fizmo lässt sich wie folgt installieren:
sudo apt-get install fizmo-ncursesw
Für den Aufruf in der Konsole bietet sich ein Alias in der ~/.bashrc
an:
Mit inform-mode kann man einen Interpreter aus Emacs heraus über die Tastenkombination C-c C-c
starten. Standardmäßig ruft inform-mode hierzu Frotz auf. Um stattdessen fizmo zu verwenden, erweitert man die Datei ~/.emacs
Datei:
Achtung: Hierbei ist darauf zu achten, den tatsächlichen Programmnamen und keinen Alias anzugeben.
Hello World
Um zu verifizieren, dass Inform inklusive Interpreter und Emacs-Major-Mode bis zu diesem Punkt richtig eingerichtet ist, legt man – vorzugsweise mit Emacs – eine Datei namens Hello.inf
an mit folgendem Inhalt:
[ Main;
print "Hello World!^";
];
Danach führt man den Inform-Compiler aus und startet den Z-Code-Interpreter fizmo:
inform Hello.inf
fizmo Hello.z5
Ausgabe:
Hello World!
[Press any key to quit.]
Ein komplexeres Hello-World-Programm, dass die Form eines Textadventures hat befindet sich hier.
Und nun auf Deutsch
Persönlich nutze ich die inoffizielle deutsche Inform-Bibliothek deform von Martin Oehm und habe damit gute Erfahrungen gemacht.
Die Installation ist recht einfach: Man lädt sich das ZIP-Archiv von der deform-Website herunter und entpackt es in ein Verzeichnis der eigenen Wahl. Ich habe es nach ~/lib/deform
entpackt.
Das Verzeichnis mit den entpackten Dateien muss zur Nutzung dem Übersetzer mitgeteilt werden. Dies kann beim Aufruf des Compilers über die Kommandozeile erfolgen:
inform +include_path=/home/username/lib/deform HalloWelt.inf
Wem das zu lang ist, kann sich hierfür in der Datei ~/.bashrc
einen Alias definieren:
alias deform="inform +include_path=/home/username/lib/deform"
Alternativ fügt man zu Beginn der zu übersetzenden Inform-Datei folgende Zeile hinzu:
!% +include_path=/home/username/lib/deform
Achtung: Der Inform-Compiler hat Schwierigkeiten damit, das Kürzel für das eigene Benutzerverzeichnis ~
richtig aufzulösen. Der Pfad ist daher absolut über /home/username
anzugeben. Wobei username
durch den eigenen Benutzernamen zu ersetzen ist.
Wenn mehrere Benutzer an einer Quellcode-Datei arbeiten und die Bibliothek in der Infrom-Datei selbst eingebunden wird, kann es sinnvoll sein, deform zentral abzulegen, z. B. unter /usr/local/lib
:
sudo mkdir -p /usr/local/lib/inform/deform
sudo unzip deform.zip -d /usr/local/lib/inform/deform
sudo chmod o-w /usr/local/lib/inform/deform/*
Das Pendant auf deutsch zu HelloWorld befindet sich hier.
Probleme mit Umlauten
Beim Schreiben eines deutschsprachigen Textadventures, kann es wegen der Umlaute leicht zu Compile-Abbrüchen kommen. Eine entsprechende Fehlermeldung könnte dann besipielsweise so aussehen:
Inform 6.31 for Linux (10th Feb 2006)
line 6: Error: Character can only be used if declared in advance as part of 'Zcharacter table': (ISO Latin1) $a4, i.e., '�'
> ^von Hennes Märtins.^";
Compiled with 1 error (no output)
Diese Meldung deutet darauf hin, dass die Quelldatei nicht mit dem richtigen Encoding gespeichert wurde. Inform geht im Standardfall von ISO 8859-1 (Latin-1) aus. UTF-8 ist daher zum Schreiben von Inform-Code ungeeignet. Wenn man mit Emacs arbeitet, kann man das Encoding leicht durch die Eingabe von C-x RET f latin-1
ändern.