Inform, die Adventure-Sprache

Adventures zu programmieren, ist eine mühsame Angelegenheit - alleine der Parser verschlingt Monate. Mit der Inform-Adventuresprache kann man vom Know-How der besten Parser-Programmierer profitieren.

Die Rede ist von Infocom, jener legendären Firma, die während der achtziger Jahre mit verschiedenen Adventures begeisterte, deren Themen weitgestreut waren: von Horror ("Lurking Horror") über Romantik ("Plundered Hearts") bis zu abgedrehter Science-Fiction ("Hitchhiker's Guide to the Galaxy") war alles vertreten. Die Qualität reichte dabei durchaus an gehobenere (englische) Literatur heran, sieht man einmal von den Spätwerken Infocoms ab. Gerade die Kunst dieser Adventures, nur mit Worten und ohne Grafik Spannung zu erzeugen, begeistert heute noch viele. Der verwendete Computertyp ist dabei fast völlig egal, denn die alten Adventures laufen vom Acorn BBC über den C64, dem Atari ST und Unix-Workstations auf allen Computern. Selbst Computer, die sich nie richtig durchsetzen konnten, wie Thomson TO7/70 und MSX können die Adventures ablaufen lassen. Der Grund für die enorme Kompatibilität liegt in der Konzeption der Adventure-Sprache Inform, die allen Infocom-Adventures zugrunde liegt.

Interpreter

Der Infocom-Interpreter ist der einzige wirklich systemabhängige Teil und ist in etwa mit dem Java-Interpreter vergleichbar. Ohne diesen Interpreter läuft nichts, doch da die Quelltexte mittlerweile freigegeben wurden und sogar eine Java-Version schon in Arbeit ist, wird dies für den interessierten Programmierer keine Einschränkung sein - außerdem existiert für die meisten Systeme bereits ein Interpreter (Tabelle 1). Inform-Programme haben die Endung z1 bis z7, wobei die Zahl für die Inform-Version steht - Version 6 ist derzeit Standard und es gibt nur sehr wenige Adventures, die einen z7-Inform-Interpreter benötigen. Der Interpreter selbst enthält neben den wenigen systemabhängigen Ausgaberoutinen noch den Parser und einige Symboltabellen.

Individuelles

Das einzige, was der Interpreter wirklich ausnutzt, ist der 80-Zeichen-Modus und die verschiedenen Textattribute einiger Computer. Ansonsten sehen Inform-Programme auf allen Computern gleich aus - keine Grafik, normalerweise kein Sound und auch keine Texteffekte.

Z-Machine

Alle Inform-Programme laufen auf einer imaginären Maschine, der Z-Machine ab. Dieses Konzept erinnert wieder etwas an Java oder die alte Chip 8-Sprache. Insgesamt sind bis jetzt etwa 40 Interpreter verfügbar, die diesen virtuellen Computer simulieren.

Compiler

Ähnlich wie Java-Applets müssen auch Inform-Programme erst kompiliert werden, bevor sie der Interpreter ausführen kann. Dieses kompilieren ist aber nicht mit dem kompilieren eines Basic- oder Pascal-Programms zu vergleichen: es wird lediglich eine Datenkompression durchgeführt und einige Tabellen angehängt. Das fertige Kompilat bleibt zu jedem Inform-Interpreter kompatibel und so ist es kann man ein auf dem PC kompiliertes Inform-Adventure problemlos mit dem C64 Inform-Interpreter spielen - lediglich der Speicherplatz setzt hier Grenzen. Der Compiler ist leider für nicht ganz so viele Systeme verfügbar (Tabelle 2) und auch die Atari-Version muss man als mißlungen bezeichnen. Programmierer sollten sich also einen PC zum kompilieren beschaffen - zur Not reicht auch ein 386er Emulator.

Programmieren in Inform

Die Programmiersprache ist sehr einfach gehalten, bietet aber doch genug Möglichkeiten für ein umfangreiches Textadventure. Sätze wie "Take the bow and say hello to Ralph" sind für selbstprogrammierte Adventures eine harte Nuß - mit Inform stellen sie kaum noch ein Problem dar. Von Haus aus versteht der Parser über 80 Verben und 300 Wörter und kann außer auf die Eingabe des Spielers zu warten, auch Nachfragen ("Welche Schachtel möchtest du aufnehmen - die grüne oder die gelbe?") sind erlaubt. Von der Schwierigkeit ist die Sprache vielleicht zwischen Basic und Pascal anzuordnen, womit die einzige Schwierigkeit das Gestalten des Adventures sein sollte. Hier lohnt sich ein Blick in die verschiedenen PD-Spiele, die mit Inform programmiert wurden und die Internet-Seiten, die hilfreiche Tips für Anfänger geben.

