Storytelling in Open World Games, Part 2

Writing Character Dialogue

11 min readFeb 1, 2023


In my earlier article on storytelling in open world games, I focused primarily on story arcs and quests. In this segment, I want to drill down on the details of writing character dialogue.

Much of the gameplay in an open world game entails interacting with other characters, particularly in conversation. A compelling dramatic experience requires that we empathize with the characters in the story, and one of the best ways of learning about those characters’ troubles is to talk to them.

(A note on terminology: in my own work, I use the word spelled “dialogue” to represent a body of spoken text, whereas the word “dialog” refers to a dialog box, a pop-up user interface element.)

Finding the character’s unique voice

An important challenge for a writer of any prose, not just computer games, is creating characters that are interesting to listen to, ones that have a distinctive “voice”. Even for a character whose only reason for existence is to inform the player of certain important facts, the dialogue must be something more than just a dry “info dump”.

For medieval fantasy games, this often involves characters speaking in archaic accents (apparently all Dwarves are Scottish now) or using antiquated phrasing. But a more subtle, and often more effective, way is to allow some of the character’s feelings to color the content of the text.

I once read a book on dialogue which advised writers to never give a straight answer to a question. For example:

“Do you live around here?”
“If you call it living.”

Notice how much less interesting it would have been if the character had simply responded with “Yes.”

Balancing between informative and reticent

Part of the function of character dialogue is to educate the player about important things about what is happening in the world. But it’s important not to reveal too much too soon. Ideally, you want the player to work for it. Give them enough to whet their appetite, and then let them uncover the rest as they explore the world.

Limiting the flow of information is also a key part of drama. Part of what makes a thriller thrilling, or a mystery mysterious, is that the clues are given out in dribs and drabs, not plopped in the audience’s lap all at once. It’s about building tension — and then releasing it.

Basic Dialogue Structure

Most game engines model dialog as a menu of choices representing possible things that the player can say. The flow of interaction generally proceeds as follows:

  1. The dialogue is initiated via player action, possibly by clicking on the character they wish to speak to in order to gain their attention. (In some cases, the dialogue is initiated by the non-player character, interrupting whatever the player was doing.)
  2. The non-player character generally speaks first, often with some preparatory or introductory remarks: “Yeah, whadda you want?”
  3. At this point the player is presented with a menu of possible utterances. These are generally short phrases or sentences. Except in the context of a non-interactive “cut scene”, the player’s avatar rarely gives long-winded speeches.
  4. Each clickable option has an effect. Most of the time, the effect is to cause the non-player character to utter additional dialogue. Once this dialogue is complete, the player is once again presented with a menu of choices.
  5. Some player choices may cause additional effects (described in a later section).
  6. In most cases there will be a “goodbye” option that terminates the conversation and allows both the player and non-player to go about their business.

It’s important to give the player the option of quitting the conversation, even if it has not completed. In many game engines, the “conversation” mode is exclusive — meaning that the player cannot perform other game actions while they are engaged in a dialogue. A player may decide, for whatever reason, that they are not ready to face the consequences of choosing a particular conversational option; we don’t want the player to feel like they are forced to continue if they are not ready. Giving them an “exit” option means that they can continue normal gameplay, and then return to that dialogue later when they are better prepared.

Even if the player does exit the conversation, the non-player character often gets the last word: “Well, it was nice meeting you.” Just like any other user-interface action in a game, feedback is important — it’s good to give some kind of visual or audible confirmation of the player’s choice.

You may also have noticed that in a lot of games, player avatars generally don’t say all that much. In some cases this is an established part of their “gruff” character (paging Geralt of Rivia…).

However, the lack of loquaciousness also helps with the sense of immersion. As Scott McCloud points out in Understanding Comics, we tend to have an easier time identifying with, and projecting ourselves into, a character that doesn’t have a lot of details, because the more details a character has, the more those details are likely to be at odds with our own idealized self-image.

Advanced Dialogue Structure

A key character may have a lot of different things to talk about. Unfortunately, depending on the design of the game’s user interface, we can’t fit more than 5 to 10 conversational options on screen at one time. To solve this, we need to introduce the idea of what programmers would call a “state graph” or “state machine”, but for purposes of this essay I will call “subtopics”.

