AI Game Dev Search

Cover the names: can you tell who's talking? Writing distinct character voices for games

The same scene written flat and in five distinct voices, with a guess-who-said-it test: register, sentence rhythm, verbal tics, how characters address others and how they crack under stress.

Tested with Claude Code 2.1.296 · Opus 5.5

Cover the names. Who said it? Three dialogue lines with hidden speaker names, twice. Left: three near-identical lines about leaving, labelled 'All the same'. Right: a formal line, a one-word order and a joking line with a nickname, labelled 'Scholar, soldier, joker'. Below, five labels: Register, Rhythm, Verbal tics, How they address you, Under stress
What we asked“Make a web page that demonstrates the character voice tricks that make every speaker recognisable one at a time, so anyone can see and feel each one within a few seconds. For each one, show the same short moment side by side: without it on the left, with it on the right, playing in a loop, with a caption that says what just happened and a replay button. Where it helps, let me play the moment myself. It will sit inside a blog post about 720 pixels wide, so it has to look good at that width and on a phone. Also make each one viewable alone with ?trick=<id>&solo, using these ids: register, rhythm, verbal-tics, address, under-stress. The left side is the same short scene with every character written in one flat voice, and add a "guess who said it" mode that hides the names and lets me pick the speaker. Use the internet freely for better results: free CC0 art, fonts or small libraries (for example Kenney's CC0 assets) are welcome; download anything you use into this folder so the page works without outside links, and list each item with its licence and source in CREDITS.md.”

What happened

  • Loaded the character-voice skill
  • Downloaded four CC0 animal portraits from Kenney (walrus, parrot, owl, elephant) and two open-licence fonts
  • Wrote one short scene at a night dock with four speakers, and kept every character's voice in one voice bible next to a flat draft
Claude
Works end to end. The guess buttons wrapped awkwardly in a half-width panel, so I'm putting them in a four-column grid.
  • Added Step to play the scene one line at a time, Guess who said it, and Shake the dock for the stress card
  • Kept every card the same height while it loops, so it won't push the post's text around
  • Ran the skill's blind test: stripped the names from all 40 lines, shuffled them, and had a separate agent guess the speakers
Claude
The blind reader got 35 of 40 right (88%; the target is 80%). Odile's crisis line was taken for Brick's, so I rewrote it to keep a healer's concern.

Read a page of your script with the names covered. If you can’t tell who’s talking, neither can your players, and every character blurs into one narrator. This matters more as a script grows: Supergiant’s Greg Kasavin told GamesRadar+ that Hades II has more than 400,000 words and more than 30,000 voice lines (GamesRadar+). In each demo below, four characters wait for a late ferry at a night dock: Brick the ferry hand, Pip the courier and joker, Maren the archivist and Odile the healer. The left side is written in one flat voice; the right side switches on a single trick. Step plays it one line at a time, and Guess who said it hides the names, shuffles the lines and scores your guesses on both sides.

1. Register

Register is how formal and polite someone is, and the words they reach for. Stieg Hedlund builds voices on four axes, register first, with the goal that players can “identify the speaker just by reading a line” (Game Developer). Press Say no: on the flat side all four say “No, I don’t think so.” On the right, Maren says “I’d advise against that.” and Brick says “Don’t.”

2. Rhythm

Give each character a typical sentence length. On the left, every line is 5 to 7 words. On the right, Brick says “Ferry’s late.” in 2, and Maren uses one 25-word sentence with an aside in the middle. The bars under each line show the words per sentence. You can see rhythm on the page, too: in Undertale, Sans writes in lowercase and Papyrus in capitals (Undertale Wiki). One rule we keep: short lines are still full sentences. Clipped fragments belong to one or two gruff characters at most.

3. Verbal tics

One or two pet words, a topic they keep coming back to, and at most one catchphrase. Hedlund calls these topics and quirks (Game Developer). Here, Brick opens with “Right.” and worries about the tide, Odile offers to put the kettle on, and Pip says “honestly” and “Bet you a biscuit”. The added words are highlighted. Open One catchphrase across a chapter to see Pip’s line change each time: a boast, a lost bet, a doubled bet, then dropped. A catchphrase that repeats the same way every time gets old fast.

4. How they address you

Decide what each character calls the player and everyone else, and never let two share a nickname. In our scene you’re “boss” to Brick, “chief” to Pip, “Warden” to Maren and “dear heart” to Odile, and Maren calls Pip “Master Pell” where Odile calls him “little bird”. The Who calls whom table shows all of it. Undertale’s Sans calls the player “kid”, and also “buddy” and “pal” (Undertale Wiki). The name a character uses for you tells you who they are before you see the portrait.

5. Under stress

Decide how each voice breaks when things go wrong, and make each break a different way. When the dock lurches, the flat side just gets louder. On the right, quiet Brick floods: “Boss, get behind me, all of you, behind me…” Pip stops joking: “No bet. No biscuit. Just run.” Talkative Maren goes short and cold: “Warden. You will step away from the edge. Now.” Warm Odile gives orders. Maren’s typeface also hardens, borrowed from Sans, whose lines are usually in Comic Sans but switch to the default font when he explains the rules or threatens the player (Wikipedia). Press Shake the dock to trigger it yourself.

Test it with the names covered

You can’t judge a voice by reading it with the name attached; your brain fills in the speaker. Brunette Games puts the test simply: can you tell which character is which without seeing their names (Medium)? The skill turns that into numbers:

  • Strip the names from 10 to 20 lines per character, shuffle them, and have a fresh reader or a separate agent guess. Aim for 80% or more. Ours got 88%.
  • Rewrite any pair that’s confused more than one time in five.
  • Compare average words per line. If two characters are within 10% of each other, change one’s rhythm. Ours ranged from 6.1 (Brick) to 11.4 (Maren).
  • Go easy on tics. Toby Fox planned more skeleton puns for Sans and cut them as not funny enough (Wikipedia). Use a catchphrase a few times per chapter, not every line.

How the lines look on screen matters too; see game dialogue box design.

Add it to your game

  1. Copy the skill at the end of this page into your project.
  2. Ask your agent: “Make each character in my game sound like themselves.”
  3. Read it, then tune in plain words: “Pip jokes too much in the sad scenes.”

Art in the demos: Animal Pack Redux by Kenney (CC0). Fonts: Atkinson Hyperlegible by the Braille Institute of America and Fraunces by Undercase Type (both SIL Open Font License 1.1).

The skill that made it work

This is the whole skill we gave Claude Code. Copy it into your project and ask your agent to give each character their own voice. It keeps every voice in one bible beside a flat draft, and the last step makes it run a blind guess-who-said-it test instead of trusting its own ear.

character-voice
  1. Find every line a character speaks, including barks. List the cast and what each does for the player (shop, healer, quest giver).
  2. Keep one voice bible as a single settings object, one entry per character with a named field for each trick below, and keep a flat draft beside the voiced lines so each trick can be switched off and compared.
  3. register. Set how formal and polite each one is and the words they reach for. A scholar says "I'd advise against that." A dock worker says "Don't." Plain, neutral spoken English unless a dialect is chosen on purpose.
  4. rhythm. Give each a typical sentence length: one speaks in 4 to 8 words, another in long sentences with asides. Short lines are still full sentences; clipped fragments belong to one or two gruff characters at most.
  5. verbal-tics. Give each one or two pet words, a topic they keep bringing up, and at most one catchphrase. Use the catchphrase a few times per chapter, each time escalated or turned, never to repeat what the scene just showed.
  6. address. Decide what each calls the player and everyone else, and never share a nickname between characters. Undertale's Sans calls the player "kid", "buddy" or "pal".
  7. under-stress. Decide how each voice changes when things go wrong: the joker stops joking, the polite one gets colder and more formal, the talker goes quiet. When Sans turns threatening, even his font changes.
  8. Measure it. Strip the names from 10 to 20 lines each, shuffle them, and have a fresh reader or a separate agent guess who said each. Report the share guessed right (aim for 80% or more) and every pair confused more than 1 time in 5; rewrite those pairs. Also report each character's average words per line: if two are within 10% of each other, vary the rhythm.

Save it as .claude/skills/character-voice/SKILL.md in your project. Or connect your agent and type /aigamedev: it loads this skill with its reference files and the results from this post.