Mittwoch, 6. Januar 2010

Textadventure

Textadventures gehören zum Urgestein der Computerspiele. Eines der ersten ist "Adventure" von William Crowter, danach kommt schon sehr schnell Zork in verschiedenen Versionen. Das reizvolle an Textadventures ist das Fehlen einer graphischen Oberfläche und die Notwendigkeit, sich die Räumlichkeiten selbst vorzustellen, um die enthaltenenn Aufgaben zu lösen.

Vgl. zu Genre http://de.wikipedia.org/wiki/Adventure und http://de.wikipedia.org/wiki/Adventure_(1976). Hier gibt es den originalen Fortran-Quelltext: http://jerz.setonhill.edu/if/crowther/. Manche der alten Textadventures kann man wieder online spielen: vgl. http://www.ifiction.org/games/index.php?cat=2.

Zu jedem folgenden Schritt im Textadventure gehört notwendig die Interaktion des Spielers. Anders als bei gängigen 3d-Spielen mit komplexer Graphik schaut man also nicht erst 20 Minuten zu, bis der im Spiel enthaltene 3D-animierte Film endlich abgelaufen ist.
Bei Textadventures muss man immer zuerst eine Vorstellung von die Miniaturwelt im Spiel machen, also sich eine Bandbreite von möglichen Spielverläufe ausdenken. Im nächsten Schritt muss man die Verläufe bewerten und eine Entscheidung für einen gewünschten Verlauf treffen. Dann muss man eine Vermutung aufstellen, wie man denn nun diesen Verlauf auslösen kann und schließlich muss mann es ausprobieren. Wenn es geklappt hat, bestärkt das denn Spieler in seiner Vorstellung von der Spielewelt, wenn nicht, kann er entweder die Art ändern, wie er einen bestimmten Spielverlauf auslösen wollte, oder er kann die Vorstellung von der Welt modifizieren.
Dieser Prozess ist dann für den Spieler erfolgreich, wenn er ihn möglichst individuell gestalten kann. Das bedeutet, die Interaktion mit dem Spieler muss so aufgefangen werden, dass möglichst wenige oder wenigstens eindeutige Sackgassen entstehen. Ein Maximum der Interaktion ist erreicht, wenn ein Spieler die eingeschlossene Welt während des Spielens völlig frei verändern kann.

Fragment eines Textadventures ist Miniaturversuch, diese Interaktivität nachzubasteln. Es gibt eine Eingabezeile, deren Inhalt in einer Schleife an eine Parser-Funktion übergeben wird. Der Parser versucht aus der Zeichenkette Wörter zu erkennen und sie nach einer einfachsten Grammatik in eine Reihe von Funktionen umzuwandeln. Die Funktionen ihrerseits rufen Methoden von Klassen auf, die festgelegt sind. Es gibt: Orte, Botschaften, Maschinen, Werkzeuge und Links. Die Links sind dabei die Verbinder zwischen den Orten. Botschaften, Maschinen und Werkzeuge können zu einem Ort gehören. Alle diese Objekte werden über XML-Dateien definiert, die in diversen Unterordnern abgelegt sind. Und eigentlich bräuchte ich beim momentanen Stand nur noch einen eingebauten Editor zum Verändern der Welt durch Hinzufügen oder Bearbeiten von XML-Dateien. Zum Beispiel soll ein Spieler, der denkt, dass er gerne in der Hütte ein Bild an der Wand hängen hätte, das einen beim Daraufzugehen an einen Ort portiert, welcher der Beschreibung des Bildes entspricht, dass der Spieler sich so ein Bild also machen kann. Und dann hätte ich gerne, dass man sich beim Spiel anmelden kann und über Netzwerk mit anderen zusammenspielen.
- Naja. Das kann dauern. Wahrscheinlich müsste man auch überhaupt das Konzept der Links als Verhältnisse zwischen Objekten im Gegensatz zu den Objekten neu überdenken.

Keine Kommentare:

Kommentar veröffentlichen