Are you making a RPG? Would Natural Language Processing help?
by Corey Sweeney · in General Discussion · 08/03/2005 (6:54 pm) · 22 replies
We were tossing around the idea of writing a Natural Language Processing system with the indended use being the conversations for Non-Player Charactors in role playing games.
"Natual Language Processing" means that instead of picking what your charactor says from a list, you get to type whatever you want him to say on the keyboard.
The challenge is how to get the NPC to respond correctly, even if you word the question in a differnt way then he was expecting.
So anyway, I was wondering, how many role playing games are currently in development, and how many of those developers would want it, vs not want it?
So if your making a RPG, post that your working on a RPG, and say wether you would be interested in Natural Language Processing or not. It would be appreciated. (plus you get a excuse to mention your project :) Also, if you want to post a bit about the game, like mideval vs sci-fi, and what types of NPC's would need interesting scripts, that'd help too.
Thanks
"Natual Language Processing" means that instead of picking what your charactor says from a list, you get to type whatever you want him to say on the keyboard.
The challenge is how to get the NPC to respond correctly, even if you word the question in a differnt way then he was expecting.
So anyway, I was wondering, how many role playing games are currently in development, and how many of those developers would want it, vs not want it?
So if your making a RPG, post that your working on a RPG, and say wether you would be interested in Natural Language Processing or not. It would be appreciated. (plus you get a excuse to mention your project :) Also, if you want to post a bit about the game, like mideval vs sci-fi, and what types of NPC's would need interesting scripts, that'd help too.
Thanks
#2
08/03/2005 (7:36 pm)
In a MMORPG, it would be helpful for NPC's, but in a single-player RPG, it could quickly lead to the "guess the correct word" scenario of old-school adventure and interactive fiction games. It could also confuse narrative structure. But in games such as MMO's, where narrative structure is relatively unimportant, it could be a lot of fun.
#3
08/04/2005 (11:35 am)
I am working on an artificial intelligence API that is going to include a natural language parser for NPC interaction. However, the actual code for the natural language processor has not yet been developed. So I would say that I'd be interested in integrating a 3rd party solution if it was already developed, rather than re-invent the wheel. Our API is called LifeLink AI and our barebones website is www.lifelinkai.com. Perhaps we can talk about working on this together.
#4
that way people who want to chit-chat can, and people who want to be hack-and-slash can too.
08/04/2005 (12:39 pm)
I personally would like a mixture of natural language and picklist.that way people who want to chit-chat can, and people who want to be hack-and-slash can too.
#5
The setting is a post-apocalyptic NorthAmerica. Dark cybercities controlled by corporations fight to conquer the savage wastelands protected by roquish, Outlander freedom fighters. Think half Fallout half Deus Ex with PlanetSide and Shadowbane thrown in.
Where this would help us...where wouldnt it ? We have a heavy RPG quest system with dynamic quests based on the changing needs of the various factions in the game. Politicians, hackers, police, drug runners, turf gangs, religious cults, mutants, cyborgs....they all have needs and goals in the game and will work to accomplish them in the background (and the foreground) as players play the game.
Making the NPCs feel real is one of our goals. As was stated above, there has been another discussion about dynamic story engines which dovetailed into a discussion of natural language parsing. The recently released social-interaction game Facade was an example of such a system.
People always complain about the sterility of MMO NPCs. They stand there and robot back simple text. Your system would be an amazing way to make it feel like a real world....give shades of meaning and emotion...and craft dynamic responses back!
Imagine you are out in the wasteland and roll up on a garage. You notice that he not only is selling car parts, but that he has a huge cache of weapons. Using your system, players could sweet talk him into selling them the weapon they desperately need or piss him off so much as to where he refuses to sell you gas! And thats just one interaction. What if you could tempt passers by into buying illegal weapons...or give a speech to a group of villagers to get them to rise up and take arms!!
We'd love something like this!
Alfred Norris
CONFLICT: Omega
08/04/2005 (3:59 pm)
Our project would definitely enjoy this feature. Since you've allowed it, Ill pimp our project to explain why.The setting is a post-apocalyptic NorthAmerica. Dark cybercities controlled by corporations fight to conquer the savage wastelands protected by roquish, Outlander freedom fighters. Think half Fallout half Deus Ex with PlanetSide and Shadowbane thrown in.
Where this would help us...where wouldnt it ? We have a heavy RPG quest system with dynamic quests based on the changing needs of the various factions in the game. Politicians, hackers, police, drug runners, turf gangs, religious cults, mutants, cyborgs....they all have needs and goals in the game and will work to accomplish them in the background (and the foreground) as players play the game.
Making the NPCs feel real is one of our goals. As was stated above, there has been another discussion about dynamic story engines which dovetailed into a discussion of natural language parsing. The recently released social-interaction game Facade was an example of such a system.
People always complain about the sterility of MMO NPCs. They stand there and robot back simple text. Your system would be an amazing way to make it feel like a real world....give shades of meaning and emotion...and craft dynamic responses back!
Imagine you are out in the wasteland and roll up on a garage. You notice that he not only is selling car parts, but that he has a huge cache of weapons. Using your system, players could sweet talk him into selling them the weapon they desperately need or piss him off so much as to where he refuses to sell you gas! And thats just one interaction. What if you could tempt passers by into buying illegal weapons...or give a speech to a group of villagers to get them to rise up and take arms!!
We'd love something like this!
Alfred Norris
CONFLICT: Omega
#6
I could ramble on for quite a while on this subject, but I won't -- I'm too busy on other projects right now.
So in short, YES! Add another person interested in natural language processing! (BTW, the project which I mentioned above is a fantasy"ish" non-combatative RPG).
David Robinson
Technoforge Software
08/04/2005 (4:10 pm)
Although the writer for our new project might hate me saying this, I'd love to have a natural language processor in our new RPG. We're VERY early in the development cycle, but I've wanted type-in text as an RPG feature for a long time. Making it really interact with the game in a valuable manner is even trickier than the actually language processing / NPC 'knowledge' system. This is just the kind of thing that I'd like to work on and create.I could ramble on for quite a while on this subject, but I won't -- I'm too busy on other projects right now.
So in short, YES! Add another person interested in natural language processing! (BTW, the project which I mentioned above is a fantasy"ish" non-combatative RPG).
David Robinson
Technoforge Software
#7
08/04/2005 (4:20 pm)
It would be interesting to see an implementation of Alicebot into AI that could remember conversations, events and be taught memories by an admin. It'd be kinda like an Actor learning a character in a film and give a realistic feeling when conversing with bots.
#8
Is that what you are looking for?
08/04/2005 (4:25 pm)
That's kind of what our LifeLink AI will do. NPCs will have memories and can answer questions regarding those memories. For instance, if a PC named Frank walks by an NPC and the NPC is acquainted with the PC, a memory entry will be written that says "saw Frank at certain time at certain place." Then another player can use natural language to ask, "Have you seen frank?" The NPC then replies, "Yes, I saw Frank at 1pm at the pub."Is that what you are looking for?
#9
Hell yes we're interested in everyone in this thread who can deliver such tasty goodness :)
08/04/2005 (4:29 pm)
The original poster was speaking of a way of interacting more normally with an NPC. Your description takes that a bit further...normal interaction coupled with memory and other AI functions.Hell yes we're interested in everyone in this thread who can deliver such tasty goodness :)
#10
08/04/2005 (4:33 pm)
Yes, our system does take it several steps further. However, we don't yet have the natural language parser code. I've done a few primitive tests where you can enter something like, "How old are you?" and the NPC will automatically answer like "I'm 35 years old." But to really implement it will take a pretty substantial effort and we haven't gotten to that yet. That's why I expressed interest in teaming with Corey and integrating his code if he gets it working before we can get around to ours.
#11
In diversion: A fun article on NLP.
NLP is an interesting problem, though a narrative solution is rather unlikely any time soon (though I'd love to see it).
A plug-and-play system in natural language has a simple, yet huge problem: creating vocabulary and contextual relevance. Grammar is the easy part, though "common" player usage of grammar will often play rather loose with the rules. Anyone who has ever read a freshman comp paper in any class ever understands that, unfortunately---and that's assuming they know how to use spell check... Context and framework definition for complex systems would be the major hurdle for a natural language project as a plug-in. Training a team to deal with informational overlap between personal/local/regional/global knowledge contexts, rumors and conjecture, and the frustrating crux of realistic human communication: lack of knowlege; the lacunae, those spatial gaps that define the constructed worlds around them. Natural language parsers deal with what is known, with what has been programmed; a complex vocabulary often stagnant with contextual meaning among a wide variety of word definitions and usage. The decision could be as deceptively simple as having the NPC say "Ask doc Harper! He knows everything!" And when Doc Harper runs into something he doesn't know, perhaps he at least knows who to refer the player to. Otherwise, they begin to seem as wooden and limited as their select statement counterparts, and yet much more confusing since you have to not only structure your query correctly and learn to use their common vocabulary. Currently, the experiments I've seen in this field (in accordance with gameing), every person seemingly has all the answers or none of the answers without a sense of the referential.
Even if they were included for a single system, training a new team to utilize and populate the system meaningfully is a huge task.
I love the idea of natural language processing. But training the player in a common vocabulary may be a learning hurdle that they don't want to jump over. The difference between a deceptively receptive parser and an imbroglio (confused heap) is more of a training issue both on the part of the utilizing team and the end user's vocabulary, grammatical proficiency, use of colloquial language, and aspirations to learn to follow the rules simply to communicate before they can actively play the game are huge considerations to surmount.
Another problem is crafting well-worded sentences rather than simply grammatically correct ones. A good portion of the wooden feeling in RPG's is due to bad writing rather than lack of dynamic contextual sentence creation. It would actually be much easier in a phonemic language than Englsh, though. A language where the written form is more precise. Still, problems between text and speech genres will arise.
I'm interested to see how people approach this in the future, though. As I said, I like the idea, but the complexities of training players to simply interact with the base characters in the game (especially if it is a single-player game). Translation and localization is an even larger problem, even among regional localities in the US. Looking at worldwide distribution...scary...
08/04/2005 (7:04 pm)
Quote:It'd be kinda like an Actor learning a character in a film and give a realistic feeling when conversing with bots.It's like an actor who has been in complete sensory isolation for their entire existence being programmed a number of sterile rules in order to simulate a person with a lifetime of active knowledge frameworks. That's not like any actor, film or stage, that I've ever met. Even wholly wooden, horrific ones.
In diversion: A fun article on NLP.
NLP is an interesting problem, though a narrative solution is rather unlikely any time soon (though I'd love to see it).
A plug-and-play system in natural language has a simple, yet huge problem: creating vocabulary and contextual relevance. Grammar is the easy part, though "common" player usage of grammar will often play rather loose with the rules. Anyone who has ever read a freshman comp paper in any class ever understands that, unfortunately---and that's assuming they know how to use spell check... Context and framework definition for complex systems would be the major hurdle for a natural language project as a plug-in. Training a team to deal with informational overlap between personal/local/regional/global knowledge contexts, rumors and conjecture, and the frustrating crux of realistic human communication: lack of knowlege; the lacunae, those spatial gaps that define the constructed worlds around them. Natural language parsers deal with what is known, with what has been programmed; a complex vocabulary often stagnant with contextual meaning among a wide variety of word definitions and usage. The decision could be as deceptively simple as having the NPC say "Ask doc Harper! He knows everything!" And when Doc Harper runs into something he doesn't know, perhaps he at least knows who to refer the player to. Otherwise, they begin to seem as wooden and limited as their select statement counterparts, and yet much more confusing since you have to not only structure your query correctly and learn to use their common vocabulary. Currently, the experiments I've seen in this field (in accordance with gameing), every person seemingly has all the answers or none of the answers without a sense of the referential.
Even if they were included for a single system, training a new team to utilize and populate the system meaningfully is a huge task.
I love the idea of natural language processing. But training the player in a common vocabulary may be a learning hurdle that they don't want to jump over. The difference between a deceptively receptive parser and an imbroglio (confused heap) is more of a training issue both on the part of the utilizing team and the end user's vocabulary, grammatical proficiency, use of colloquial language, and aspirations to learn to follow the rules simply to communicate before they can actively play the game are huge considerations to surmount.
Another problem is crafting well-worded sentences rather than simply grammatically correct ones. A good portion of the wooden feeling in RPG's is due to bad writing rather than lack of dynamic contextual sentence creation. It would actually be much easier in a phonemic language than Englsh, though. A language where the written form is more precise. Still, problems between text and speech genres will arise.
I'm interested to see how people approach this in the future, though. As I said, I like the idea, but the complexities of training players to simply interact with the base characters in the game (especially if it is a single-player game). Translation and localization is an even larger problem, even among regional localities in the US. Looking at worldwide distribution...scary...
#12
Now this is the part where I try to respond to 11 posts at the same time. heh
Here's a list of some of the features that I see as being desirable in a NLP system:
(note: that dosn't mean easy to implement :)
Ability to recognize synonyms in order to avoid the "guess the keyword" problem
Ability to create picklist scripts, or NLP interfaces, or combinational versions. (like 3 items in a picklist, and a 4th item "other" which lets you try typing something in)
I see this as desirable as game designers will be able to change their mind from NLP to picklist and back later in the project, rather then having to decide what they want up front.
A scripting langauge intended for the level designers to make the picklists/NLP interactions with the charactors.
Conversational state monitoring (try to keep track of the current/past topics)
Support for changing/monitoring the game state through a fully general and customizable C callback system. (I.E. don't force the game designer to use a specific inventory system, etc)
I wrote a full list on a web page which I'll post up soon. As soon as it's up I'll post the address here.
And as mentioned, it is a dificult problem. In fact if you wanted to do it "the right way" it's a AI complete problem. Realistically we need to figure the cheapest way to aquire the information for the NPC's to know how to talk, so having a NLP system where we can keep tacking on features after the first release will be good.
Also, I'm up for cooperative development. I checked out your page Thomas. Cool graphics. Definately a barebones site though. heh. I'll send you a e-mail soon so we can talk about actual info.
Corey
08/04/2005 (8:50 pm)
Wow. It looks like I stirred up some comotion. Cool.Now this is the part where I try to respond to 11 posts at the same time. heh
Here's a list of some of the features that I see as being desirable in a NLP system:
(note: that dosn't mean easy to implement :)
Ability to recognize synonyms in order to avoid the "guess the keyword" problem
Ability to create picklist scripts, or NLP interfaces, or combinational versions. (like 3 items in a picklist, and a 4th item "other" which lets you try typing something in)
I see this as desirable as game designers will be able to change their mind from NLP to picklist and back later in the project, rather then having to decide what they want up front.
A scripting langauge intended for the level designers to make the picklists/NLP interactions with the charactors.
Conversational state monitoring (try to keep track of the current/past topics)
Support for changing/monitoring the game state through a fully general and customizable C callback system. (I.E. don't force the game designer to use a specific inventory system, etc)
I wrote a full list on a web page which I'll post up soon. As soon as it's up I'll post the address here.
And as mentioned, it is a dificult problem. In fact if you wanted to do it "the right way" it's a AI complete problem. Realistically we need to figure the cheapest way to aquire the information for the NPC's to know how to talk, so having a NLP system where we can keep tacking on features after the first release will be good.
Also, I'm up for cooperative development. I checked out your page Thomas. Cool graphics. Definately a barebones site though. heh. I'll send you a e-mail soon so we can talk about actual info.
Corey
#13
08/04/2005 (9:15 pm)
My walls of text (OMG WoT!!!11) aren't necessarily a commotion. Now, talking about players not being protagonists in an interactive medium regardless of the narrative styling... I'm very interested in seeing something to this effect working. Chris Crawford (Balance of Power) had a fun project on computerized narrative development.
#15
It's a very interesting setup, but you can really see the inherent flaws. It sometimes devolves into "find the keyword" and often when the AI doesn't understand it will use a vague way of glossing over the problem. So while in some scenarios you will see an interesting drama, in others you'll see a lot of the AI ignoring what you say using vague terms and dismissals.
Still a way to go on the tech, I think.
08/05/2005 (7:31 am)
Look up "Facade" on Google. It's a one-act drama game that relies on user input in real-time. The characters will react to words you say and actions you take, altering the story as you go.It's a very interesting setup, but you can really see the inherent flaws. It sometimes devolves into "find the keyword" and often when the AI doesn't understand it will use a vague way of glossing over the problem. So while in some scenarios you will see an interesting drama, in others you'll see a lot of the AI ignoring what you say using vague terms and dismissals.
Still a way to go on the tech, I think.
#16
I'll check that out when I get home :]
That looks like it would be fun just to see how it deals with what we consider awkward.
Facade can be downloaded at http://www.interactivestory.net/
08/05/2005 (7:35 am)
Dustin,I'll check that out when I get home :]
That looks like it would be fun just to see how it deals with what we consider awkward.
Facade can be downloaded at http://www.interactivestory.net/
#17
08/05/2005 (8:03 am)
Facade's kind of fun. A guy from the office downloaded it. It was a resource hog, though. But fun, nonetheless!
#18
08/05/2005 (8:15 am)
I wonder why it's a resource hog as people say... Is the logic behind their reactions just complex enough that it bogs down the computer?
#20
we should pull our "open source card" and get some behind the scenes look at how they integrate with Torqimada.
08/05/2005 (8:44 am)
Yep. I read that all the time...you know they have a Torque project listed on that page...we should pull our "open source card" and get some behind the scenes look at how they integrate with Torqimada.
Torque 3D Owner Rubes
Personally, I'm thinking something more along the lines of an adventure-style game that requires exploration and more in-depth interaction with NPCs, so something like this would be more useful than, say, picking your question or response from a list.