Schreiben

Am Anfang steht das Finden eines passenden Autorensystems. Das ist mitunter gar nicht so einfach, daher findest du hier ein paar Anhaltspunkte dazu.

Es gibt vier „große“ Autorensysteme, die die deutsche Ausgabesprache beherrschen.

InformT.A.G.Floyd und TADS. Floyd und T.A.G. sind von vorneherein auf Deutsch entwickelt, für Inform 6 und 7 gibt es Erweiterungen, die die Ausgabe ins Deutsche ermöglichen. Die deutsche Bibliothek für TADS 3 befindet mit einer kleinen Kurzdoku und einem Beispiel hier.

Inform 7:

Ich habe für Ares, Mariel und Homunculus das Autorensystem Inform 7 verwendet. Die deutsche Spracherweiterung ist GerX. Inform 7 verfolgt den Ansatz des „Literate Programming“, den Donald Knuth bereits im Jahr 1984 geprägt hat. Dahinter steckt die Prämisse, dass Dokumentation und Quelltext nicht getrennt sind, sondern dass der Quelltext an sich bereits einen hohen Grad an Verständlichkeit aufweist. Inform 7 verwendet Phrasen wie

The Living Room is a room. The printed name is „Wohnzimmer“. The description is „Du befindest dich in deinem vertrauten Wohnzimmer.“

Der Vorteil ist, dass jederzeit ein schneller Wiedereinstieg in das Projekt möglich ist und der Code bei einem Teamprojekt auch ohne große Erläuterungen von allen Projektbeteiligten schnell erfasst werden kann. Zudem lockt eine gut durchdachte IDE, die Quelltext, Dokumentation und Interpreter vereint.

Der Nachteil ist, dass Inform 7 Quelltexte sehr schnell lang werden können, insbesondere wenn man mit schlechtem Programmierstil arbeitet und Erleichterungen wie Klassendefinitionen und Tabellen außer Acht lässt.

Inform 6:

Ich habe Inform 6 für Die Akte Paul Bennet verwendet.

Es gibt verschiedene Spracherweiterungen, die aktuellste ist deform von Martin Oehm.

Inform 6 ist der Vorgänger zu Inform 7. Inform 6 verfolgt den Ansatz eines möglichst einfachen Grundsystems, das im Wartungsaufwand geringer ist als komplexere Systeme. Das macht das Ganze sehr sympathisch, allerdings muss man für moderne Textadventures benötigte Konventionen erst mühsam dazu programmieren. Die Raumdefinition sieht hier so aus

Object -> LivingRoom „Wohnzimmer“
with description
„Du befindest dich in deinem vertrauten Wohnzimmer.“,
has light;

Trotz klar erkennbarer Programmsyntax, geht Inform 6 oft den Weg des geringsten Tippaufwands, sicherlich ein Vorteil, der aber manchmal zu Irritationen führt, da die Syntaxregeln nicht konsistent sind. Wer sich davon nicht abschrecken lässt, findet hier ein System, das gut erlernbar ist und viele Erweiterungen bietet (die aber oft erst ins Deutsche übersetzt werden müssen).

Ein Nachteil ist das Fehlen einer IDE. Nun ja, genau genommen sind mehrere in Entwicklung, das bekannteste ist Wide, das auf WxWidgets basiert, aber das hatte ich bis dato noch nicht richtig zum Laufen gebracht. Also bleibt nur die klassische Arbeit mit Texteditoren und Batch-Dateien für das Kompilieren. Das Testen ohne integrieren Interpreter ist langwieriger, aber eingebaute Debug-Kommandos halten den Testaufwand im vertretbaren Rahmen.

Ein weiterer Vorteil ist die Verfügbarkeit des Interpreters für sehr viele Platformen. Eine Übersicht dazu gibt es hier auf ifwiki.org.

Floyd / TADS:

Ich habe TADS für Schattenweg und für Die Pionierin und die Tragödie des telematischen Typewriters verwendet.

TADS und Floyd sind typische Programmiersprachen mit C++ und Pascal-artigen Einschlägen und wer sich mit einer dieser Sprachen schon einmal beschäftigt hat, wird sich hier schnell zurecht finden. Auch für Leute mit weniger Erfahrung sind diese Systeme erlernbar, vorausgesetzt man bringt Geduld mit. Gerade für TADS gibt es viele Dokumente, die den Einstieg erleichtern.

TADS verfolgt einen anderen Ansatz als Inform, mit zahlreichen Klassen, Unterklassen und Mix-In-Klassen, die dem Autor möglichst viel Arbeit abnehmen sollen (z.B. Actorstates für NPC’s wie einer geführten Tour oder dem Verfolgen einer Person, weit entfernte Objekte außer Reichweite des Spielers, zusammenbindbare Objekte usw.) Dieser Vorteil kommt gerade in der fortgeschrittenen Phase der Spielentwicklung zum Tragen, denn man muss oft nur wenige „Stellschrauben“ drehen, um einen gewünschten Effekt zu erzielen.

Der große Nachteil ist, dass sich das Schreiben oft in langwieriger Dokumentations- und Bibliothekssuche nach einer bestimmten Funktion oder Klasse verliert. Das kostet am Anfang viel Kraft, wird aber mit zunehmender Eingewöhnung deutlich besser.

TADS wird mit einer gut durchdachten IDE einschließlich Debugger ausgeliefert, die kein anderes System bietet.

Obige Raumdefinition sieht hier so aus:

livingRoom : Room ‚Wohnzimmer‘
„Du befindest dich in deinem vertrauten Wohnzimmer.“
;

Floyd ist syntaktisch TADS sehr ähnlich, versucht aber einen einfacheren und schlankeren Ansatz ähnlich wie Inform 6. Die Engine basiert auf Java, was die Portierung auf neue Plattformen sehr erleichtert.

T.A.G. ist älter und wird laut Entwickleraussage nicht mehr gepflegt. Dafür erfreut es sich immer noch großer Beliebtheit und es vergeht kaum ein Grand Prix Wettbewerb ohne ein T.A.G.-Spiel. T.A.G. ist das einzige System, das wirklich komfortabel mit der deutschen Sprache arbeitet und dabei auch die im Deutschen üblichen zusammengesetzten Substantive beim Vokabular effektiv einbindet.

Dialog ist ein 2018 erstmals veröffentliches System, das sich als Mischung von Prolog und Inform darstellt. Es basiert auf „queries“, einfachen Abfragen, die positiv oder negativ enden können. Der Autor, Linus Akesson, hat diese einfache Grundstruktur entwickelt, um die Lauffähigkeit auf alter Hardware wie z.B. dem C64, zu gewährleisten.

Außerdem ist Dialog kompatibel zur Z-Machine oder auch zu A-Machine, die dann hinsichtlich der Größe der Storyfiles keinerlei Beschränkungen mehr aufweist, (CSS-)Styles kennt und Bilder darstellen kann.

Eine deutsche Übersetzung wird hier entwickelt.