After much fiddling with programming an interactive personality in IF, I've come to the conclusion that it's a lot of work with no real benefit, at least within the scope of writing a game.
Say I have this AI-program I've written, Jane. She's pretty smart, has pretty sophisticated brain code, and I've labored long and hard to teach her everything I can so she can respond to human input almost as well as a human can.
But... why? She's stuck in a game, hopefully one with a plot and specific settings. She doesn't *need* to be able to respond to questions about everything under the weather -- just questions about the things around her and the plot and the setting and maybe herself.
And I can do that with a lot less code than I need to create an essentially 'thinking' character. As monele said, it's all about the illusion... creating the illusion of interactivity is far easier than creating the reality of it.
And, the thing is, the two or three encounters I've had with "AI" in games have been disappointing. Either there's nothing there that I couldn't replicate with some clever reactional programming, or it's a novelty, and one that I lose interest in quickly because there's no forward motion.
Which isn't to say it's not a neat idea (so tempting...) or doesn't have applications... I just don't see how "full" AI (a hybrid is another story) is necessary or even desirable in a game.
DaFool wrote:
The way to keep track of this would be using some relevance pattern recognition (using keyword topics...eh, I have no real idea).
[...]
How about that? As close to a real dating simulator as can be. I'm pretty sure all the programmers here can whip up something like that without too much trouble.
What you're describing is definitely doable. Just a matter of how many keyword/response pairs the programmer takes the time to put in. And if you narrow the scope even further -- say, you let the PC pick the girl based on her major or something, so she'd be expected to be strong in that area but wouldn't need to know everything about everything -- it'd be even easier.
The issue you'd run into is the facility of keywords versus typing.
Compare:
Type in: "what do you think about global warming?"
NPC: (keywords "think" -> "opinion", "global warming": access "opinion" database... look for "global warming") "I'm a Ecology major, so I think it's..."
To:
Pick from menu: "global warming"
NPC: (global warming picked) "I'm an Ecology major, so I think it's..."
The end result is the same either way. So you'd really need to customize it beyond 'points'. Maybe store all the responses so she can refer back to specific parts of your conversation later, or bring up the conversation again. Hmm, something to think about.
Yikes. I think I'm going to go stare at my seven failed attempts at AI under TADS until the desire to code something like that goes away.