The idea is fairly simple: when we first engage with a non-player character we are presented with a menu of choices, but some of those choices represent sub-topics: “Tell me more about Lord Sauron.” Clicking on this conversational option will present the user with a different menu, one containing conversational choices that pertain to that subtopic. (If you’ve ever used a voicemail system with nested submenus, you’ll be familiar with the concept.)

A character may have multiple subtopics in their conversational repertoire. Some conversation options may cause a jump from one subtopic to another, or will “back up” to the “main menu”.

If all this seems very mechanical, it is. Part of the job of a writer is to make it seem less mechanical and more natural.

At this point, an alert reader might object: “Didn’t you say in the previous article that branching stories are generally to be avoided? And isn’t this conversation state machine in fact a branching story?”.

The difference, here, is that additional dialogue is relatively cheap from the standpoint of production costs. Being able to choose outcomes does give the player a sense of agency and control, so allowing branching — in moderation — is all right so long as it doesn’t break the budget.

Sometimes you’ll also see examples of Crawford’s fold-back branching — two dialogue choices that have exactly the same effect. The player is offered the illusion of choice, but this freedom is only a mirage. Although Crawford considers this a flaw, I consider it a legitimate design choice, best used in cases where the player cannot detect the deception (such as a dialogue which is only offered once). You can see an example of this in the intro to Mass Effect 2, where Shepard is escaping the wrecked Normandy — several times the player is offered a choice of dialog options, but which option they choose doesn’t matter.

Avoiding Repetition

In many cases, once the player has selected a dialogue option and the non-player character has responded, the player is then returned to the same menu of options as before. This means that the player can select the same conversational option repeatedly. This is particularly helpful if the non-player character is giving complex, detailed information about a quest and the player is having trouble remembering it — especially if it’s been a while since they first accepted the quest (they have been busy…working on, other stuff, ya know?)

However, in some cases it makes no sense to offer the player the same conversation repeatedly. Asking the character “What is your name?” over and over again is just rude. Asking the character for details about a quest that has already been completed is just a waste of time.

There are several ways to solve this. One is to simply not offer those choices again — once you’ve asked the character their name, that option is no longer presented to the player.

Another design choice is to visually “dim” the option, letting the player know that there’s nothing more they can learn by choosing that option.

Conditional Text

The idea that dialogue responses can be hidden, based on programmatic logic, goes beyond merely checking to see which options have previously been chosen. Depending on the capabilities of the game engine, a variety of different conditions can be checked to determine whether or not a specific conversational option should be displayed, including but not limited to:

  • The completion status of a particular quest.
  • The player’s reputation with a particular faction.
  • Which sub-topics have already been visited.
  • Who else you have already spoken with.
  • Which passing remarks you may have overheard or eavesdropped on.

Note, however, that someone on the development team will need to determine, for every possible conversation, what conditions apply to each dialogue choice in that conversation. This is a substantial amount of work.

Whether this work is done by the writer, the game designer, or the programmer will depend on the breakdown of responsibilities for your team. But this work must not be neglected — someone has to do it.

Conversational side-effects

Most dialogue choices will lead to…more dialogue. However, clicking on a dialogue choice can have other effects. For example, selecting “DIE, WITCH!” will most likely lead to the other character becoming aggressive and trying to attack you.

Other common conversational side-effects include:

  • Accepting a quest (“Sure, I can go check out the old Monastery.”)
  • Rejecting a quest (“I don’t have time for that right now.”)
  • Adding an item into your inventory (usually a quest item).
  • Removing an item from your inventory (“Here are those reagents you asked for”).
  • Unlocking a locked door or chest.
  • Teleporting the player to a new location.
  • Triggering a cut-scene.
  • Increasing or decreasing the player’s reputation with a particular faction.
  • Giving the character a bonus to skills or experience.

In fact, character dialogue is often uses as a catch-all mechanism to handle any kind of story mechanics or logic that is not supported by the main game engine. So if you, as the designer, want to have a scene whereby the player stops someone from, say, taking a fatal dose of poison, but you don’t have a “poison” feature in your game engine? Just stick the action into a dialogue!

