Spielerando

So schreibst du ein Spielende, das im Kopf bleibt

Ein starkes Ende zeigt, wozu die eigenen Entscheidungen geführt haben. Lass deine KI Versprechen, Entscheidungen und Enden modellieren und einen Checker laufen, der den genauen Weg zu jedem Ende zeigt, damit kein Ende nur auf dem Papier existiert.

Warum wirkt mein Ende so flach?

In einem kleinen Leuchtturmspiel baut man stundenlang eine Stadt wieder auf, freundet sich mit der Fährkapitänin an und entscheidet, ob man einem Dieb vergibt. Die letzte Szene ist ein Sturm, ein Kampf und ein Textbildschirm: „Und so wurde die Stadt gerettet.“

Die Kapitänin fehlt. Der Dieb wird nicht erwähnt. Alle bekommen denselben letzten Satz.

Bittest du eine KI um ein Ende, schreibt sie ein Ende im Allgemeinen. Sie schaut nicht in dein Spiel zurück, wenn du es ihr nicht sagst. Und wenn das Spiel diese Entscheidungen nie gespeichert hat, gibt es nichts zum Zurückschauen. Schlimmer noch: Du kannst ein schönes Ende schreiben, zu dem kein Weg führt.

Was macht ein Ende unvergesslich?

  • Es hält Versprechen. Jedes Rätsel, jede Bedrohung und jede Freundschaft bekommt eine Antwort.
  • Es zeigt das Ergebnis. Lass die wiederaufgebaute Stadt sehen, ohne dass ein Text davon erzählt.
  • Es spiegelt diesen Spieldurchlauf. Das Ende weiß, wem vergeben und wer enttäuscht wurde.
  • Es kostet etwas. Neben dem Gewonnenen geht auch etwas verloren.
  • Es greift den Anfang auf. Das Spiel beginnt mit einem dunklen Leuchtturm und endet mit seiner brennenden Lampe.

Nichts davon kann ein Checker beurteilen. Er kann die Punkte unten prüfen.

Welche Fakten und Regeln kann ein Checker am Ende prüfen?

  • Fakten: jede große Entscheidung, und jedes Versprechen und ob es beantwortet wurde.
  • Jedes Ende ist erreichbar. Mindestens ein Weg führt zu jedem Ende.
  • Jedes Versprechen bekommt eine Antwort. Auf jedem Weg, bis das Spiel endet.
  • Das Ende nutzt nur, was passiert ist. Es erwähnt nie etwas, das auf diesem Weg nicht passiert ist.

Du brauchst nicht viele Enden. Eine gemeinsame Schlussszene mit kleinen veränderlichen Teilen kann persönlicher wirken als drei getrennte. Das Spiel muss sich diese Entscheidungen merken, lies also Entscheidungen, die wirklich zählen.

Wie sieht eine echte Prüfung aus?

„Ist dieses Ende erreichbar?“ ist eine Frage über alle Wege, also fragen wir TLC andersherum. Wir fügen eine Regel hinzu, die sagt: „Kein Weg führt zu diesem Ende.“ Bricht TLC diese Regel, ist der Trace ein Weg zu diesem Ende. Hält die Regel überall, führt kein Weg dorthin.

Hier ist der Leuchtturm als Modell. In der Sturmnacht hilft man der Kapitänin oder vergibt dem Dieb. Das Lampen-Ende folgt auf beides. Das Bäckerei-Ende braucht beides zusammen.

Wir haben diese erfundene Story am 2. November 2026 mit TLC 2.19 geprüft. Das ist die echte Ausgabe von TLC. Wir haben nur die Verwaltungszeilen weggelassen und jeden Schritt in eine Zeile gesetzt. Zuerst das Bäckerei-Ende:

Model checking completed. No error has been found.
8 states generated, 6 distinct states found, 0 states left on queue.

Ausnahmsweise ist „kein Fehler“ eine schlechte Nachricht. Die Regel „Kein Weg führt zum Bäckerei-Ende“ hat in allen 6 Zuständen gehalten. Niemand kann dieses Ende also je sehen. Dieses Ergebnis ist der Beweis. Das Lampen-Ende zum Vergleich:

Error: Invariant KeinWegFuehrtZumLampenEnde is violated.
State 1: szene = "Start", diebVergeben = FALSE, kapitaeninGeholfen = FALSE
State 2: szene = "Sturmnacht", diebVergeben = FALSE, kapitaeninGeholfen = FALSE
State 3: szene = "Der Kapitänin helfen", diebVergeben = FALSE, kapitaeninGeholfen = TRUE
State 4: szene = "Lampen-Ende", diebVergeben = FALSE, kapitaeninGeholfen = TRUE

Hier hat TLC die Regel gebrochen, und der Trace ist ein echter Weg zum Lampen-Ende.

Die Lösung: Nachdem man der Kapitänin geholfen hat, kann man dem Dieb noch vergeben. Wir haben TLC für das Bäckerei-Ende noch einmal laufen lassen.