Dokumentation

Sucht man eine Anleitung zu Inform, hat man die freie Auswahl: Amiga-Guide, Postscript, TeX und das Ascii-Format stehen zur Auswahl, wobei meistens noch unterschiedliche Autoren dahinter stecken. Eine "offizielle" Anleitung existiert nicht, da es seit dem Ende der Firma Infocom auch keine Koordination mehr gibt. Der Amiga-Guide-Hypertext ist jedoch sehr gut und nach ein paar Änderungen zeigte ihn auch der ST-Guide bereitwillig an. Der englische Hypertext geht vom ersten "Hallo Welt"-Programm aus und endet bei Konversationen mit Charakteren. Das Beispielprogramm "Hallo Welt" sieht z.B. wie folgt aus:

 !  "Hallo Welt" Beispiel-Programm
    [ Main;
      print "Hallo Welt^";
    ];

Nach dem Kompilieren und dem Starten mit dem Interpreter wird "Hallo Welt" ausgegeben. Mehr tut das Programm zwar nicht, aber wenn man es Schritt um Schritt erweitert, kommen schnell die ersten Erfolgserlebnisse.

Einschränkungen der Portabilität

Die einzige Einschränkung diesbezüglich ist der Speicherplatz. Da z.B. das Infocom-Adventure Trinity sehr umfangreich war und einen erweiterten Parser benutzte, lief es nur auf dem C128 aber nicht auf dem C64. Für die neueste Inform-Version 8 gibt es noch lange nicht soviele Interpreter wie für die Versionen 5 und 6. Es gibt allerdings nur zwei, drei Spiele, die wirklich die Version 8 benötigen und die Original-Infocom-Spiele liefen auch größtenteils auf den kleineren Versionen. Bezüglich des geringeren Speicherplatzes der "kleinen" Computer muss man noch erwähnen, dass die Besitzer dieser Rechner in letzter Zeit sehr kreativ geworden ist und z.B. ein ZX81 mit 1 MByte und Festplatte mittlerweile Realität ist.

Atari-Spezifisches

Für den Atari sind sowohl Compiler als auch Interpreter verfügbar. Die getesteten Spiele, die größtenteils auf PCs geschrieben wurden, liefen problemlos. Der Interpreter ist eine TTP-Anwendung und verzichtet damit auf die gewohnte GEM-Umgebung. Dies ist aber kein Nachteil, sondern eher ein Vorteil, denn eine aufwendige GEM-Oberfläche erhöht auch die Zahl der möglichen Fehler. Die TTP-Anwendung kann man hingegen sauber in einem Fenster starten (natürlich nur mit einer Erweiterung z.B. TOS-2-Gem) und sogar im Multitasking laufen lassen, ohne befürchten zu müssen, dass Pixelreste auf dem Bildschirm bleiben. Der Inform-Interpreter verwendet so wenig systemnahe Befehle wie möglich und ist deshalb ohne Probleme auf allen Originalen, Clones und Emulatoren lauffähig. Leider kann man dies vom Compiler nicht sagen, denn er ist zwar auch eine TOS-Anwendung, benötigt aber eine Unix-ähnliche Umgebung mit MiNT. Mit MagiC oder einem normal konfigurierten MultiTOS läuft er nicht. Der Grund dafür ist, dass die Atari-Version nur eine minimal modifizierte Umsetzung der Unix-Version ist. Die angekündigte benutzerfreundlichere Version ist bis heute nicht erschienen, so dass als Alternative nur der MS-DOS-Compiler bleibt, der auch auf den gängigen PC-Emulatoren problemlos laufen sollte. Als Dokumentation gibt es für den Atari "Inform-Designer", ein Hypertext, der alle Feinheiten der Sprache erklärt. Dieser Hypertext war ursprünglich nur für den Amiga-Guide verfügbar und musste von mir noch modifiziert werden, damit der Atari-HCP ihn kompilierte.

