 |
 |
 |
 |
 |
Author |
Message |
Kugrian
Joined: 18 May 2005 Posts: 4 Location: England
|
Posted: Wed May 18, 2005 9:19 am Post subject: |
|
|
When I try to make an npc, I try to make them as interactive as possible. A big part of this is an attempt to get the players to speak with the npc, rather than kill them for their boots - though I do also have a more than slight intrest in the aforementioned A.L.I.C.E bots.
We have set accents in my world also, so breaking up phrases becomes force of habit.. which does help to get around the language barrier a lot more.
Code: | talk (can i have|can ah have|canst i have|how much|i want) (a|is|are the|be da|
~ are th'|are t'|is a glass of|a tankard of|a cup of|is the)
~ (drink|drinks|liquor|brandy|ale|it|whisky|brew|ale|beer|mead)#(menu)
talk (vat|what|wot) (does you|doth) (your|yer|thy|thine|ya)
~ sell#(menu)
talk (vat|what|wot|wots|wot's|whats|what's) it cost#(menu) |
The above is a snippit from a barkeep brain I made. I try my best to prevent players frustrating themselves to the point of boredom, not because I want to make things easy for them, but as much as possible, I'd like npcs (in my game) to be viewed as people.
The biggest problem with this, as already mentioned, is the spam. Not so much from npc to npc (there's code in to make them ignore each other unless otherwise specified) but when two players are in the same room talking to each other. An ordinary phrase coming up in conversation can often set the npc rambling, making it more of an annoyance (and possible more of a killing target just to shut it up!) than if it was silent.
Ideas have rolled around on how to fix this, but trying to keep players and npcs on as much of an equal footing as possible brings around problems. One is to have a specified command for talking directly too people (sayto) and having the npcs only trigger if they are spoken directly too. An issue with this is the npcs have a lot of information that could aid newer players, and they would be the most likely not to know about, and thus not use, such a command. Another is a brain that could get into different states, each being triggered by a primary phrase or question so the conversation within that state would be limited and cut down on spam. Of course, you can't predict what players are going to ask or say, and even thinking about creating something like that gives me a headache!
Anyway, just some random mumblings.. hopefully some of it will be of aid.[/quote] |
|
Back to top |
|
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
Author |
Message |
KaVir

Joined: 11 May 2005 Posts: 565 Location: Munich
|
Posted: Wed May 18, 2005 9:30 am Post subject: |
|
|
Quote: | Ideas have rolled around on how to fix this, but trying to keep players and npcs on as much of an equal footing as possible brings around problems. One is to have a specified command for talking directly too people (sayto) and having the npcs only trigger if they are spoken directly too. An issue with this is the npcs have a lot of information that could aid newer players, and they would be the most likely not to know about, and thus not use, such a command. |
Then why not just inform them?
You could have mobs make the occasional comment (such as 'good morning'), and have some that deliberately target new players. Then just follow the message up with a hint - eg:
The old man peers at you suspiciously and asks, 'Are you local?'
<HINT> To respond to the old man, type 'sayto man <message>'
You'd probably only want to target new players a few times before deactivating the hint, otherwise it'd get a bit annoying. You could also deactivate it the first time they used the 'sayto' command, as by that point they'd already know how to talk to mobs.
If a player who still qualifies for the hints uses a regular 'say' command and there are no PCs in the room but there IS a mob who has spoken within the last 30 seconds, you could also follow up with another hint like:
You say 'no, I'm not local'.
<HINT> The old man won't listen unless you explicitly type 'sayto man <message>'. |
|
Back to top |
|
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
Author |
Message |
Kugrian
Joined: 18 May 2005 Posts: 4 Location: England
|
Posted: Wed May 18, 2005 9:35 am Post subject: |
|
|
We have a strict ic/ooc policy, so that wouldn't really be possible unfortunatily. The only way to do such a thing with current rules would be to have a player take the newer stranger to an ooc area and explain it too them (of course they'd be helpfiles about it, but how many new players read them? ) |
|
Back to top |
|
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
Author |
Message |
KaVir

Joined: 11 May 2005 Posts: 565 Location: Munich
|
Posted: Wed May 18, 2005 9:38 am Post subject: |
|
|
Kugrian wrote: | We have a strict ic/ooc policy, so that wouldn't really be possible unfortunatily. |
Surely you could have OOC hints? It's conceptually not much different from help files, except that it's context-specific - yet I'm sure you'd agree that help files shouldn't be excluded from RP muds on account of being OOC? |
|
Back to top |
|
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
Author |
Message |
Kugrian
Joined: 18 May 2005 Posts: 4 Location: England
|
Posted: Wed May 18, 2005 9:42 am Post subject: |
|
|
We have a hints channel that spews out a hint randomly selected from a list every few minutes, but real time hints just wouldn't work. Thinking about it, could have such a thing in the newbie school, just not in the game proper. |
|
Back to top |
|
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
Author |
Message |
KaVir

Joined: 11 May 2005 Posts: 565 Location: Munich
|
Posted: Wed May 18, 2005 9:52 am Post subject: |
|
|
Quote: | We have a hints channel that spews out a hint randomly selected from a list every few minutes, but real time hints just wouldn't work. |
I'm afraid I don't see why...surely they're far more useful than random hints (which typically end up as little more than annoying spam that most players switch off)? |
|
Back to top |
|
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
Author |
Message |
Kugrian
Joined: 18 May 2005 Posts: 4 Location: England
|
Posted: Wed May 18, 2005 9:56 am Post subject: |
|
|
They wouldn't work because the mud owner and admins (of whom I am neither) would not allow it. |
|
Back to top |
|
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
Author |
Message |
KaVir

