Next: Schritt für Schritt ins
Up: Adam und Eva: Was
Previous: Software
Subsections
Installation und Probelauf
Was hier folgt, sind nur Vorschläge, an die sich niemand halten muss.
Wie auch immer der Compiler installiert wird, es muss nur sichergestellt
sein, dass er das Verzeichnis mit den Bibliotheksdateien findet und
dass die zu verwendende Sprache auf german
gesetzt ist.8 Ich beschreibe hier, wie man das mit einer systemweiten Voreinstellungsdatei
macht, die Informs eigene Command Language ICL
benutzt.9
In Unix-Systemen installiert man den Compiler in ein
auf dem Pfad liegendes Verzeichnis, typischerweise nach /usr/local/bin.
Dort installiert man auch den Frotz, wenn ihn nicht die verwendete
Distribution (bei SuSE ist er z.B. dabei) schon anderweitig installiert
hat. Die Bibliotheksdateien (einschließlich der hier mitgelieferten
GInfo.h und GInfoG.h)
legt man entweder in ein Verzeichnis unterhalb von /usr/local/share/
oder im eigenen home-Bereich. Letzteres empfiehlt sich vor allem dann,
wenn man selber noch ein wenig daran herumfrickeln will. Wer es bequem
haben will, definiert sich noch ein alias oder ein Skript, mit dem
inform immer als inform '(~/default.icl)'
aufgerufen wird. Dabei muss man - jedenfalls mit der bash - die
Klammern selbst nochmal in Hochkommata setzen. Die Datei kann man
praktikablerweise auch ~/.inform
nennen, von selber aufgerufen wird sie deshalb aber nicht,
In Windows-Systemen wird man inform.exe
und winfrotz.exe10 wohl irgendwo unter c:\Programme\
installieren; anschließend den Editor für die registrierten Dateiendungen
im Dateiexplorer anwerfen und sicherstellen, dass die Endungen .z5
und .z8 für WinFrotz und die Endungen .inf
und .icl für Inform (und natürlich noch
für den auserwählten Editor) registriert sind; aber für .inf
in der Weise, dass zwischen inform und
dem Platzhalter für den Dateinamen eine Voreinstellungsdatei in Klammern
steht, z.B: (c:\Programme\inform\default.icl)
und für .icl in der Weise, dass die Befehlszeile
die so aufgerufene Datei in Klammern enthält (Inform erkennt eine
Kommandodatei nicht an der Endung, sondern daran, dass sie in Klammern
angegeben wird).
Jetzt müssen wir noch default.icl schreiben
(hier eine mögliche Unix-Version; angepasst werden muss auch für Windows
nur der include path, d.h. das Verzeichnis,
in dem die Bibliotheksdateien gesucht werden sollen)
-
- +include_path=/usr/local/share/informlib-de/
+language_name=german
-sixE2d2v5
Wenn das erstellte Spiel dann so weit ist, dass es veröffentlicht
werden kann, muss an die letzte Zeile noch ein ~D~S
angehängt werden, um das Debuggingvokabular aus dem Spiel zu nehmen.
Hallo, Compiler!
Jetzt wird es Zeit, unsere Installation auszuprobieren; von der Unix-Befehlszeile
aus etwa mit
-
- inform '(~/default.icl)' hallo.inf
Wenn bei der Windows-Installation alles passt, müsste es ausreichen,
die Datei hallo.inf im Datei-Explorer doppelzuklicken.
-
- ! hallo.inf
! dies durch den Compiler gedreht, müsste "hallo.z5" erzeugen ...
! ... und z.B. "frotz hallo.z5" gibt uns dann den Begrüßungstext aus.
[ Main;
print "Grüß Gott, ich bin der Compiler und habe soeben laufen
gelernt.^";
];
An diesem Beispielprogramm11 sehen wir schon einige wichtige Dinge:
- Kommentare
- beginnen mit einem Ausrufungszeichen !und gehen bis zum Zeilenende.
- Anweisungen
- müssen mit einem Semikolon ; abgeschlossen
werden.
- Routinen
- bzw. Unterprogramme stehen in eckigen Klammern [
]. Ihr Name ist ihre erste Anweisung. (Das mit der Routine Main
funktioniert wie in C, d.h. sie repräsentiert das Hauptprogramm und
wird nach dem Programmstart automatisch aufgerufen. Da Main
in der Library vordefiniert ist, braucht man sie normalerweise nicht
explizit anzugeben.)
- Strings (Zeichenketten)
- werden in Anführungszeichen "
eingeschlossen. Sie können über das Zeilenende hinaus fortgesetzt
werden; denn erst das Caret (zu deutsch ,,Dächle'') ^
steht für eine Zeilenschaltung im String.
- print
- ist ein Befehl, mit dem
Strings ausgedruckt werden können. (Da print
das Häufigste ist, was man mit einem String in Inform machen kann,
könnte man print an dieser Stelle auch
weglassen, der String würde dennoch ausgegeben. Allerdings hätte der
Befehl dann einen anderen Rückgabewert. Rückgabewerte interessieren
uns aber hier - noch - nicht. )
Das war aber noch kein bisschen interaktiv. Das Programm versteht
ja noch kein Deutsch, dazu brauchen wir die Library.
Library und Grundgerüst
Die Dateien der Library müssen in einer festen Reihenfolge eingebunden
werden; dies führt dazu, dass jedes Spiel gewissermaßen ein Grundgerüst
haben muss:
-
- ! Template-Datei für deutsches Inform: template.inf
Constant Story "[Name bzw. Titel des Spiels]";
Constant Headline "^[Untertitel, Autorenangabe etc.]^";
Constant R_NEU;
! Vor dem Benutzerprogramm muss der erste Teil der Library eingebunden werden:
Include "parser";
Include "verblib";
! Hier beginnt das Spiel
Object Startraum "[Der Raum hat einen Namen]"
with description
"[Und hier steht die Beschreibung des Raums.]",
has light;
! Hier ist Platz für das restliche Programm :-)
! Die Library ruft die Hauptschleife "Main" selbsttätig auf,
! wir müssen nur ein paar Initialisierungen machen:
[ Initialise;
location = Startraum;
"^^^[Hier folgt ein Einleitungstext, der am Spielanfang ausgegeben
wird.]^";
];
! Unterprogramme folgen jetzt:
! Erst nach dem Benutzerprogramm kommt der zweite Teil der Library:
Include "germang";
! Und zum Schluss Ergänzungen zur Grammatik:
Wenn das ohne Fehlermeldung durchläuft12 und die entstehende .z5-Datei sich mit
einem Interpreter öffnen und ''spielen'' lässt, ist auch die Library
richtig installiert und die Arbeit kann beginnen.
Footnotes
- ...8
- Für Mac und andere Systeme als Unix und Windows kann ich zur Installation
über diesen Satz hinaus wenig sagen. Wer hier eine Installationsanleitung
hat, möge sie mir bitte schicken.
- ...9
- Ich selbst bevorzuge den Aufruf über ein Makefile für das jeweilige
Projekt. Wer sich für das Makefile für ,,Eden'' interessiert, kann
gern per Mail nachfragen.
- ... COLOR="#0000ff">winfrotz.exe10
- Vorsicht: Alte Versionen von WinFrotz können mit deutschen Sonderzeichen
nicht korrekt umgehen. Benutzen Sie Frotz 2002 für Windows.
- ... Beispielprogramm11
- Wer nördlich der Mainlinie wohnt, kann statt ,,Grüß Gott"
gerne ,,Hallo" schreiben, dann weiß er aber nicht, ob der
deutsche Zeichensatz richtig funktioniert.
- ... durchläuft12
- Prüfe bei Fehlern zuerst, ob nicht durch die Formatierung das Ende
irgendeiner Kommentarzeile in die nächste Zeile gerutscht ist!
Wird unter Linux eine ältere Version der Bibliotheksdateien verwendet
(Versionsnummer<9), gibt es Probleme mit der Groß/Kleinschreibung
der Dateinamen. Lösung: bei textfire.de die aktuellsten Bibliotheksdateien
herunterladen oder die Dateinamen umbenennen.
Next: Schritt für Schritt ins
Up: Adam und Eva: Was
Previous: Software
Frank Borger
2003-05-02