Non-conversational Dialogue

Not all character dialogue happens in conversation with the player. Sometimes characters make passing remarks as they walk by: “I was an adventurer like you, until I took an arrow in the knee.”

Other times you may overhear conversations taking place between two or more non-player characters. The game engine will flag the fact that you were in earshot when this conversation happened; that condition may affect which conversation options are available, or it may cause a quest to advance to its next stage.

The problem of “clues”

One of the hazards of being known as a game developer is that people you meet will often suggest to you ideas for games. Often times these suggestions are quite detailed, and yet betray a misunderstanding of how games work.

“Well, what if your character travels to location A where they find a clue that leads them to location B; and this leads them to location C where they find another clue…”

The premise being put forward here is that the story cannot progress until the character acquires some vital piece of information. Unfortunately, this can be very frustrating for the player who already knows what the information is. This may be because the player has already played through the game before; or it may be that the solution is simply obvious enough that most players will guess it ahead of time. (Foreshadowing will do that for you.)

The player knows the information, but the player’s character does not — this creates a cognitive disconnect that’s not much fun. In effect, it’s a loss of immersion, a disturbing lack of synchronization between the fictional brain and the real one.

How to avoid this? A common design approach is to make the “clue” a material object rather than an abstract piece of information — a bloody knife, a fragment of a torn dress, an elven cloak clasp dropped on the ground, and so on. Hard evidence rather than a mere accusation. To the extent we can manage it, we don’t use pure information as currency within the design of the game — rather, we concretize these game tokens as much as possible.

However, we’re swimming against the tide here — we can’t always turn everything into a material object, because of the way fiction works. Many of the best stories hinge not on the acquisition of a material object, but on a change of perspective of either the protagonist or the antagonist. A purely abstract, cognitive shift.

A different approach to the “clue” problem is to try and mitigate the amount of player frustration, by reducing the amount of time they are blocked. We can go ahead and use information, or lack of it, as a critical component in a quest, but arrange things so that the duration of this stage of the quest is relatively short. That way, there’s less time for frustration to build up.

Here’s a concrete example: Suppose you overhear two gentlemen talking about the fact that the innkeeper’s father once went on an expedition to find the lost treasure of El Dorado. So you go to the innkeeper and start a conversation, and sure enough there is a dialogue option where you can ask about the treasure. This dialogue option won’t appear until after you have overheard the conversation — after all, it would seem pretty odd to have a dialogue choice asking the innkeeper about El Dorado if you didn’t already know that the innkeeper and El Dorado were somehow connected.

However, in the second play-through, you already know they are connected. So you go to the innkeeper directly — and the option is not there! You, the player, know that the innkeeper and El Dorado are connected, but your character doesn’t.

This is not a problem if the two gentlemen are in the same inn — all you have to do is walk to the other side of the room, stand there for a few moments until the clue comes up, and then walk back to the innkeeper and ask them the question. But if you have to walk half-way across the world to get the clue, then the situation becomes much more problematic.

Go easy on the pop-culture references

This last point may be more of a pet peeve of mine, but I’m going to mention it anyway. I’ve seen a number of games ruined by the fact that the writers simply couldn’t resist putting in references to Monty Python, Mel Brooks’ films or Frank Zappa lyrics. That’s fine if the game is meant to be a comedy, but for a work that is supposed to be serious drama it’s a jarring distraction.

References to classic literature are a somewhat different story. Most people will recognize the phrase, but won’t know where it’s from. And to be honest (and a bit snobby), one can hardly write English prose without cribbing metaphors from Shakespeare, Milton, or the King James Bible. (I remember the first time I saw a presentation of Hamlet — my somewhat ironic comment was, “Oh my God, it’s full of clichés!”. Except that they weren’t clichés then.) Worst case, it will just make your dialogue sound classy.


The craft of writing for games is one that can be extremely rewarding, both from a creative standpoint and (sometimes) materially as well. Good dialogue can make or break a game. I hope this essay has provided insights that will help you on your journey.

See Also




I’m not a mad scientist. I’m a mad natural philosopher.