[MUD-Dev] Getting info from NPCs

Dmitri Zagidulin zagidud at allegheny.edu
Fri Jul 28 14:13:13 New Zealand Standard Time 2000

Hi everyone. I'd like to share some ideas about 
a topic I came up against recently, as well as 
to ask your opinion and tips on the matter.

The problem is this: 
NPCs are a time-honored source of information, 
rumours, quest info, tips, etc, in any and all RPGs.
How do we get that information to the players?

There seem to be three main approaches:

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!"
There are variations on this, such as when
the townspeople give different information
depending on whether it's day or night, 
when NPCs say different things depending on
how many times you've talked to them or when
an NPC modifies his usual line depending on
the quest actions of the player. Thus, in 
Diablo, the town smith presents the player
with a quest at an appropriate time rather
than his usual "Come in and stay a while".

Most players readily recognize this type
of NPC approach; it's fairly straightforward
to code, and gives them whatever information
the creators deemed necessary.
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!"

-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.
-Limits the amount of information a player 
can get out of an NPC.

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.
An optional component of a menu-based approach
to conversation is the character's own pre-written
speech. This kind of thing is found mostly in
console-type games -- the player selects 
'ask about sword'
and the character says (maybe in an appropriate voice)
something like "Nice sword you got there, Joe.
Where'd you get it?"
I don't know if this part (the script) is effective
or desirable in a MUD situation.
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 
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.

-The player can choose to hear only the pertinent
-An increased level of interaction - a player 
has to actually extract the info.
-Compared to the next approach (III),
the player knows at a glance what info
is available to him at that moment --
a menu-based approach is "complete".
-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.

-A little more difficult to code 
than (I).
-The player knows at a glance what info
is available -- there is no player
ingenuity or guessing possible.
-Could be considered as not too realistic, 
i.e. people don't usually wear on their 
foreheads a directory of their knowledge.

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,

-Talk about realism and immersive experience!
I think this level of interaction is the wet
dream of almost every RPG designer.
-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.
-The player must now ferret out the information
by herself -- know what to ask, how and when.

-Obviously, this is heinously difficult or
impossible to implement, and has been a 
holy grail of AI research since the beginning.
That is, of course, unless you put a human
behind that NPC :)
-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.

So, my question to you all is, what's the best
compromise we can achieve for a humble MUD
environment (while we wait for the AI technology
to mature)?

On DustMARE, we currently plan to have a sort of
mix of (I) and (II). There is a 'talk' command
to which the mobs respond in the usual fashion,
giving their scripted line depending on player 
quest flags, etc.  But also, in the description
of the NPC, the room, and the NPC dialogue, there
are "key words" denoted by asterisks 
about which the player can ask.
For example:
> l
A room
An old soldier is sitting, sharpening his *sword*
Exits: ...

> l soldier
A grizzled veteran with a *scar* on his left cheek. ...

This would mean that the player could then 
> ask soldier about sword
The soldier looks up and says "This sword
was given to me by my grandfather, who was
in turn given it by his ... "
> ask soldier scar
The soldier touches his scar, remembering.
The soldier says "What, this? The evil 
sorcerer Boffo gave this to me when I dared
to lay eyes upon his daughter. ..."

This *key word* approach seemed cheesy to
me at first. Then again, it's no worse than
the common "You look at the old soldier and
have a sudden urge to type 'ask soldier about 
sword'" - type of prompting one finds on some
MUDs. Keywords seemed an easy way to present
a menu-based conversation system without 
actually typing out a menu every time one 
encountered an NPC. Plus, it does put the 
initiative into the player's hands in that
he must still find the keywords to ask
about - they're not automatically given
to him in a menu.

Maybe, when I'm more ambitious, we can start
messing around with NPC AI... but that's 
much later.

What do you think?
How have you solved this problem in your MUDs?
If one implements a menu-type system, is it 
practical or desirable to trigger character
"scripts" like in a Final Fantasy animated
sequence? Is it practical/desirable to present
a menu of _responses_?

My appologies if this is a beaten-to-
death topic already discussed.

- Dmitri Zagidulin

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

More information about the MUD-Dev mailing list