[MUD-Dev] Getting info from NPCs

Travis Casey efindel at earthlink.net
Mon Jul 31 11:44:01 New Zealand Standard Time 2000

Friday, July 28, 2000, 2:13:13 PM, Dmitri Zagidulin <zagidud at allegheny.edu> wrote:

A few random comments, with lots of snippage between:

> I. "Static" response.

> The player comes up to the NPC, hits the 'talk' 
> command, and the NPC spouts his appropriate
> line, like "Beware of monsters outside the town"
> or "Please save our princess!"

> Advantages: 
> This approach also simulates a pressing need.
> That is, a worried mother is not going to
> stand around and talk about the weather to
> a strange warrior, but rather is likely to
> scream "Save my baby!"

I'd say that, if it's done as above, it doesn't simulate such a need
well enough; a mother is likely to be screaming "save my baby!" to
anyone who comes by, whether they try to talk to her or not.

> Disadvantages:
> -Repeating the same lines does not seem 
> particularly elegant or lifelike, and..
> well, will not help the players believe that
> the NPCs are "real" in any sort of way and
> exist for anything else than player enjoyment.
> This approach, does, however, have its use 
> (and is believable) in times of pressing 
> need, as I've mentioned.

When you have such a pressing need, it's also believable that the
character involved would volunteer large amounts of information to
anyone who seems remotely likely to be helpful, and would ignore
statements that are off the subject of immediate concern.  Thus,
you can combine this with III fairly easily -- just have the NPCs do
their canned talk routines no matter what the PC says.

If you're concerned about a certain type of player taking advantage of
this for humor, or that some players might be playing characters who
would give unhelpful responses, you can put in a minimum amount of
checking for such instances.  (E.g., look for someone saying "no" or
"go away" to the mother above.)

> II. A Menu of choices
> This approach to NPC information is exemplified
> by games like Diablo and Planescape: Torment,
> where the NPC presents a choice of topics
> the player can ask them about (usually as
> a menu). The choices can be dynamically 
> adjusted depending on player skills/abilities,
> and the situation at hand.

> A further variation on the menu-type conversation
> is that the character's responses can also be
> given to the player. For example:
> Orc King: Surrender now and I'll let you live!
> You respond with:
> 1. Yes Sir, whatever you say, Sir!
> 2. Can we talk about this like reasonable 
>    humanoids?
> 3. Draw steel, knave!
> [Or, if you have the Saved_Orcish_Princess
> flag set:]
> 4. Wait! I come bearing news of your daughter!

> And depending on how the player answers, they
> get into fights, adjust their alignment, advance
> the plot, etc.

To me, the above example points out the two worst aspects of this:
first, that it may give the player information they don't already
have.  For example, a player might have saved the Orcish princess, but
not know that this is her father.

The second issue is pointed out by this, but really applies to I as
well, and to some implementations of III -- it prevents PCs from using
what they may know about NPC motivations against them.  In paper RPGs,
some characters are con artists, and others are willing to say
anything to save their skins.  Such characters might well say #4 if
they know that the orc king is looking for his daughter, even if they
haven't actually saved her.

> Advantages:

> -This allows for an opportunity for in-game
> social skills and mechanics to operate.
> Reputation, honor (maybe karma/alignment?)
> all have a chance to influence the NPC
> responses. And even if the player is 
> clueless and ill-mannered, if the _character_
> has a high Social/Charm skill, the NPC
> would be favorably inclined.

This is possible in all of these.  In method I, for example, a city
guard who is "talked to" by a knight or noble might give more
information than he/she would to another character.  In method III,
you can try to parse the player's "speech" to find out *what* he/she
wants, and ignore *how* he/she asks for it, instead using game
mechanics to determine what the NPC's reaction to the request will be.
The only thing to watch out for there is clearly insulting statements
-- there are players who will take great delight in being able to get
information from a city guard with "Yo!  F*ckface!  Where's the damn
inn?"  Filtering for common swear words, though, isn't too hard.

> III. AI approach - language recognition
> Some sophisticated RPGs (didn't the Wizardy
> series do this?) allow you to interact with
> the NPCs directly by composing sentences to
> which they respond to. All the AI tricks come
> out to play here - maybe the NPCs detect a 
> key word that triggers a response, or maybe
> it actually does natural language parsing,
> whatever.

> -The emphasis now shifts to _player_ social
> skills rather than the _character_ social stats.
> This may be a good or bad thing, depending on
> personal preference.

See my comment above; character social skills can still be used.

> Disadvantages:
> -But even if possible, it might not be as
> desirable for certain situations since unlike
> (II), in the natural-language approach the 
> player does not necessarily know what to ask.
> An image of the player asking an NPC about
> everything under the sun in the hopes of 
> hitting on a key topic comes to mind.

A simple counting mechanism, and possibly the ability for NPCs to
attach flags to PCs, could help out a lot here.  For example, if a PC
asks an NPC more than, say, five questions that the NPC doesn't have a
response for, the NPC might become annoyed and ask the PC to stop
bothering him/her.  Flags could be used if a PC persists -- mark that
PC as "annoying me" and refuse to questions from him/her from now on.

Method III is what I prefer, but it's by far the most difficult to do
well.  Personally, I'd be more inclined to mix I and III than to use
II at all.

       |\      _,,,---,,_    Travis S. Casey  <efindel at earthlink.net>
 ZZzz  /,`.-'`'    -.  ;-;;,_   No one agrees with me.  Not even me.
      |,4-  ) )-,_..;\ (  `'-'
     '---''(_/--'  `-'\_)   

MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list