How to write a branching narrative and won’t lose your mind
What is the most challenging aspect of video game writing? Imagine that Harry Potter can decide not to go to Hogwarts. Or Frodo decides to keep the ring and become the best thief in the Middle Earth.
Traditional media like books or movies usually don’t allow the audience to shape the story. Video games are different. Players not only participate in the action but may also influence how the story resolves. At least in some games: a branching narrative is such a tricky area that many games just stick to linear storytelling instead. And that’s often a good choice!
But today, let’s talk about how to provide players with a decision space inside a game story without losing control over it.
I became interested in that topic because I started a small side project: a text-based game in which naturally navigating a branching storyline is the main game activity (you can read more about the project itself in one of my previous posts here).
Of course, just after I got the idea for the game, I jumped straight to writing. I have written some stories in the past, so it should not be that hard, right?
I was wrong and quickly got lost in the jungle of overgrown story branches, ideas, and possibilities.
Two main challenges were:
How do I provide freedom of choice for a player while telling a consistent story?
How do I make sure that player won’t miss the important information?
I searched for advice from people more experienced in that field and found an insightful series of articles by Alexander Freed (you can find them here). There are many useful tips there, but I will cover only the most useful ones from my perspective. I encourage you to dive into the whole series if you are interested in the topic!
Let’s start from the beginning. And in the beginning, you should think about…
STRUCTURE
Even if it isn’t obvious at first glance, branching conversations can be quite different from each other. The most important finding for me was that they generally could use two different flows:
Hub and spoke
Waterfall
They are often mixed up, even in the course of a single conversation, but for more clarity, let’s talk about how they look separately.
Hub and spoke structure was often used in traditional RPGs. It assumes that an NPC serves as a source of knowledge for a number of topics, and players can ask about any of them in any order. After discussing the selected topic, the conversation returns to the list of topics, and the player can speak about something else.
Alexander Freed gave a good example of such dialogue:
“NPC: What did you want to know about?
Player Option 1: Tell me about hubs.
Player Option 2: Tell me about waterfalls.
Player Option 3: Tell me about ornithomimids.
[Player selects option 1.]
NPC: Hubs are useful, but they don’t exactly sound natural.
NPC: Have you ever actually played a game with hubs and said, “That was a realistic conversation”?
Player Option 1: Actually, I have.
Player Option 2: Realism isn’t everything.
Player Option 3: Point taken.
[Player selects option 2.]
NPC: I suppose.
NPC: That’s enough of that, though. Did you want to know anything else?
Player Option 1: Tell me about hubs.
Player Option 2: Tell me about waterfalls.
Player Option 3: Tell me about ornithomimids.”
The hub structure is a convenient way to provide all necessary information and allow players to have control over dialogue flow. But as you can see in the example above, it’s far from how we talk in real life.
This is where the waterfall structure comes in.
As the name suggests, the player is carried by a stream of conversation. After choosing one of the options, the conversation advances to another choice. Choices that weren’t made are lost forever (which, in video game language, usually means the next playthrough).
This type of structure works best with games that want to achieve a cinematic feel and show the weight of your choices, like Telltale’s or Quantic Dream’s games.
It also lets players imagine that conversation could go in a number of different directions, which supports the fantasy of having a real influence on what is happening in the game.
Of course, this could be ruined in consecutive playthroughs (Telltale games again may serve as an example), but it is not necessarily a problem for the majority of players (statistically speaking, most of them won’t finish the game even once).
The disadvantages of a waterfall structure are the same as those of real conversation—they easily become chaotic, digressive, and unbridled.
The main challenge for a writer is ensuring that players get all the necessary information, no matter what options they choose. The most obvious choice is to try to develop all branches equally, but this isn’t sustainable in the long run.
Just look at the example: let’s assume the player has 3 options each time the conversation branches. It means that after the third choice, players can choose 27 different possible options :
That’s why a critical path is a very useful tool when preparing branching narration. It’s a part of the conversation that every player sees, no matter what. Such a dialogue’s backbone should contain only the most crucial story beats, which are the main purpose of the conversation. Most of the branches should eventually return to the critical path, which makes this structure look more like this:
This doesn’t mean that players’ choices are illusionary!
You still should have choices that meaningfully branch the main storyline, but they should happen only at moments important to the story. Putting too much effort into trivial scenes may lead to a lack of time to give enough variety and freedom when it’s actually needed and expected.
Besides, the fact that some choices don’t have impactful consequences doesn’t mean they are unimportant. These choices allow a player to express how the protagonist perceives the world around them, who they are, and what they want. In other words, they allow for role-playing.
The most important story happens in the player's mind, and good dialogue options would encourage that, even if that doesn’t change anything in terms of literal events.
To make your dialogues more effectively fulfilling a fantasy of playing a certain character, the good idea is to decide which archetypes your story supports. Think about who your player would like to be in your game:
Noble knight?
Vengeful warrior?
Reckless adventurer?
Clever trickster?
Calm diplomat?
You don’t need to change the plot to give an opportunity to play different characters. Saving a kingdom becomes a different story when the hero, instead of being a flawless savior, constantly makes snarky comments and has a cynical attitude toward the world.
There is no need to always provide a unique option for every supported archetype, but make sure that the player always has the possibility to choose something that is at least NOT contradictory to their image. Linking that with the regular possibility of saying something that fully fits the role will create a feeling of being a coherent character with a distinctive personality.
Another smart method for creating a feeling that a player’s choices are important are variables. If you are familiar with programming, you already know this term. Let’s explain it with an example:
The main hero talks with the Blacksmith NPC and makes a joke about the NPC being too not very smart. The variable called “offended_Blacksmith” is created and set as true. Later on, the player may ask about fixing his armor and:
if “offended_Blacksmith” is true, NPC will make a joke about the main hero not being smart enough to avoid damaging the armor
if “offended_Blackmith” is false, NPC will just neutrally say the price of fixing the armor
Variables are a very effective way to convince players that the world reacts to their actions. It’s just a different line instead of making a whole branch of events, but when players see the game respond to their past behavior, it makes the world more believable.
Moreover, they are quite flexible. For example, in the story above, you may want to set the “offended_Blacksmith” variable to false when the hero saves the whole village from a dragon—it may feel off if Blacksmith still holds a grudge after that.
You might also use gameplay statistics as variables, such as the level of the character, the amount of money, the weapon, the weather, or the time since the last conversation. All of them may make the conversation more responsive and unique.
Just be careful not to make too many of them—while they are cheaper to make than branches, they still add complexity to your dialogue that needs to be maintained and tested.
There is one more thing that you should not forget when creating a branching dialogue.
Perhaps it’s the most important one.
It’s a story.
While having a lot of constraints, it’s easy to forget that the dialogue needs to be exciting.
When trying to be as informative as possible, the whole scene may miss any tension.
When presenting information about the world, dialogue may no longer be personal and emotional.
I know it’s easier said than done, but the story is why any dialogue occurs. Remember that any goals you have while writing a particular conversation shouldn’t override the main one—allowing players to experience the story they won’t forget.
Because it was their story.
Curious to know more? Check it out:
All articles by Alexender Freed about writing at GameDeveloper.com
GDC talk by Josh Sawyer: “Choice Architecture, Player Expression, and Narrative Design in Fallout: New Vegas”
A short story by Jorge Luis Borges called The Garden of Forking Paths (an experiment on branching narration released back in 1941!)
Aisle is an interaction fiction game made by Sam Barlow (Her Story, Immortality). It has an extremely horizontal narration structure: you can make only one choice, but the number of options is enormous. You can play it here.
Interesting stuff to think about. Baldur's Gate 3 would be the obvious example for how to do this well, although it had to have taken a massive amount of effort to build so many different branching paths that took into account the type of character the player built, their actions throughout the game, the various developments in the plot, and so many other variables.
Very good read! I will have to return to that article, when I'm designing a dialogue system!