Spielerando

Why Do All My Game Characters Sound the Same?

AI dialogue sounds flat when every character shares the same polite, wordy voice, so give each one sample lines and limits. Then have your AI model who said what to whom, because a checker can show you every line that makes no sense on some path, even though it cannot tell you how a line sounds.

Why does all my dialogue sound the same?

Here is what a first draft often looks like:

  • Guard: "Greetings, traveller. I must inform you that the road ahead is fraught with danger. Please take care."
  • Innkeeper: "Greetings, traveller. Welcome! It is truly a pleasure to have you here in these troubled times."

You could swap those two lines and nobody would notice. Without guidance, the AI writes one safe voice for everyone.

Here is the same moment with two real people in it:

  • Guard: "Road's shut. Wolves."
  • Innkeeper: "You're dripping on my floor. Soup's two coins."

What gives a character a voice?

No checker can judge this part. It comes from your character sheets, and you are the judge:

  • Length. One person says three words. Another never stops.
  • Word choice. A sailor and a judge do not pick the same words.
  • What they avoid. Someone who never talks about their son says a lot by staying silent.
  • A favourite topic. The innkeeper always comes back to money.
  • How they treat the player. Are they rude, shy, kind or scared?

Keep lines short, with one idea each, and put three sample lines on each sheet. Examples give the AI something concrete to follow.

Which facts and rules can a checker test in dialogue?

A checker cannot hear a voice. It can find lines that make no sense on some path:

  • Facts: which lines have been said, who has met whom, and who knows what.
  • Nobody refers to a talk that never happened. "As I told you" needs an earlier talk on this path.
  • Nobody says what they cannot know.
  • Nobody greets a stranger like an old friend, or an old friend like a stranger.
  • The dead do not speak.

What does a real check look like?

Here is the innkeeper as a model. She first says "Soup's two coins." Her short line for later is "Still here? Soup's still two coins." But the player can go to the back room first and skip the first talk.

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 NobodyRefersToATalkThatNeverHappened is violated.
State 1: scene = "Start", linesSaid = {}
State 2: scene = "Road", linesSaid = {"Road's shut. Wolves."}
State 3: scene = "Back room", linesSaid = {"Road's shut. Wolves."}
State 4: scene = "Inn, later", linesSaid = {"Road's shut. Wolves.", "Still here? Soup's still two coins."}

On the path Start, Road, Back room, Inn later, she says "still" about a price she never told you. That path is the proof.

The fix: coming from the back room, the player gets the first talk. We ran TLC again.

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

TLC looked at all 6 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 dialogue is good, and it says nothing about how it sounds.

Paste this to your AI

Do not just tell me my dialogue is fine. Model who says what to whom and check it with a tool.

1. Read all the dialogue. If you cannot see my files, ask me to paste it.
2. Create story-bible.md if it does not exist. Under each character, add a Voice part: three sample lines, how long their lines usually are, words and topics they keep using, words and topics they avoid, and how they treat the player. Take samples from the game if you can, and name the scene. If you wrote one yourself, say so.
3. Write a TLA+ model of the story in a folder called story-check.
   - Facts, as state: which lines have been said, who has met whom, and who knows what.
   - Steps: every scene, choice and conversation, with what it needs and what it changes.
   - Rules, as invariants: nobody refers to a talk that never happened. Nobody says what they cannot know. Nobody treats a stranger like an old friend. The dead do not speak.
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 line that makes no sense.
6. Rewrite the dialogue of the scene I name, or the scene with the most talking if I name none. One idea per line, most lines under 15 words, and nobody explains what the player can already see. Remove any line another character could also say.
7. Show me old and new lines side by side. For each new line, quote the part of the Voice notes it follows. Do not change the game until I say OK. Then update the model, run the checker again and show me the result.

The checker cannot judge how a line sounds, so never tell me a line sounds good. Report only which rules held, how many states were checked and whether the check was cut off. If a character has too little in the game for you to tell how they talk, say "I do not know" and ask me.

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 hear the line that makes no sense.
  • Hide the names. Can you tell who is speaking from the words alone?
  • Read it out loud. If you run out of breath or feel silly, cut the line.
  • See it in the game. Does each line fit in the box? Is anything cut off?
  • Talk to someone three times. Do you get the same line each time?

Sources

Last updated: 2026-11-02