You may wish to read Randy's previous column on character interaction, Is The Holodeck The Holy Grail?, before reading this one.
Sure, it sounds like it would be cool to have a real conversation with a game character, but what do you actually do? There you are, holding a controller; how do you interact? Well, that’s an easy question to answer! Or, at least, it’s easy to list a few of the answers that are probably wrong.
Natural Language Processing: If a phone system can understand that you just said “account balance”, then why can’t the citizens of Megaton understand “have you seen my dad?” When will technology improve enough that we can just talk to computers? After all, that’s what Michael Knight did with KITT, right? Speech recognition may eventually make speaking as accurate as typing, but the huge barrier will always be getting the computer to understand what the words actually intend to communicate. Part of the reason you can respond intelligently when someone says “My ex-boyfriend lost his job at the furniture warehouse again – should I let him sleep on my couch?” is because you’ve spent your life acquiring an enormous body of common-sense information that we aren’t even perfectly sure how to encode usefully in a database, to say nothing about go out and collect. So it’s not just asking computers to understand words, it’s asking them to understand nearly everything about being a human being, essentially the same as solving the AI problem, passing the Turing Test, and turning Pinocchio into a real boy, none of which is going to happen soon, although I’ll be first in line to buy the thirdparty plug-in when it does. I almost wrote an entire column about this, but Wikipedia’s entry on NLP is already a great summary with plenty of humour value.
Pre-Authored Dialogue Trees: A traditional, static conversation tree is essentially a Choose Your Own Adventure book, so the best it could ever hope to do is provide every option you’d ever want to pick such that the limitations are invisible, which would take a miracle of up-front design. Even that high-water mark doesn’t let the player try their own idea or arrive at a conversation state unless it was explicitly considered in advance by the designer, which gives you that feeling like the game already knows everything that’s going to happen and could probably play itself. It’s not that these dialogue trees are bad or don’t do a decent job flavouring games with the taste of conversation, it’s just that most of us wouldn’t be excited about a game made entirely out of them. So what’s better than pre-authored and static?
Name/Job/Bye: The earlier entries in the Ultima series tackled conversation headon with a system where you could type anything as long as you typed one word at a time. You’d say “Job” and he’d say “I’m a librarian” and you’d say “Library” and he’d say “There are a lot of books here” and you’d say “Books” and he’d say “Yup, a lot of books” and you’d come back later when you had a hint about something to ask that would actually make him useful. It felt like an incompetent lawyer cross-examining a witness about nothing in particular, and of course the same content could have been restructured as a dialogue tree, which would have eliminated the guesswork. Despite the shortfalls, some of the aesthetics were dead-on. There was a feeling of natural back-and-forth patter, and the open-ended input provided an illusion of depth, like the characters could talk about anything if only you knew how to engage them. The simplicity of your input forced you to map sophisticated questions down to their essence, and by replying at all the characters made it possible to imagine that they were actually answering the longer question, like even if you spoke like a Neanderthal, they still got your gist and could take it from there. One thing this approach demonstrates is that presentation is a huge piece of aesthetics and maybe it’s not the most convincing illusion to lay out all of the conversation options like you want the player to order fast food.
This short list illustrates the three parts of the problem: accepting input, understanding, and generating output. The goal, at least according to me, is to provide more open-endedness to the first part and more dynamic range to the third part, which implies a pretty robust second part. Dialogue trees and equivalents don’t require dynamic understanding because the designer has baked in all the real-world knowledge in the process of mapping input to output. We can think of ways to accept arbitrary player-generated input, but then in order to generate sensible output, the understanding part has to be at least partially procedural, and the more we edge in that direction, the more we brush up against the perilous frontiers of NLP. My point is we’re totally screwed and will never do better than static dialogue trees and Ultima games. Just to be thorough, however, I’ll do some research for my next column about what more promising character interaction solutions have been experimenting with in the past 20 years.
Randy Smith is the co-owner of Tiger Style, whose first game, Spider, is available now for iPhone and iPod Touch.