FUNDAMENTALS OF GAME DESIGN, SECOND EDITION
Scripted Conversations and Dialog Trees
Natural language refers to ordinary language as spoken or written by human beings. Computer scientists devised the term to contrast ordinary human language with computer (or programming) languages. The extremely difficult problem of making computers understand and react appropriately to natural language—whether the language occurs as conversation or instruction—has puzzled artificial intelligence researchers for decades. Recent research efforts have been fruitful, but the state of natural language comprehension is still not good enough for most video games.
Game designers would like to be able to include natural language in games without trying to solve a decades-old research problem. We want the player to be able to engage in conversations with nonplayer characters, especially in storytelling games. A scripted conversation allows us to approximate this. (Note that level design makes use of a technique often called "scripting" or "scripted events," which is a different, unrelated phenomenon.)
When entering a scripted conversation, either because the player chooses to speak to an NPC or an NPC chooses to speak to the player, the game enters a new game - play mode created specifically for the purpose. All other actions normally become unavailable. The player doesn't speak or type his dialog but instead chooses a prewritten line of dialog from a menu (see Figure 7.4). When the player chooses a line of dialog, the game plays or prints an appropriate response from the NPC, after which the system gives the player a new menu of lines to choose from (some of which may be left over from the previous menu). This process goes back and forth until either the NPC refuses to speak to the player any longer or the player chooses to end the conversation.
{* Zaxis: (Success) Zaxis does not need help! Only more time, a little longer, and this door shall fall. Zaxis: The female gith within has sealed it She fears Zaxis! The master will have his shards, and Zaxis shall go free, if not, Zaxis shall be cast down. Joshua: Wait - if your task was to breach the door, you've already failed your ' master, haven't you? Zaxis: Zaxis has not failed! The door stands but it will fall! |
|
FIGURE 7.4 |
|
>^lhj Zaxis |
The conversation menu in Neverwinter Nights 2 |
Zaxis has not failed! The door stands but it will fall! |
|
1. [Diplomacy! We have suceeded in ' delaying you long enough • your mission has failed. |
|
2. IBIuffl Your master won't understand your 'explanation.'' You know it |
|
3. [Intimidate! Admit your failure, or are you so cowardly that you cannot see when you have failed?! |
|
4. [Tauntl Ooooooh. I'm sure the door is [■* |
In Figure 7.4, which was adapted from Neverwinter Nights 2, the player's character, Joshua, is talking with a character named Zaxis. The upper window displays the last few exchanges from the conversation. The lower window displays Zaxis's most
recent remark, plus a list of lines for the player to choose from. Notice that each option is accompanied by a manner of speaking: diplomacy, bluff, intimidate, and so on. This lets the player have some idea of the tone of voice his avatar would use if the words were spoken aloud. Different approaches might work better with some NPCs than with others.
As the NPC says phrases the player hasn't heard before, the player may ask for elaboration, end the conversation, or switch the subject to a different topic. Offering the useful option, "Tell me again about...," enables the player to return to an earlier point in the conversation and go through the NPC's responses again if he didn't pay close enough attention the first time. To end the conversation, the player chooses a line clearly intended as a farewell message ("Thanks for your help. Maybe I'll talk to you again later."), or occasionally an NPC may cut off the conversation with a line such as "I don't have anything else to tell you" or "I won't talk to you if you're going to be rude."