19 June 2007

Conversation Trees

Chit Chat

I recently finished a Neverwinter Nights module. I decided that module would have a sort of investigation feel to it. This resulted in a heap load of dialogue. In fact if there was one thing that became a drag during that module development it was dialogue trees. Often I'd look at the tree and realise that I had fallen into the linear trap. That is to say it read more like a script, the NPC says something, the player says something (not from a choice), the NPC replies, the player says their next bit...

Basically it became more like a JRPG with a very linear narrative. Where the player does little more than press the A button to continue. I have nothing against these games (indeed I love many of them) it's just they play like a novel, a railroad of story that the player hopefully enjoys but will reach virtually the same conclusion irrelevant of the actions of the player. This is not what I want in this game though, I want the player to be involved when choosing dialogue. I want the dialogue options to mirror things the player is actually thinking of asking. Finally I want to insure the player is given the chance of player the character in the way they see their character. That's something I didn't really manage to pull of but I felt it got better when I better planned the conversation and the points I wanted to pull across.

Lets take an example (not out of the game I just made), we have a plot where a man is pleading with the players to rescue his son who has been kidnapped by some orcs. His dialogue goes something on the line of Please <sir/madam> you have to help me get my son back. I don't have the strength to fight them myself. We want to cater for options in the way the player reacts to this, the three that stand out are heroic, selfish and evil. The first one says something like Of course! I will find these orcs and get your son back. the second has the player asking what treasure they'll get in return and the last one has the player being a heartless and turning him down. We should add a lesser type such as cautious where the player wants more details before committing (maybe that could be thorough instead). We might end that with the ability just to get out of the conversation tree entirely (ignoring the plot but maybe the player just wants to look at their journal) and jump to other points. Things like selfish will probably end with an accept/reject tree that cautious or possibly second plea in evil will (maybe the NPC will offer gold to the evil tree).

What is my point here? I ask myself that, often, but my point here is that we've outlined 4 routes for a very simple plot. Even then we can break these down further, for example why is the PC wanting to go the heroic route? Maybe they empathise with a farther who has lost his son, maybe they hate orcs, perhaps they just are that paragon of virtue that see the need to save the world in anyway they can or the evil character that is looking for redemption through their actions. If we gave conversation trees for each of these the size of our dialogue multiples quickly. This is a lot of work in terms of dialogue, scripting to record what options the player takes, quality assurance to test those. This is an even greater issue with voice acting and just how much needs to be recorded (and how much space that I can take up). It's no wonder, then, we see RPGs stick to a good/neutral/evil path in many cases; extensive dialogue can take an age to write and diluting your writing pool might dilute the key emotions or impact you want to convey with the core tree.

So what can we do? Can we generate dialogue trees semi-automatically in some places while still conveying the character we created? Can some NPC voice work be computer generated rather than voice acted?

No comments: