Myst, eines der ikonischsten Adventure-Spiele aller Zeiten, zeichnet sich seit jeher durch seine nichtlineare Erzählweise und die komplexen Wechselwirkungen der Spielwelten aus. Während viele Spiele auf linearen Levelstrukturen basieren, zeigt sich Myst vielmehr als ein Netzwerk vielfältiger Verknüpfungen – ein echter Graph, der das Zusammenspiel von Karten, Ages und deren Verbindungen widerspiegelt. Die dritte Phase der Erforschung dieses Spiels, die unter dem Titel "Creating the Graph Using DeMystify" steht, hebt dieses Konzept auf eine neue, technische Ebene. Es geht um die Transformation der spielinternen Strukturen zu einem handhabbaren und auswertbaren Graphen mithilfe der Open-Source-Software DeMystify, einem Programm geschrieben in der Programmiersprache Go. Ein tiefgehender Blick in die Entstehung und Funktionsweise des Mystic Graphens offenbart spannende Ansätze sowie Herausforderungen und eröffnet gleichzeitig Potenziale für die Weiterentwicklung von Game-Analysen und der graphbasierten Darstellung von Spielwelten.
Eine der größten Hürden bei der Erzeugung des Myst Graphen war die Konvertierung der ursprünglichen Myst-Daten, die in HyperCard-Dateien gespeichert sind. HyperCard gehört zu einer älteren Entwicklungsumgebung für Mac OS und nutzt ein eigenes Dateiformat, das nicht ohne weiteres von heutigen Programmiersprachen verarbeitet werden kann. Anstatt einen eigenen Parser auf Basis der inoffiziellen Spezifikationen des HyperCard-Dateiformats zu schreiben, entschied sich der Entwickler Guillaume Lethuillier für den pragmatischen Weg über das bewährte Werkzeug stackimport. Dies ist eine C++-Bibliothek, die HyperCard-Stapel zuverlässig in XML-Format umwandelt, was die Grundlage für weitere Arbeiten bildet. Allerdings stellt diese Vorgehensweise Nutzer vor die Aufgabe, selbst die Konvertierung vorzunehmen, da originalrechtebedingte Einschränkungen das Bereitstellen der Ausgangsdateien verhindern.
Für Interessierte ist die Entwicklung einer eigenen, in Go programmierten HyperCard-Konverterbibliothek eine spannende Herausforderung, die den Prozess zukünftig deutlich vereinfachen könnte. Nach der Konvertierung tritt DeMystify in Aktion. Die Parsing-Komponente des Programms übersetzt die generierten XML-Dateien in eine sogenannte "Proto Graph"-Struktur. Dabei handelt es sich um eine vorläufige Repräsentation der Spielobjekte – insbesondere Stacks (Ages) und Karten – und ihrer Beziehungen untereinander. Im Zentrum steht die Identifikation und Zuordnung der Kartenelemente inklusive ihrer IDs, Namen und der dazugehörigen Skripte, welche in HyperTalk, der internen Skriptsprache von Myst, verfasst sind.
Ein Beispiel verdeutlicht, dass Karten zwar IDs besitzen, aber nicht immer mit eindeutigen Namen versehen sind. Das Mapping zwischen Karten-ID und Namen ist deshalb essentiell, um Karten zu identifizieren und sie im Graph darstellen zu können. Zudem werden von DeMystify auch zusätzliche Attribute wie Hintergrundbilder oder die Farbe eingebundener Seiten erkannt und in die Knotenbeschreibungen aufgenommen. Ein wesentlicher Fokus liegt auf der Analyse der HyperTalk-Skripte, die auf den einzelnen Karten abgelegt sind. Obwohl die Verarbeitung hier noch recht rudimentär ausfällt und sich vor allem auf das Zerlegen der Skripte in Zeilen und das Erkennen auskommentierter Zeilen beschränkt, ist sie doch entscheidend für die Ermittlung der Beziehungen zwischen Karten.
Die Erkennung von Verbindungen basiert auf regulären Ausdrücken, die typische Befehle wie "go to card id" oder "push card" erfassen. Diese Befehle weisen auf Navigationshinweise innerhalb des Spiels hin, also auf Wechsel von einer Karte zu einer anderen, entweder innerhalb eines Ages oder bereichsübergreifend. Die Komplexität zeigt sich insbesondere bei den push/pop-Mechanismen in HyperTalk, bei denen Karten auf einen virtuellen Stapel geschoben (push) und später wieder hervorgeholt (pop) werden. Diese Mechanik greift tief in den Pfad ein, den der Spieler durch die Spielwelt nimmt, und führt oft zu indirekten Pfaden, die als transitive Beziehungen zwischen Karten interpretiert werden können. Ein bekanntes Beispiel ist eine Sequenz aus dem Channelwood Age, bei der eine Karte von Myst hinzugefügt und dann über mehrere Schritte durch push-, go- und pop-Befehle angesteuert wird.
Solche verschachtelten Bezüge werden von DeMystify erkannt und bilden den Kern für das Verständnis der Spielerfahrung als Graphenstruktur. Nicht vorhandene Karten, die in Skripten referenziert, aber im Stack nicht existieren, werden bei der Generierung des Proto Graphs als virtuelle Karten angelegt. Dies signalisiert, dass solche Knoten im Verlauf der Entwicklung von Myst möglicherweise entfernt wurden, dennoch aber aufgrund ursprünglich bestehender Referenzen relevant bleiben. Dieses Vorgehen erhöht die Vollständigkeit und Aussagekraft des entstehenden Graphen. Nach Abschluss des Parsings erfolgt die erste Abstraktionsebene, bei der Karten und Stacks in Knoten (Nodes) und ihre Beziehungen in Kanten (Edges) umgewandelt werden.
Jeder Knoten erhält Attribute wie die Zugehörigkeit zu einem Stack (also Age), die Existenz farbiger Seiten (blau, rot, weiß) oder den Status als virtuelle Karte. Die Kanten werden hinsichtlich verschiedener Eigenschaften klassifiziert: ob sie deaktiviert wurden (kommentiert in Skripten), ob sie sich innerhalb eines Ages oder AGE-übergreifend bewegen, ob es sich um Rückverweise handelt oder ob die Beziehung Teil einer transitiven Verknüpfung ist. Dadurch entsteht eine detaillierte, wenn auch vorläufige Graphenstruktur, die jedoch noch nicht als solcher in einem graphentheoretischen Format vorliegt. Die zweite Abstraktionsstufe nimmt sich dieser Aufgabe an und generiert aus den gesammelten Knoten und Kanten ein echtes gerichtetes Multigraph, das sich hervorragend für Analysen eignet. Die Wahl fiel auf die Implementierung mit der Gonum-Bibliothek in Go, die flexibles Arbeiten mit gewichteten, gerichteten Multigraphen ermöglicht.
Wichtig für die Modellierung ist, dass mehrere Kanten mit identischer Richtung zwischen zwei Knoten erlaubt sein müssen, da Karten durchaus mehrfache Verknüpfungen aufweisen können. Darüber hinaus ist die Berücksichtigung von Rückverweisen (Backtracking) wichtig für ein realistisches Bild des Navigationsverhaltens. Zur Berücksichtigung dieser Rückverweise bekommen die entsprechenden Kanten ein unendlich hohes Gewicht, wodurch sie in Entfernungsberechnungen ausgeschlossen und nur als alternative Navigationswege dargestellt werden. Das Erzeugen des Graphen erfolgt automatisiert: Knoten werden direkt aus den Parserergebnissen übernommen, während Kanten mit den entsprechenden Gewichtungen versehen werden. Deaktivierte Kanten werden nicht direkt in den Graphen eingebunden, bleiben aber erhalten, um später bei der Visualisierung berücksichtigt zu werden.
Das Ergebnis ist ein komplexes, aber gut strukturiertes Graphenmodell, das die Myst-Spielwelt in all ihren Verzweigungen und Verbindungen abbildet. Die darauf aufbauende Analyse des Graphen zielt auf drei Hauptbereiche ab: die Untersuchung einzelner Knoten, die Erkennung von Komponenten und die Bewertung von Pfaden. Die Knotenanalyse bestimmt unter anderem, welche Knoten die meisten eingehenden beziehungsweise ausgehenden Verbindungen haben. Das Identifizieren von Quellen (Knoten ohne eingehende, aber mit ausgehenden Kanten), Senken (umgekehrt) sowie isolierte Knoten bietet wichtige Einsichten darüber, wie die Spielwelt aufgebaut ist und welche Karten zentrale Rollen einnehmen. Bei der Komponentenanalyse wird der Graph in zusammenhängende Teilgraphen zerlegt, die nicht durch Verbindungen miteinander verbunden sind.
Somit können abgeschlossene oder lose verbundene Bereiche im Spiel erkannt werden. Die Pfadanalyse ist besonders spannend, da für die Spielmechanik sowohl kürzeste Wege zwischen Karten als auch die am weitesten auseinanderliegenden Knoten relevant sind. Dabei wird der Dijkstra-Algorithmus eingesetzt, der dank der Gewichtung der Kanten auch Rückverweise ignoriert. Die Ermittlung der „longest shortest paths“ veranschaulicht besonders gut die größte Entfernung innerhalb der Graphstruktur, was Einsichten über die Komplexität und Länge der Erkundungsrouten im Spiel liefert. Nachdem die Graphstruktur aufgebaut und analysiert wurde, liegt der Fokus auf der Visualisierung.
Dies erwies sich als komplizierter als erwartet. Die ursprünglich angedachte Verwendung bestehender Bibliotheken für die Erstellung von Graphen im DOT-Format musste aufwendig angepasst und schließlich durch eine eigens entwickelte String-Manipulationstechnik ersetzt werden. Aufgrund der immensen Größe des Graphen erwies sich das Erstellen von PNG-Bildern als unpraktisch, weshalb die Alternative in der Erzeugung durchsuchbarer PDF-Dateien mit Hilfe des CLI-Programms Neato gewählt wurde, das eine akzeptable graphische Darstellung erzeugt. Hier zeigt sich ein Spannungsfeld zwischen der technischen Machbarkeit, der Nutzerfreundlichkeit und rechtlichen Aspekten: Idealerweise soll die Graphendarstellung dynamisch sein, um alternative Ansichten, Interaktionen und sogar eingebettete Bilder als Knoten zu ermöglichen. Doch insbesondere der Schutz des geistigen Eigentums von Myst stellt bei solchen Vorhaben eine juristische Herausforderung dar.
Dennoch bleiben solche Visionen und Anregungen wie von Lesern vorgeschlagen eine motivierende Perspektive für die Weiterentwicklung von DeMystify. Letztlich befindet sich DeMystify in einem intermediate Entwicklungsstadium mit vielen Möglichkeiten zur Erweiterung und Optimierung. Zu erwähnen ist der fehlende Einsatz von Unit-Tests ebenso wie die Abhängigkeit von externen Werkzeugen für die Datenkonvertierung und Rendering. Dennoch zeigt die Software den Mehrwert, den eine Graphanalyse für das Verständnis komplexer Spielwelten bieten kann. Die Integration von Gameplay-Informationen, die detailliertere Steuerung der Graphenrenderings oder die Entwicklung von Inhouse-Tools für die Datei-Konvertierung sind spannende Aufgaben, die das Potenzial haben, DeMystify zu einem Standardwerkzeug für die Forscher- und Moddercommunity rund um Myst zu machen.
Guillaume Lethuillier als Entwickler ruft die offene Community dazu auf, sich aktiv zu beteiligen und ihre Expertise einzubringen. Von Fehlerbehebungen über Designideen bis hin zu kompletten Feature-Erweiterungen kann jeder Beitrag das Projekt voranbringen. Bei der Frage zukünftiger Entwicklungslinien scheint der Dialog mit der Nutzergemeinschaft essenziell, um DeMystify wirklich aus seiner Forschungsnische heraus zu einem praxisrelevanten Tool zu entwickeln. Die Transformation verdeutlicht, dass Videospiele jenseits von reinen Linearfäden mit klassischen Levelabfolgen als komplexe und hochvernetzte Systeme wahrgenommen werden können. Das Modellieren als Graph eröffnet neue Analysemöglichkeiten, die sowohl für Spielentwickler als auch für Wissenschaftler spannend sind.
Myst ist dabei ein Paradebeispiel, das schon früh die Bedeutung von nichtlinearer, vernetzer Erzählstruktur gezeigt hat und nun dank moderner Werkzeuge wie DeMystify auch technisch erfasst, analysiert und visualisiert werden kann. Die Kombination von historischer Datentransformation, innovativer Parsingstrategie und moderner Graphentheorie schafft so eine Brücke zwischen Spielgeschichte und moderner Technologie – ein faszinierendes Feld, das noch viel Potenzial birgt.