Darstellung komplexer Geschichten
Geschichten gibt es nahezu überall. In Büchern, Filmen, Spielen, Musik oder anderen Kunstformen, in Religionen, Geschichten von der Vergangenheit und Zukunft, und auch das Leben selbst könnte man als Geschichte betrachten.
Geschichten sind im Grunde zeitlich und kausal zusammenhängende Ereignisse und können in Handlungsstränge aufgeteilt werden.
Ein Handlungsstrang entspricht einem linearen Abschnitt einer Geschichte.
Viele Geschichten bestehen nur aus aus einem Handlungsstrang. Dabei steht immer dieselbe Person im Mittelpunkt und führt nacheinander zusammenhängende Handlungen aus.
Komplexere Geschichten können aber auch mehrere Handlunsstränge haben.
Diese Handlungsstränge können sowohl parallel als auch alternativ sein.
Parallele Handlungsstränge können mehrere Hauptpersonen, die jeweils unabhängig voneinander handeln, oder eine Person, die selbst mehrere unabhängige Handlungen in beliebiger Reihenfolge ausführen kann, enthalten.
Alternative Handlungsstränge hingegen können Personen enthalten, die eine von mehreren theoretisch möglichen Handlungen durchführen.
Vor allem in interaktiven Geschichten, wie in Spielen, können komplexere Handlungen gut verwendet werden.
Wenn aber mehrere Handlungsstränge unabhängig voneinander exisitieren, können sie genausogut zu unterschiedlichen Geschichten gehören. Daher muss es Möglichkeiten für Handlungsstränge geben, miteinander zu interagieren.
Zunächst sollen alternative Handlungen betrachtet werden. Dabei exisitiert immer ein Handlungsstrang gleichzeitig. Dieser kann sich in alternative Handlungsstränge aufteilen, von denen immer nur einer ausgewählt werden kann. Ein Beispiel dafür ist eine Entscheidung zwischen mehreren Alternativen.
Das Gegenstück dazu ist die Vereinigung mehrerer alternativer Handlungsstränge. Das entspricht mehreren möglichen Handlungen mit demselben Resultat.
Parallele Handlungen funktionieren auf ähnliche Arten. Ein Handlungsstrang kann sich in mehrere Handlungsstränge aufteilen. Ein Beispiel dafür ist, wenn sich Personen voneinander trennen und ihre eigenen Wege gehen.
Mehrere Parallele Handlungsstränge können sich auch wieder Vereinigen. Das wäre ein Zusammentreffen mehrerer Personen, sodass dadurch wieder ein einzelner Handlungsstrang entsteht.
Nur durch parallele oder alternative Handlungen lassen sich bereits komplexe Zusammenhänge darstellen. Beides zu vereinen bietet jedoch sehr viele Möglichkeiten.
Ein Handlungsstrang kann sich in mehrere Handlungsstränge aufteilen, wobei jeder der neu erzeugten Handlungsstränge zu jedem anderen Strang parallel oder alternativ sein kann.
Eine Vereinigung kann von mehreren alternativen Mengen paralleler Handlungsstränge ausgelöst werden.
Um parallele Systeme darzustellen gibt es bereits Petrinetze. Diese werden meist bei der Softwareentwicklung zur Veranschaulichung verwendet, nicht jedoch zur Programmierung von Software selbst. Ein Petrinetz enthält Transitionen und Stellen. Eine Stelle kann Tokens enthalten.
Jede Transition ist mit einer beliebigen Anzahl an Eingabe-Stellen und Ausgabe-Stellen verbunden.
Die Transition kann feuern, wenn jede Eingabe-Stelle einen Token enthält. Diese Tokens werden beim Feuern Konsumiert und die Ausgabe-Stellen werden mit neuen Tokens gefüllt. Die Anzahl der Tokens muss dabei nicht gleich bleiben.
Die Transitionen stellen dabei lineare Handlungsstränge dar. Eine Stelle ist eine Bedingung, die zum Eintreffen dieses Handlungsstrangs erfüllt sein muss. Ein Token zeigt an, ob diese Bedingung erfüllt ist.
Die einfachen Beispiele für Aufteilung und Vereinigung lassen sich damit einfach darstellen.
Eine Aufteilung in alternative Handlungsstränge entspricht mehreren Transitionen, welche Tokens aus derselben Stelle konsumieren. Eine Vereinigung entspricht mehreren Transitionen, welche dieselbe Stelle füllen.
Eine Aufteilung in parallele Handlungsstränge entspricht einer Transition, welche von einer Stelle konsumiert und mehrere Stellen füllt. Eine Vereinigung entspricht einer Transition, welche von mehreren Stellen konsumiert und eine Stelle füllt.
Auch komplexere Zusammenhänge sind so verständlicher auszudrücken. Beliebig viele Transitionen können dabei von beliebig vielen Stellen konsumieren und auch beliebig viele Stellen füllen.
Jedoch ist es nicht einfach auf eine solche Art eine Geschichte zu modellieren.
Stattdessen will der Ersteller einer Geschichte nur die Zusammenhänge darstellen.
Dazu werden die möglichen Relationen auf eine möglichst einfache Art dargestellt.
Diese Notation soll es ermöglichen, möglichst viele Bedingungen im Nachhinein hinzuzufügen, ohne etwas zu verändern. Das kann bei interaktiven Geschichten sinnvoll sein. So können jederzeit überall neue Handlungsstränge hinzugefügt werden, ohne dass dadurch alte Handlungsstränge kaputtgehen können.
Das bedeutet, dass durch mehr Angaben immer nur mehr ermöglicht werden darf, nie weniger.
Die Lineare Folge zweier Handlungsstränge a
auf x
kann folgendermaßen notiert werden:
a: x
Um eine Aufteilung von x
in a
und b
darzustellen, kann eine weitere Bedingung notiert werden:
b: x
Diese Notation lässt sich auch folgendermaßen vereinfachen:
a|b: x
Um eine vereinigung von x
und y
nach a
darzustellen, kann genauso eine weitere Bedingung notiert werden:
a: y
Dies lässt sich auf eine analoge Art vereinfachen:
a: x|y
Parallele Aufteilungen können aus einer alternativen Aufteilung erzeugt werden. Diese Erweiterung ist möglich, denn wenn zwei Handlungsstränge alternativ folgen können, wo nur genau eine Alternative möglich ist, kann durch die Parallelisierung nur mehr ermöglicht werden, und zwar beide.
Wenn bereits a
und b
als alternative Aufteilungen von x
definiert sind, lassen sie sich nach x
folgendermaßen parallelisieren:
x/a&b
Es ist nötig, zu spezifizieren, nach welchem Handlungsstrang die neuen Handlungsstränge parallel sind, da es auch möglich sein kann, dass sie nach anderen Handlungssträngen alternativ bleiben.
Vereinfacht ist auch folgende Notation möglich, wenn die Handlungsstränge zuvor noch nicht als alternative Nachfolger spezifiziert worden sind:
a&b: x
Die vorige Notation kann jedoch zur Darstellung komplexerer Zusammenhänge auch sehr hilfreich sein.
Analog dazu lassen sich Vereinigungen paralleler Handlungsstränge darstellen.
Wenn a
nach x
und y
folgt, welche parallel sind, kann das folgendermaßen dar werden:
a: x&y
In diesem fall ist nur die Verallgemeinerung auf eine Vereinigung von Alternativen möglich, denn dann müssen weniger Bedingungen erfüllt sein, wodurch wieder mehr möglich ist.
Viele der Zusammenhänge lassen sich auch als Petrinetz darstellen. Dies ist nur eine vereinfachte Notation, um klarer darstellen zu können, was ausgedrückt werden soll. Zudem ist es dadurch einfacher möglich, eine Geschichte zu erweitern, ohne sich um die exakte Darstellung durch Stellen und Transitionen kümmern zu müssen.
Jedoch gibt es auch Zusammenhänge, die in dieser Notation dargestellt werden können, jedoch nicht eindeutig durch ein Petrinetz dargestellt werden können.
Dies sind Fälle, in denen ein Handlungsstrang auf mehrere Alternativen folgen kann, von denen mehrere gleichzeitig erfüllt sein können, aber je nach Wahl der Alternative andere Parallelen möglich sein können.
In einem Fall, dass eine der Möglichkeiten immer mehr erlaubt, wird das Petrinetz so vereinfacht, dass diese immer gewählt wird. Andernfalls ist das Petrinetz dann in einem unerlaubten Zustand. Es müssen weitere Einschränkungen hinzugefügt werden, bis sich wieder ein erlaubter Zustand ergibt.
Dass bei der Erzeugung des Petrinetzes unerlaubte Zustände entstehen, kommt bei komplexeren Geschichten durchaus häufig vor.
Solch ein System kann zur Modellierung und Simulation komplexer Geschichten verwendet werden.
Es kann in beliebigen interaktiven Geschichten eingesetzt werden.
Jede Transition, die feuern kann, entspricht einer möglichen Aktion in einer Welt.
Das könnte einfach eine Auswahl an Handlungen sein oder auch die Anpassung einer komplexen Spielwelt an eine Geschichte.
Derzeit arbeite ich daran, damit interaktive Geschichten und Spiele zu erstellen. Prototypen existieren bereits.
Bei Interesse an diesem Thema freue ich mich auf Fragen und Anregungen.
Zunehmend irritiert und schließlich mit dem Gefühl, ab sofort keine Geschichten mehr erzählen zu können, habe ich Deine Arbeit überflogen.
Ich habe immer einfach so erzält, aufs gerate wohl. Bin ich diesbezüglich ein hoffungsloser Fall?
Nein, ich denke nur viel über soetwas nach, habe aber auf diese Art selbst noch keine längeren Geschichten schreiben können.
Einfach drauf loszuschreiben, vielleicht mit einer groben Vorstellung, was passieren soll, ist wohl oft eine produktivere Herangehensweise.
Es ist eben auch nicht leicht, kreatives Denken mit komplexer Logik zu verknüpfen.