Error: Invariant KeinWegFuehrtZumBaeckereiEnde is violated.
State 1: szene = "Start", diebVergeben = FALSE, kapitaeninGeholfen = FALSE
State 2: szene = "Sturmnacht", diebVergeben = FALSE, kapitaeninGeholfen = FALSE
State 3: szene = "Der Kapitänin helfen", diebVergeben = FALSE, kapitaeninGeholfen = TRUE
State 4: szene = "Dem Dieb vergeben", diebVergeben = TRUE, kapitaeninGeholfen = TRUE
State 5: szene = "Bäckerei-Ende", diebVergeben = TRUE, kapitaeninGeholfen = TRUE

Jetzt bricht die Regel, und genau das wollen wir. Der Weg Start, Sturmnacht, Der Kapitänin helfen, Dem Dieb vergeben, Bäckerei-Ende existiert.

Muss ich das alles lesen?

Nein. Das Modell und die Ausgabe des Checkers musst du nie selbst lesen, denn deine KI schreibt es, führt es aus und sagt dir das Ergebnis in einfachen Worten. TLA+ ist eine Sprache zum Modellieren, und TLC ist das Werkzeug, das ein Modell prüft. Wenn TLC auf deinem Rechner nicht läuft, kann deine KI über unseren MCP-Server einen fertigen Checker holen und in deinem Projekt ausführen. Spielerando schaut sich deine Story nie an.

Ein solches Ergebnis heißt, dass deine Regeln auf den Wegen im Modell gehalten haben. Es heißt nicht, dass dein Ende gut ist, und es sagt nichts über Regeln, die niemand aufgeschrieben hat.

Das sagst du deiner KI

Sag mir nicht einfach, dass meine Enden funktionieren. Modelliere sie und prüfe sie mit einem Werkzeug.

1. Lies die gesamte Story und story-bible.md, falls es die Datei gibt. Wenn du meine Dateien nicht sehen kannst, bitte mich, sie einzufügen.
2. Liste das Folgende auf und zitiere jeweils die Zeile, in der es angelegt ist: jedes Versprechen der Story, jede große Entscheidung und jede wichtige Figur und wo sie am Ende steht.
3. Schreib in einem Ordner story-check ein TLA+-Modell der Story.
   - Fakten als Zustand: jede große Entscheidung, und jedes Versprechen und ob es beantwortet wurde.
   - Schritte: jede Szene und jede Entscheidung, mit dem, was sie braucht und was sie ändert.
   - Regeln als Invarianten: Bis das Spiel endet, ist jedes Versprechen beantwortet, auf jedem Weg. Ein Ende erwähnt nie etwas, das auf diesem Weg nicht passiert ist.
   - Um zu prüfen, ob jedes Ende erreichbar ist, füge für jedes eine vorläufige Regel hinzu, die sagt, dass kein Weg dorthin führt, und führe TLC aus. Bricht die Regel, ist der Trace ein Weg zu diesem Ende. Hält sie, führt kein Weg dorthin, dann sag es mir.
4. Führe den Model Checker TLC auf dem Modell aus, damit er jeden Weg abläuft. Wenn TLC hier nicht läuft, nutze get_recipe mit story-model-check über Spielerando und führe diesen Checker in diesem Projekt aus. Wenn du beides nicht ausführen kannst, sag es mir und behaupte nicht, dass etwas geprüft wurde.
5. Zeig mir für jede gebrochene Regel den genauen Weg durch die Szenen, in einfachen Worten. Liste für jedes Ende die genauen Entscheidungen auf, die dorthin führen. Führt nichts zu einem Ende, sag es.
6. Schlag eine gemeinsame Schlussszene mit kleinen Teilen vor, die sich danach richten, was im Spiel passiert ist. Nutze nur Fakten, die das Spiel schon speichert, und zeig mir, wo jeder gespeichert ist. Gib ihr ein Bild, das die Anfangsszene aufgreift, und zitiere die Zeile, die du meinst. Sag bei allem Neuen „Das ist neu“. Warte, bis ich gewählt habe.
7. Aktualisiere nach jeder Änderung das Modell, führe den Checker erneut aus und zeig mir das Ergebnis.

Melde nur, welche Regeln gehalten haben, wie viele Zustände geprüft wurden, welche Enden einen Weg haben und ob die Prüfung abgebrochen wurde. Sag mir nie, dass ein Ende gut ist. Wenn du nicht sagen kannst, ob ein Ende erreichbar ist, sag „Ich weiß es nicht“. Behaupte nicht, dass es das ist.

Oder spar dir das und schließ den MCP an: Dann findet deine KI das alles von selbst.MCP anschließen

So prüfst du es

  • Spiel den Weg, den du bekommen hast. Folge der Liste der KI und spiel jedes Ende bis zum Schluss.
  • Vergleiche zwei Enden. Hätten zwei Leute, die sich austauschen, das Gefühl, verschiedene Spiele gespielt zu haben?
  • Lade einen alten Spielstand. Lade einen Stand kurz vor dem Ende. Zeigen sich Entscheidungen von vor Stunden noch?
  • Frag am nächsten Tag nach. Was ist hängen geblieben? Was bekam nie eine Antwort? Das sagt dir kein Checker.

Quellen

Stand: 2026-11-02