Original Infocom-Adventures

An die Originale heranzukommen, wird immer schwieriger. Wer also "Zork" oder "Planetfall" in Original-Verpackung entdeckt, sollte sofort zuschlagen, denn Infocom-Adventures haben Raritäts-Wert und es werden für ein gut erhaltenes Exemplar (inklusive der Infocom-üblichen "Goodies") schon Liebhaberpreise bezahlt. Die Spielesammlungen (Lost Treasures of Infocom u.a.) sind hingegen kaum etwas wert, bieten aber trotzdem tonnenweise Spielspaß.

Andere Adventure-Sprachen

Inform ist zwar die bekannteste, aber nicht die einzige Adventure-Sprache. Sowohl die Adventures von Level 9 als auch die Magnetic Scrolls-Adventures wurden in speziellen Adventure-Sprachen programmiert, die von der Konzeption her systemunabhängig waren. Der Interpreter von Level 9 ist auch schon frei im Netz erhältlich, zieht aber nicht soviel Interesse auf sich, was wahrscheinlich wohl auch daran lag, dass die Adventures von Level 9 immer im Schatten von Infocom standen. Der Interpreter von Magnetic Scrolls ist noch nicht im Netz erhältlich und auch erheblich komplexer als Inform.

Fazit

Java, ObjectC und C++ mögen zwar ganz gut sein, aber für Textadventures ist die Inform-Sprache erste Wahl. Nur diese Sprache vereinigt wirklich alle Computer-Typen unter einem Dach, ohne das ein Neukompilieren nötig wäre. Durch die Systemunabhängigkeit werden Inform-Adventures wohl auch noch in zwanzig Jahren spielbar sein können. Findige Programmierer werden sicherlich auch noch andere Programmgenres aus Inform rauskitzeln können und der nur-Spieler hat eine Auswahl an neuen Text-Adventures. Da Inform-Spiele, Compiler und Interpreter sehr sparsam mit dem Speicherplatz umgehen, sind sie auch für kleinere Festplatten geeignet. Letzteres kann man von den neuen, portablen Sprachen nicht gerade behaupten. Für andere Anwendungen mögen sie Vorteile haben - aber wenn man ein Textadventure programmieren will, kommt man kaum an Inform vorbei.

Tabelle 1: Für diese Computer gibt es Inform-Compiler (ohne Gewähr)
Acorn Archimedes
Apple II
Apple Macintosh
Atari ST bis Falcon (MiNT)
Commodore Amiga
CP/M
MS-DOS
Unix
Windows
Tabelle 1: Für diese Computer/Betriebssysteme gibt es Inform-Interpreter (ohne Gewähr)
Acorn Archimedes
Acorn BBC
Amstrad CPC
Apple II
Apple Macintosh
Atari XL/XE
Atari ST bis Falcon
BeBox
BSD-Unix
Commodore 16/+4
Commodore 64
Commodore 128
Commodore Amiga
CP/M
Java
Linux
MS-DOS
MSX
Nintendo Game Boy
OS/2 Warp
Psion Serie 3
Silicon Graphics Irix
Sinclair Spectrum
Sinclair QL
Tandy TRS-80
Thomson TO/70
Unix-portabel (für versch. Unix-Derivate)
VMS
Windows 16/32-Bit
GP32
Sega Dreamcast
Anm: 1) Computernamen wie z.B. Apple II beziehen sich auf die ganze Apple-Produktfamilie (IIe, IIc, IIgs).
2) Inform-Interpreter laufen grundsätzlich auch auf Emulatoren und Clones.
Tabelle 3: Public-Domain Inform-Spiele (ohne Gewähr)
SpielBenötigte Interpreter-Version
ADVENTURE5
Adventureland5
Balances3
Busted!5
Change in the Weather5
Christminster 5
Claustrophobia5
Curses5
Doctor Who: Return to Karn5
Freefall5
Inhumane5
Jigsaw8
Jigsaw (kleinere Version)5
Library5
Magic Toyshop5
Mini-Zork5
Odieus5
Paperchase5
Robots5
Theatre5
Tube Trouble5
Windhall Chronicles8

Mia Jaap
Aus: ST-Computer 10 / 1997, Seite 58

Links

Copyright-Bestimmungen: siehe Über diese Seite