Spielerando

How to Make Player Choices That Really Matter

A choice matters when the game remembers it and the player sees the result later. Have your AI model every big choice and run a checker that walks every path, so it can show you the exact path where a choice changes nothing.

Why do the choices in my game feel fake?

On a small space station, a stranger begs the player to hide her in the cargo bay. The guards want her handed over. You get two tense scenes. Then the next scene is the same either way, and nobody ever mentions her again.

Players notice this fast. Once they see that nothing changes, they stop caring and just click.

You asked for a choice, so the AI wrote a choice. Nobody asked for what comes after. Telling it to "make choices matter" gives you nicer words, not a game that remembers. You need to see, path by path, whether the result is there.

Which facts and rules prove a choice matters?

  • Facts: what the player chose, and which later scenes show a result of it.
  • Every big choice is stored. The game remembers it, even after loading.
  • Every big choice shows up twice. At least two later scenes change because of it, on every path.
  • It shows up soon and late. One result comes in the next few minutes, one much later.

Small echoes are enough. A changed line, a different greeting or a price is cheap to build, and players feel it. You do not need a second game. See the branching guide.

What does a real check look like?

Here is the station as a model. The player hides the stranger or hands her over. Then come the canteen, the docking ring and the ending. The rule: by the ending, the player has seen at least two results.

We ran this invented story through TLC 2.19 on 2 November 2026. This is TLC's real output. We only left out its housekeeping lines and put each step on one line.

Error: Invariant EveryBigChoiceShowsUpTwice is violated.
State 1: scene = "Start", choice = "none", resultsShown = {}
State 2: scene = "Hide the stranger", choice = "hid her", resultsShown = {}
State 3: scene = "Canteen", choice = "hid her", resultsShown = {}
State 4: scene = "Docking ring", choice = "hid her", resultsShown = {}
State 5: scene = "Ending", choice = "hid her", resultsShown = {}

The player reaches the ending, and the list of results shown is still empty. That path is the proof that this choice was fake.

The fix: if the player hid her, they find a thank-you note in a crate and later see her wave from a shuttle. If they handed her over, the cook refuses to serve them and the guards wave them through. We ran TLC again.

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

TLC looked at all 9 states the story can reach, and the rule held on every path.

Do I have to read any of this?

No. You never have to read the model or the checker's output, because your AI writes it, runs it and tells you the result in plain words. TLA+ is a language for modelling, and TLC is the tool that checks a model. If TLC cannot run on your computer, your AI can get a ready-made checker through our MCP server and run it in your project. Spielerando never looks at your story.

A pass means your rules held on every path in the model. It does not mean your choices are good, and it says nothing about rules nobody wrote down.

Paste this to your AI

Do not just tell me my choices matter. Model them and check it with a tool.

1. Read the story and the game. If you cannot see my files, ask me to paste them.
2. List every choice the player makes.
3. Write a TLA+ model of the story in a folder called story-check.
   - Facts, as state: what the player chose, and which results of each choice have been shown so far.
   - Steps: every scene and choice, with what it needs and what it changes.
   - Rules, as invariants: every big choice is stored. By the time the player reaches an ending, at least two later scenes have shown a result of each big choice, on every path.
4. Run the TLC model checker on the model so that it walks every path. If TLC cannot run here, use get_recipe with story-model-check through Spielerando and run that checker in this project. If you can run neither, tell me, and do not claim that anything was checked.
5. For each broken rule, show me the exact path of scenes the checker found, in plain words, and quote the lines behind each step.
6. For each choice that changes nothing, suggest two small results: one soon and one much later. Keep them cheap, such as a changed line, a greeting, a price or an item. Do not suggest new chapters. Say "This is new" for each one. Wait for me to pick.
7. Build what I pick, update the model, run the checker again and show me the result. Also show me where the game stores each choice and which scene uses it.

From now on, run the checker after every new choice. Report only which rules held, how many states were checked and whether the check was cut off. Never tell me a choice is good. If you cannot tell whether a scene uses a choice, say "I do not know" and ask me. Do not guess.

Or skip this and connect the MCP: your AI then finds all of this by itself.Connect the MCP

How to check it worked

  • Play the path it gave you. Follow those exact scenes in the game. You should see that nothing changes.
  • Play twice. Take the opposite option each time and note what is different.
  • Save and load. Save right after a choice, close the game and load. Does the game still know? See save games that keep the story.
  • Ask a friend. After they play, ask what they chose and what came of it. If they cannot tell you, the result is too hidden.

Sources

Last updated: 2026-11-02