October 10, 2010

Say what you want: when trees just aren’t enough

Writing nonlinear RPG dialog is a challenge. It is no simple matter to provide conversation options that simultaneously feel satisfying, are diverse enough to let the player role play, and which still fit well within the dialog tree itself.

There are technical limitations to consider. For any given branch, you can only fit so many reply options onto the screen at once. And at least one of those will usually be taken up by an “exit ramp” (a reply that ends the conversation)–as a principle of good design, one ought to include exit ramps at frequent intervals so the player is never trapped in a conversation that she (or the character she is playing) doesn’t want to continue having.

Because of these limitations, some situations simply aren’t well suited to the dialog tree format: for instance, answering a riddle or guessing a password. Passwords and riddles are good to include in an RPG because they allow for different types of puzzles. A locked door in an RPG might be opened by bashing it in, finding the key, convincing someone else to open it, and so on. But requiring the solution to a riddle in order to pass adds another layer to the proceedings. The player has to collect clues and make deductions in order to arrive at a solution. It’s a different type of challenge.

For this to work, the player needs to have an especially wide array of possible replies. The dialog tree format, unfortunately, is not well-suited to such an endeavor.

Consider a password scenario. In Final Fantasy 6, a guess-the-password challenge is handled via a dialog tree, with awkward results. The player is presented with three possible passwords to select from. But this isn’t enough options to make a challenging puzzle. The player could very easily find the answer through trial and error; more easily, in fact, than she could by seeking out and uncovering clues.

It’s possible that this could have been fixed by adding a “[More]” reply option to cycle through a wider range of potential answers, but populating a dialog tree with enough branches of dummy answers to dissuade random guessing is an onerous (and frankly, boring) task for a developer to undertake. It also puts the player in the unenviable position of having to click through an extended menu just to find the right answer once she’s figured it out. There has to be a better way.

And of course, there is. The solution is old–older, in fact, than dialog trees. I’m talking about text input and parsing. The player enters text, then the game checks it against the correct answer. One thing happens if the player provides the correct answer–another thing happens if they don’t. This isn’t all that difficult to add to a game, and it can make a huge difference when used judiciously.

Here is an example from the latest build of Telepath RPG: Servants of God. You can ask Griffin, the leader of the Resistance, what he thinks about some of the other characters in the group. Rather than putting together branch after branch of dialog tree options to account for all the characters Griffin can come to know, then culling them based on whether Griffin has had contact with those characters in the game yet, why not just let the player type in the names herself?

This was remarkably easy to add to the game, and it has saved me a lot of time. Even better, however, is the fact that this method gives a sense of freedom and mystery to the proceedings. The player is confronted with a situation where she won’t know all the possible options that can produce interesting results. So she is encouraged to explore. And ultimately, that freedom to explore is what a good RPG is all about.