I used to think that the only way we will see good, satisfying conversations in games is if some developer comes up with a combination of a highly advanced parser, capable of accepting a broad range of user input, and sophisticated AI code that can dynamically respond to this input. However, a more careful examination of some recent interactive fiction games has led me to believe that most of the tools already exist, and that what's really needed are skill and patience. Skill to write well and to construct systems that account for dynamically changing conditions, and the patience required to do so.
Last time out, I discussed the conversation system used in Emily Short's Galatea, a game that focuses on a single conversation with an NPC using a modified ASK/TELL topic-based conversation system which handles mood, flow, and context in a fairly sophisticated fashion. While the resulting conversation has a nice structure to it, there are still some limitations to the system, notably the inability of the player to choose the specific aspect of the topic to discuss, and the distinct one-sidedness of conversations that resembles an interview more than an exchange. Given the quality of the game and the writing, though, I think most people are able to look past these limitations and appreciate the achievement.
Addressing these limitations, though, is a complicated matter. How do you allow players to ask more specific questions of NPCs, and how do you allow players to answer questions from NPCs, given the broad range of player input that this invites? The primary answer with many non-interactive fiction games (as well as some IF games) is to control input through multiple choice selections. It's a method that spans nearly all genres, from old LucasArts adventures to BioWare RPGs to first-person shooters like Deus Ex and beyond, and for the most part players of these games seem to be satisfied with this approach. But often the implementation (at least to me) just doesn't satisfy as a conversation, coming across as perhaps too simple and algorithmic with little dynamics or appreciation for changing context.
An interesting example of a piece that combines elements of different systems is Short's Pytho's Mask, a game that is more extensive than her previous Galatea but which still focuses on conversations between the player and the various NPCs. It was a finalist in many categories in the 2001 XYZZY Awards and won for Best NPCs, which I think is an exellent reflection of the synergy between the writing and the unique conversation system.
I think it also bears mentioning that this game's "Order of the Phoenix" pre-dates the Harry Potter incarnation by three years. There. That's out of the way.
In Pytho's Mask, the conversation system is topic-based, although it is not triggered by the usual ASK/TELL commands; instead, the TOPIC command is used to initiate discussion about a particular topic of interest. However, instead of the player-character then asking a single pre-determined question about that topic, the player is instead presented with multiple-choice options of questions or comments related to that topic. So for instance, if the player types >TOPIC PRINCE, a menu might appear with three options: "How long have you known the prince?", "You are close to the Prince?", and "Any idea where the Prince is?"
The system is also designed to handle answers to questions presented to the player by NPCs, which provides more of an opportunity for back-and-forth conversation. The end result is effective, although I would have liked to see a bit more of this than was implemented in the end -- unless I missed a number of exchanges. Still, the presence of both questions and answers made the conversations feel much more natural.
Of course, there are some minor aspects of the implementation that perhaps did not work quite that well. Some conversations proceed with the multiple-choice system even though only one choice is available; while this has the effect of allowing the player the option of not asking the available question if so preferred, the player must give the one available response when it occurs during one of the back-and-forth exchanges. The result is that it provides what amounts to a brief pause in the conversation, and it ends up feeling very similar to the classic TALK TO system. Which is not to imply that it is bad -- it just left me on occasion with the sense that the conversation didn't fully take advantage of the system used.
There are also situations where topics are brought up and multiple question options are listed, but they are often not exclusive (i.e., asking one does not eliminate the possibility of asking the others). So you end up with a list of questions that you know you're going to flip through one-by-one just to make sure you don't miss any important information, and that ends up feeling a bit like a chore.
On the surface, this type of conversation system is a nice idea, and it's actually very close to a system I had thought about implementing a while back. But as with Galatea, Short's implementation really shines because of her attention to detail under the surface, which helps it achieve more of its real potential for generating smooth, natural conversations that account for dynamic complexity and context.
As Short describes in her article on conversation systems, Pytho's Mask fiddles with the underlying conversation mechanics just enough to produce choices and output that fit together and flow smoothly. For instance, player input options are marked when used so they don't get repeated later on, unless it is desirable to allow it -- and in those cases, often the option is different the first time it is displayed than on subsequent displays. Player inputs can also have the effect of changing the topic of the conversation, such that the conversation options for the new topic are displayed after the previous one is processed, producing a sort of branching structure. Player inputs can also affect the emotion of the NPC, which can modify the conversation options that follow. Finally, the same topic can bring up different input choices depending on the context, such as the point in the narrative, the topics that have been addressed previously, and the actions that the player has previously performed.
Pytho's Mask, of course, is a conversation-based game that relies on smooth, dynamic, contextually appropriate conversations to be successful and satisfying, so it stands to reason that for a game like this one, the effort put into the conversation mechanics is worthwhile. But even if a game doesn't necessarily focus heavily on conversation, I have to think that the implementation of a more sophisticated system like this can only enhance the playing experience. It takes a lot of effort, sure -- but as I've said before, if developers put the same effort into conversation mechanics that they put into graphics and physics technology, we might just have some mainstream games that are a lot more interesting to play. The tools are there, all it takes is creativity and a bit of skill and patience.