Joined: 11 May 2005 Posts: 565 Location: Munich
|
Posted: Wed May 18, 2005 10:03 am Post subject: |
|
|
Ah, the joys of bureaucracy  |
|
Back to top |
|
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
Author |
Message |
Ashon
Joined: 11 May 2005 Posts: 86 Location: Seattle
|
Posted: Wed May 18, 2005 2:13 pm Post subject: |
|
|
Why can you, parse the say string for the name of the NPC, and set the current NPC target to that NPC. And as long as the player targets that NPC, they will continue to ramble?
This opens up a lot of things, which can lead into a more interactive social environment with NPC's. It could also simplify commands. give coin (to bartender) gasp (at bartender), etc etc. |
|
Back to top |
|
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
Author |
Message |
Spazmatic
Joined: 18 May 2005 Posts: 76 Location: Pittsburgh, PA
|
Posted: Thu May 19, 2005 12:21 am Post subject: |
|
|
One option (my personal favorite and meekly implemented in my toy codebases) is to rely on databases and limited natural language domains. Personally, the products I've achieved result in NPCS sounding very... stupid and non-English-speaking, primarily because I don't have good information-to-speech algorithms, but your mileage may vary. At the very least, using this technique could focus NPC development on a good knowledge base instead of lots of case-by-case coding.
I was first introduced to this idea at the UW, so I'll just post a link to their Natural Language Interface page for people to skim, rather than personally rambling on about PRECISE. Basically, though, for a certain, very useful class of questions, it's possible to map natural language to SQL queries with 100% precision. Outside of that class, it often still performs well.
PRECISE: http://www.cs.washington.edu/research/nli/ |
|
Back to top |
|
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
Author |
Message |
Molly O'Hara
Joined: 11 May 2005 Posts: 99 Location: Sweden
|
Posted: Thu May 19, 2005 7:32 am Post subject: |
|
|
On a slight tangent - we have a really funny and slightly annoying bird in one of our zones, which is mainly a mimicking parrot. It has a list of about 30 pre-programmed one-liners that it answers with randomly, if you strike up a conversation with it.
But it also picks up any phrase that the player who triggered it says, and adds those to its random list. So naturally the peanut gallery in our mud are occasionally having a field day with it, teaching it to say things like 'Bubba is a total moron.' or 'Boffa is the coolest player in the entire game.' and other 'witty' remarks.
It can be a bit irritating, and it can be a bit spammy, but at least the players have a free choice whether to start it or not. And the things it says are just as witty - or stupid - as the player who said them first.
The bird resets when the mud reboots, so the new phrases don't stay forever either. |
|
Back to top |
|
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
Author |
Message |
Kjartan
Joined: 13 May 2005 Posts: 110
|
Posted: Thu May 19, 2005 7:21 pm Post subject: |
|
|
Kugrian wrote: | The biggest problem with this, as already mentioned, is the spam. Not so much from npc to npc (there's code in to make them ignore each other unless otherwise specified) but when two players are in the same room talking to each other. An ordinary phrase coming up in conversation can often set the npc rambling, making it more of an annoyance (and possible more of a killing target just to shut it up!) than if it was silent. |
The way I am tackling this problem is to use the following logic:
1. if you directly greet the NPC as part of what you say, that starts a conversation (creates a conversation object between you and the NPC - conversation object also carries things like most recent antecedent of "this" and "him" etc)
2. otherwise if there's no ongoing conversation and you say something and the NPC can't see anybody else in the room capable of talking, he'll assume you mean him and take it as mildly rude that you didn't open with a greeting of some sort.
3. otherwise if there's a conversation going already and you say something, he'll assume you're talking to him
4. and if you say "thanks" or a farewell, he takes that as a potential or definite conversation-ender |
|
Back to top |
|
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
Author |
Message |
eiz
Joined: 11 May 2005 Posts: 152 Location: Florida
|
Posted: Fri May 20, 2005 11:37 am Post subject: |
|
|
Spazmatic wrote: |
I was first introduced to this idea at the UW, so I'll just post a link to their Natural Language Interface page for people to skim, rather than personally rambling on about PRECISE. Basically, though, for a certain, very useful class of questions, it's possible to map natural language to SQL queries with 100% precision. Outside of that class, it often still performs well.
|
It looks neat, but:
Towards a Theory of Natural Language Interfaces to Databases wrote: |
While modules like the tokenizer and the equivalence checker are intractable in the worst case, in practice PRECISE is quite fast taking an average of 6 seconds per query (wall-clock time).
|
So: how does this work out for you, performance-wise? |
|
Back to top |
|
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
Author |
Message |
Greggen
Joined: 16 May 2005 Posts: 36
|
Posted: Fri May 20, 2005 12:11 pm Post subject: |
|
|
eiz wrote: | So: how does this work out for you, performance-wise? |
It's speech, so the reply doesn't have to be instant. It will actually seem more human if there is a delay. |
|
Back to top |
|
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
Author |
Message |
eiz
Joined: 11 May 2005 Posts: 152 Location: Florida
|
Posted: Fri May 20, 2005 12:12 pm Post subject: |
|
|
Greggen wrote: |
It's speech, so the reply doesn't have to be instant. It will actually seem more human if there is a delay.
|
Except MUDs are multi-user systems. It's not acceptable to expend excessive amounts of CPU time on one user. |
|
Back to top |
|
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
 |
 |
 |
 |
|
 |