Adventure games use a lot of dialogue. Characters are going to have to talk to one another and, unlike books or movies, game dialogue is non-linear and gets complicated quickly.
To see just how complicated it can get, I laid out the initial conversation between Guybrush Threepwood and Mancomb Seepgood in the Scumm Bar early on in The Secret of Monkey Island. This conversation is short enough to be manageable yet still has many of the advanced features of a complex interaction.
Players often hit dialogue options, where they can choose to respond to these characters in different ways, in turn sending them down different conversation paths.
Often, these paths are circular, sending the player back to the initial set of options. Sometimes, if that conversation branch is unimportant to the progress of the player, the option they chose will vanish from the list of options.
Other times, if it’s an important piece of quest information, that option will remain, but may be phrased differently. For example: “You need to find the Skull of Blackjack” the first time and “Have you found the Skull of Blackjack yet?” subsequent times.
As well as this the non-linear text flow, there are other features that often pop up in more advanced adventure game conversations:
Character state changes
During this conversation, Mancomb’s face moves between a smile, narrow eyes, and a neutral expression depending on what he’s saying.
In other conversations in the game, characters move their position on screen between lines of dialogue.
Repetition management
When you first approach Seepgood, he asks you if you’re new in town. In subsequent interactions, he says it’s nice to see you again.
Variables
As mentioned above, there are some key parts of the conversation that you always return to, however the options available to the player change depending on the route you go through the conversation.
These can be managed by internal variables within the dialogue system and simple if
statements.
Multiple end states
There are various ways to end the conversation
Exhaustion
After going through to the end of the conversation, Mancomb needs to focus on his Grog and you can no longer talk to him for the rest of the game.
This is a very basic game dialogue tree with a relatively unimportant character in a game that features hundreds of such interactions.
With the complicated option branching alone, trying to write this kind of game dialogue in a regular text editor would be a short road to madness. Add in the complexities of variables and triggers and it is nigh-on impossible.
Clearly, another solution is needed, one that can handle the complicated dialogue trees and advanced features that these conversations produce.
It should have a standard, platform-agnostic, and text-based format that can be consumed by many different game engines.
Finally, this solution should involve me ignoring freely available options that otherwise fulfil the other two requirements. It should instead cause me to jump down a development rabbit hole where I spend dozens of hours building my own bespoke tool tailored exactly to my needs.
Yeah, I did it again. Learn why I never learn in part two.