Writing branching Game Conversations the easy way – approach from my indie game

Here’s my approach to writing complex, branching, and meaningful conversations in my indie adventure game Postmortem: one must die. Took many attempts to figure out a good way so sharing the lessons!

Our Game got often complimented for its intricate dialog:

“… example of how to write nuanced characters with a reach into complex late-game branching narratives … which happens little elsewhere in videogameland.”

PCGamer.com, Cara Ellison

“… magnificent game for politically interested people and players who enjoy getting shown the consequences of their actions.”

Rebell.at, Tom Schaffer

… so I thought we’d share our “secret”!

0. The Editor – setting yourself up right

Postmortem Conversation System
My visual node-based conversation system with scripting

For writing the conversations, I wanted something visual and node based, but did not want to reinvent the wheel. So I used the awesome free yED Graph Editor for the task, using the “node description” field as sort of metadata about the node type (i.e. nodetype=”npc_says” or nodetype=”player_response”). I then created several templates with distinct visual styles to help differentiate. I used pugiXML to parse the actual .graphml files used by yED and pretty quickly I had a workable, yet powerful, node-based, scripting-supporting conversation editor.

1. General Concept

Start off with just general idea of who the character is, his background, how they fit in the world etc. Refine and flesh out until you have a clear idea of the person. Also consider how picking/not picking them affects the endgame results and concepts and how the character can be influenced by the player or in-game events.

For example, Seldon can be influenced to be more pro-Oldager which passes Connely 5-Point Plan but lowers Life Quality overall (higher production costs = higher prices), or more pro-Newager which angers TFF spiking violence, but prevents Franz from becoming his HR head and thus does not hold back women empowerment as much.

2. Distill and Make game-ready

Now that you have a wealth of notes, it’s time to get them ready for in-game! Distill all your notes into bullet points of “things that need to be communicated” at some point in the game (via conversation with them, conversing with others about them, notes, journals, cutscenes, etc.) Also include how they affect the ending and others.

3. Conversation Outline

Postmortem Game Conversation System
Conversations – the “big picture”

My general approach for a conversation is having one or two main long “branches” of a convo that the player is almost forced to go through. This ensures that:
a) the player gets all the key information they need; and
b) the player makes choices that influence the character.

This is an important design principle that ensures player does not miss key points (if they decide to converse with a character). If you look at the “big view” of the conversations you can clearly see those branches.

4. Narrative Beats and Branching Filler

Postmortem Game Conversations
Distilling Key Points into Key Nodes

Start off writing key nodes – nodes that will either convey the essential bits of information (each bullet!) or ask the player a question that will influence the character. To the right is an example of how how my bullet list translated to key nodes.

Now it’s time to add branching filler nodes to string the key beat nodes into a properly flowing conversation while offering different, meaningful choices. The best way I found it is to add a few brief, but branching nodes between and use scripting to have the NPC “remember” what was said, impacting ending. But bring the branches back on the same topic in time for the next key node (narrative beat).

Postmortem Game Conversations: Beats and Fillers
Beats & FIllers

You may need to reword, reorder or split nodes to make this work. Also use this branching filler as opportunity to reveal more about the character, get him arguing with the player, etc.

5. Non-essential side branches

Now that the core of the conversation is done, you can add other branches like “ask about somebody” or “ask about conflict.” This is usually much briefer and draws directly from your notes.

Note: Avoid important plot or endgame-influencing nodes in these auxiliary branches as the player is far more likely to miss or forget them if they are buried somewhere.

6. Test, Refine, Repeat

Now that you got the conversation down, run through it ingame picking different options to see if it flows. Find bits that are jarring and smooth them out, maybe separate a big chunk into a different branch, maybe take away a few boring nodes. Have others look at it too for some clean, unbiased feedback.

Read about our OTHER Tools and Resources right here!

6 thoughts on “Writing branching Game Conversations the easy way – approach from my indie game

  1. Thanks for this article! It’s awesome!
    I am currently working on a point and click adventure and yEd Graph is exactly what I was looking for,

  2. Awesome, I’ve been looking into similar software over the last couple of weeks but I always felt that the various solutions were too complicated or simply lacking vital functions, so this is perfect!
    (I am currently working on an action/adventure-game with tons of dialogue.)

Comments are closed.