Interrogative: A new old way of interaction
I just got back from Nick Fortugno’s presentation on narrative and games in Manhattan. Besides the fact that I’m thrilled to have found a parking space that I not only did not have to pay for, but also did not have to assume I was getting a ticket for, I found his presentation to be a very good description of where games fit as an artform, as well as very good at talking about the potential of games for interaction.
And I would like to talk about just that sort of thing…
One of the features I’m touting is the ability to have conversations (actual two-way conversations) with NPCs in Epic Frontiers. It’s not a new thing, and games like Zork have made deep interaction a priority from well over twenty years ago. Unfortunately, with the AAA game market leaning heavily on cutting-edge graphics, they have lost this ability to interact with NPCs outside of combat, and their ability to fund R&D into this realm has become stunted. Of course, being an indie without a real budget to stay within, I have the advantage of not having anyone breath down my neck about addressing it by a specific date.
To this end, I spent a few years working on a technology to do just that without using Natural Language Processing (NLP), which the early games used, due to the fact that when put in an MMO situation, the heavy processor load from it might just melt my servers. What I found in my research was that a lot of what people said was made up of the same things, and of that global set of language, you can narrow down what people would want to talk to NPCs about within a game, and then further generalize that subset of language until you had a set of language operations that, when combined, could act like language parsing “lite”, requiring less variables and parsing time in order for the server to return a response. I gave the system the code-name Interrogative.
I came upon the code-name Interrogative while watching Generation Kill on HBO (awesome show). It was a part of the radio chatter that whenever a Marine would need to ask something that did not fit into the formulaic way to talk on a radio (something more akin to conversation, in order to find out more details) they would prepend the question with the word “interrogative”. It wasn’t a word I was familiar with, and I looked it up, completely aside from any game development, but happened upon the third definition of it from www.dictionary.com:
“Grammar. an interrogative word, element, or construction, as who? and what?”
And that, my friends, is the basis of what Interrogative is, as a gameplay feature:

Asking an NPC about "Rare Book 1"
What you see above is the latest incarnation of the test GUI, which is really, really, hideous (it’s for testing, and thus, is not allowed to look good). On the left is the output, detailed in second-person narrative style, as a GM/DM would detail it during a pen-and-paper game. The list in the middle is a list of “contexts” or subjects that you can talk to the NPC about, and depending on their knowledge level, get varying amounts of information before you get “<NPC> doesn’t know”. At the top-right: The ability to save snippets of conversation dialog from the left-hand side of the GUI for use later. And finally at the bottom, one of the most important parts of the whole thing: Buttons.
Those buttons are “Dialog Actions” which represent interrogatives, and are much like clicking on the Punch or Kick “Combat Actions” in the combat GUI in the game, except that these actions are generalized ways of working with dialog. For instance, asking the NPC to talk requires selecting a Context and then clicking the Prompt action. As you can see on the left from the next line, the NPC knows a thing or two about the subject in question. So you click on the Elaborate button… Apparently, the NPC isn’t into broad questions like that, so with the Context still selected, you try asking What (equal to What -> Rarebook1), gaining insight from the NPC that the book is about crystals. Now you ask the NPC to Elaborate, and the NPC tells you… Something that was cut off because I ran out of screen real estate. But by now you get the picture.
What you may also be thinking is “why can’t the NPC just tell me what I want to know? All the other MMO’s do that”. Okay, yeah, we can throw walls of text at you if you like, and the system does allow for it, but the point of the system is to support a broader range of gameplay, such as trying to get to information that the NPC may have, but does not want to tell you for a particular reason. If the reason is a lack of “Familiarity” with you, then maybe you should talk to the NPC about “Current Events” in his/her area, or maybe engageĀ them in a joke or two to try and gain familiarity. Doing that may make them more apt to talk to you. You could also select an object in the area and talk about that (a good way to gain familiarity with an NPC who works in a particular trade- it’s “shop talk”). Or maybe you need to use some of those Soft Skills I’ve blogged about previously, and use Intimidate to get the information out of them. Get the picture now? Almost? Good.
You should know that the system at this point is okay, but not as good as it could be. After all, if you going to do things like this, you should have an AI system to match, shouldn’t you? In my previous blog, I talked a bit more about a Personality Trait based AI system which was tailored to a “literary” type of NPC. It may have puzzled you before, but you can see the connection now: Your Soft Skills can modify personality, which can, in turn, be hooked rather easily into Interrogative to modify how your conversations go. And conversations can go well and give you information, become difficult as the NPC changes the subject on you, or even end if the NPC decides you went too far. The NPC can also go upside your head if you hurl an insult, but in the realm of role-playing, starting a fight with an insult has its uses, doesn’t it?

An earlier test where the NPC tries to end the conversation...
The above is an early test of the system, and while it didn’t operate as efficiently as the new system (hence why you don’t see the done-away-with GUI), it does show the ending of the conversation working. I don’t seem to have shots of the subject-changing, but I did manage to show this early version off at IMGDC last April in Minneapolis. This year’s demo should be a bit more interesting…
I had a crack at putting something similar together myself, last year and blogged about it here http://therecursionking.blogspot.com/2008/02/natural-language-conversations-in-flash.html
I took a different approach to yourself, using free text entry as the method of asking questions. The idea was to link it to a standard dialogue tree so that the player could jump off that at any point and dig for further information and clues using a more natural language parser.