My colleague Clara Fernandez-Vara pointed me towards this great game writing talk by Jon Ingold this year at AdventureX, an excellent narrative design conference in London.
(NOTE: This post isn't a transcript of Ingold's talk. It's a summary with my interpretations, and I might be wrong or misunderstanding.)
Ingold begins with something that should be obvious and uncontroversial to everyone: generally, most video game dialogue is poorly written. This isn't to say video games are bad, or that they we shouldn't try to do any dialogue at all. There are also many reasons why game writers are forced to write poorly, whether it's because of lack of resources, or last minute changes in the design, or other production constraints, etc.
The point is not to blame writers. The point is to highlight a problem in the craft and to define a better ideal. So, how can we write more competent game dialogue that is slightly less embarrassing?
To demonstrate the problem of typical video game writing, Ingold shows us this conversation from the first hour of Assassins Creed Odyssey in the starting mission "So It Begins":
(For the transcripts in this post, I use Yarn-style notation. "->" marks a possible player choice, and the indented lines signify the branching dialogue for that choice.)
Kassandra: All right. Then do you have the money you owe me? Markos: Do I have the money I owe you? Of course. Of course. Well, no. Not at the moment. Kassandra: Then - get - it. Markos: Instantly, my friend, instantly. But - maybe you should do that. There is a merchant in Sami - Markos: I'm not very good at these things as you know. Kassandra: You want me to collect my own debt? Markos: It's just waiting for you in Sami, my friend. Kassandra: Who's the merchant? Markos: Duris. You know Duris. He's very nice. // first set of choices -> You're too kind to Duris. Kassandra: Duris? Again? Why do you keep lending him money? Markos: He's a loyal friend. I don't want his family to starve. Kassandra: You're a good friend, but you're bad with money. -> Stop giving Duris money. Kassandra: Duris? How stupid can you get? Stop giving him money! Markos: He always pays me back. Kassandra: After I threaten him. Markos: Exactly - everybody benefits. Duris gets his money. I get my interest - and you have work. Markos: Kephallonia is wonderful, is it not? // second set of choices -> I want my drachmae (money). (some branching dialogue) -> How should I handle this? (some branching dialogue) -> Where is Duris? // this is what most players choose Kassandra: Where can I find Duris? Markos: In a shop in Sami overlooking the docks - you know this Kassandra.
Pay attention to how repetitive that conversation is. Do you have the money you owe me? (Do I have the money I owe you?) What's the merchant's name again? (Duris. Duris. Duris.) Where is he again? (Sami. Sami. Sami.)... (You know this, Kassandra!)
This isn't the worst dialogue. The animation is nice enough and it even has some humor, but Ingold argues this scene doesn't go anywhere. It just keeps repeating the same information over and over, staggering and stumbling. What is this scene for, dramatically? It's not doing any dramatic work.
We can contrast this aimless style of "writing for gameplay" / writing for player information retention, versus another tradition of dialogue writing: the film script. To demonstrate better writing, Ingold picks out a scene from an old random obscure film called "Blade Runner" ("which is about robots or something")... and specifically this is the owl scene where Deckard meets Rachel:
Here's the dialogue from the video clip above, separated into five narrative beats:
Rachel: Do you like our owl? Deckard: It's artificial? Rachel: Of course it is. Deckard: Must be expensive. Rachel: Very. Rachel: I'm Rachel. Deckard: Deckard. Rachel: It seems you think our work is not of benefit to the public. Deckard: Replicants are like any other machine... Deckard: They're either a benefit or a hazard. Deckard: If they're a benefit, they're not my problem. Rachel: May I ask you a personal question? Deckard: Sure. Rachel: Have you ever retired a human by mistake? Deckard: No. Rachel: But in your position that is a risk? Tyrell: Is this to be an empathy test? Tyrell: Capillary dilation? The so-called blush response? Tyrell: Fluctuation of the pupil? Tyrell: Involuntary dilation of the iris. Deckard: We call it Voigt-Kampff for short. Rachel: Mr Deckard, Dr Eldon Tyrell. Tyrell: Demonstrate it. Tyrell: I want to see it work. Deckard: Where's the subject? Tyrell: I want to see it work on a person. Tyrell: I want to see a negative before I provide you with a positive. Deckard: What's that going to prove? Tyrell: Indulge me. Deckard: On you? Tyrell: Try her.
It's important to note here that this isn't even a super smart "art film". Blade Runner (1982) was a big-budget sci-fi movie ($73 million budget in 2018 dollars) with lots of special effects and action setpieces and a famous actor, the Hollywood equivalent of an Assassins Creed. It is very commercial and mainstream and relies heavily on noir tropes, yet still, the writing does so much more work than the typical blockbuster video game. Just notice how many fewer words it uses, versus Assassins Creed's annoying repetition, and yet so much more happens in the film.
At this point in his talk, Ingold declares that he's going to try to adapt this Blade Runner owl scene into an interactive game dialogue! You can actually play through Ingold's adaptations here, and you can also download his Ink script source files here.
His first draft shows a typical video game approach: over-explain with zero subtext or stakes. Everything must be said, and we leave nothing unsaid.
Deckard: Hello. I'm Deckard. Rachel: Hello, Deckard. Rachel: You're a Blade Runner, aren't you? Rachel: That means your job is to hunt down replicants and kill them. Rachel: Sorry. Retire them. (LoopStart) -> Replicants are like any other machine... Deckard: Replicants are like any other machine... Deckard: They're either a benefit or a hazard. Deckard: If they're a benefit, they're not my problem. Rachel: I feel much safer now. [[goto LoopStart]] -> What do you think? Rachel: I think replicants are the greatest things mankind has ever created. Rachel: We're like Gods now. Rachel: Did you ever stop to think about the implications of that? [[goto LoopStart]] -> Tyrell wanted to see me. Rachel: Here he comes now. (continue)
This is adequate for a video game, but if we hold ourselves to a higher standard, then this is actually bad writing and has quite a few problems:
- Why is Rachel explaining what blade runners are? Everyone in this fictional world already knows what blade runners are. Game writers do this expository lore review stuff all the time, and it always feels bad.
- Ingold points to "What do you think?" as the classic video game "they've given me a choice!" type of non-choice, a meaningless option for the sake of offering options to the player. It's so random, it has no context. This is what you say when you can't think of anything else to say.
- "Did you ever stop to think about the implications of that?" is some perfectly terrible video game dialogue that asks a really obvious basic interpretive question of the player, a question that is literally the point of the entire story. Who actually talks like this? Anyone who asks you this in real-life is probably an asshole.
- Then in typical video game fashion, the player character ignores the question asked of him.
Rachel: Do you like our owl? Deckard: It's artificial? Rachel: Of course it is. Deckard: Must be expensive. Rachel: Very. Rachel: I'm Rachel. Deckard: Deckard.
What is happening here? Are these characters interested in making small talk about the owl, or are they actually talking about something else?
We must read between the lines, we must read the subtext. And here, Ingold argues this dialogue is about Deckard and Rachel sizing each other up, circling around each other warily, gradually escalating the tone. If we were to "translate" their actual subtextual meaning into words, the script might look more like:
Rachel: I'm better than you. I literally own an owl. Deckard: That's a shitty fake owl, I'm not impressed. Rachel: No one cares if it's fake. I'm rich. Deckard: Rich people are shitty and tasteless. Rachel: Rich people are rich. We're still better than you. Rachel: By the way, I'm Rachel. One word, like Beyonce. You know who I am. Deckard: I'm such a bastard I'll use fewer words than you, watch -- "Deckard."
Ingold notes that this is all a film noir trope. If you watch a noir film, there's always a scene where the detective talks to a rich lady about a crime, and the rich lady coyly deflects. Rachel is type of femme fatale. Tropes are OK, but at least you should execute the trope beautifully, and Ingold thinks Blade Runner does a beautiful job because of all these unspoken power dynamics in the script and performance.
Meanwhile, the video game version missed everything. So how we get some of that beauty back into the game?
In this last section of the talk, Ingold wants to demonstrate his game writing process for us. (Ingold's disclaimer: as with all writing advice, it's bullshit, but hopefully it's useful bullshit.)
Ingold usually likes offering 3 types of choices. (Two is too binary as if there's a correct choice, and four lacks focus.) In game design, you could liken this to a rock / paper / scissors typology, or an attack / block / parry swordfighting system. The goal is to offer the player some room for expression, but still signpost how this will escalate or progress the conversation.
He calls this pattern Accept / Reject / Deflect:
- Accept: follow the current topic, answer their question, be cooperative and relevant.
- Reject: go on the attack, you've had enough of this nonsense.
- Deflect: escape the confrontation or change subject, like a "joke option" but not a joke so it doesn't break the tone of the scene.
As an example, here's how Ingold workshops the next part of the dialogue. For the sake of clarity, I've labeled the choice types:
Rachel: I'm Rachel. -> Deckard: Deckard. (ACCEPT) -> Deckard: I'm here to see Tyrell. (REJECT) Rachel: He's a busy man. [[goto NextScene]] -> Deckard: What do you do here, Rachel? (DEFLECT) Rachel: I'm Tyrell's niece.
Choosing "I'm here to see Tyrell" (Reject) skips all this small talk from the beginning. Ingold says this "trapdoor" is useful for players who want to skip ahead, and it's also a valid thing to express in a conversation. ("A: Do you like our owl? B: I'm not here to talk about owls.")
(LoopStart) Rachel: It seems you think our work is not of benefit to the public. -> Deckard: Replicants are like any other machine... (ACCEPT) Deckard: They're either a benefit or a hazard. Deckard: If they're a benefit, they're not my problem. [[goto NextScene]] -> Deckard: You could make them better. (REJECT) Rachel: Our replicants are perfect. Rachel: More human than human, that's what Dr Tyrell says. [[goto LoopStart]] -> Deckard: What do you think? (DEFLECT) Rachel: It doesn't matter what I think. [[goto NextScene]] (NextScene)
Choosing "You could make them better" is a direct Reject attack on Rachel, so she has to push back -- and she pushes back so hard that she boots you back to the beginning of the interactive loop. Ingold argues this punishing use of a loop is very effective; the player feels their progress being reverted and their choice undone, as if they hadn't said anything at all. That is how powerful Rachel's response feels: if you are going to attack her competency, she will shut you down.
To me, this is the key takeaway from Ingold's talk. Loops slow down dialogue, trapdoors speed up dialogue, and both of those patterns tell you about the characters' mood and tone. Your use of branching structure is a form of characterization.
Now consider this excellent list of branching structure patterns by Sam Kabo Ashwell and/or Emily Short. Ashwell says this about "time cave" structure (pictured above):
The time cave is the oldest and most obvious CYOA structure. It is often good for narratives about freedom and open possibility, adventures that could go anywhere, flights of fancy. Time caves tend to have relatively short playthroughs, but strongly encourage replay: they are broad rather than long. Even with multiple playthroughs, most players will probably miss a good deal of the content.If you adopt a time cave structure for your story, maybe that means your narrator is over-analytical and sees too many possibilities. Or if talking with an NPC feels like a time cave, maybe that means they're complicated and unpredictable.
The time cave’s structure is both organised by chronological progression and detached from it. It’s ungrounded by regularity: possibility is so open that it often becomes fantastic or surreal, with different branches occupying wholly different realities. The player has velocity but little grasp, vast freedom but little ability to comprehend it.
Ingold's point can be applied to any branching structure, and helps us think about what our branching pattern communicates. Branching is action, action is character, character is drama.
* * *
Now I'd like to end this post with an important question: WHY is most video game dialogue usually so bad? What are the social, cultural, and industrial conditions that allow bad dialogue to keep happening?
For instance, many AAA game writers know the writing is bad, but they can't change or fix anything because industrial game development demands impossible things from them. It reminds me of this 2015 write-up of a WGA panel ("Honest tales from the trenches of AAA game writing") featuring three established game writers on their work:
Druckmann, seeing Krawczyk’s putting a finger gun to her head at the mention of ambient dialogue, asked all three to share the most difficult part of their writing process, and for all three, the biggest nightmare was bark dialogue, (ambient dialogue enemies shout to alert players to gameplay clues), and expository directives (characters muttering to themselves something like “I need to go through that door!”)Gamers recognize enemy barks for what they are, as narrative assets conveying game state. They have trained themselves to scan all "narrative content" like this (conversations, cutscenes, readables) for gameplay-critical information, and not to "read" anything in the traditional sense.
Fixman said he struggled to keep directives that came out of playtesting feedback in line with character’s voices, pointing out that the problem really scales up when you don’t just need to solve these once, you need to solve these problems 10 times for the same scene.
Bissell offers up a specific example from his work on Batman: Arkham Origins. Though satisfied with the final story, he remembers one day two years ago when creative director Eric Holmes called him up and said they needed bark dialogue for one of the series’ predator stealth sections.
This was over Christmas.
“The unbelievably difficult part was, say I'm Batman, and I put down an ice bomb trap, and a guy hits the trap," said Bissell. "You have to communicate to the player, 'oh that was my ice bomb trap' without being so obvious...and figure out things for these guys in their various state of alarm, to say "Ice bomb! He got me with an ice bomb! It's cold!" so the player knows it happened. Then you have to do that 10-15 different ways. And that's just an ice bomb.”
“I thought it would be fun working on a game franchise I loved for a dude I loved and admired, and at the end of it I can say I never regretted my decision to be a game writer more than that. When it's Christmas morning, and it's like, 'Ice Bomb, I dunno,' it gets pretty grim.”
To me, this is the fundamental problem of writing for games: gamers have been trained specifically to ignore subtext. That Assassins Creed Odyssey conversation that repeats "Duris" and "Sami" and the quest premise over and over? Gamers don't notice bad writing, and even if they do, they celebrate sloppy narrative design as part of game culture.
So even if we did write dialogue that's as competent as a Hollywood sci-fi noir blockbuster about killing robots, I think the gamers won't notice or care. In fact, they might even get upset.
By all means, let's make our dialogue sparkle, but remember: it's going to take a lot more than sparkles to fix (gestures wildly) whatever all this is.