next up previous contents index
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 up previous contents index
Next: Schritt für Schritt ins Up: Adam und Eva: Was Previous: Software
Frank Borger
2003-05-02