Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Lifelike NPCs

42 views
Skip to first unread message

Jim Aikin

unread,
Mar 31, 1999, 3:00:00 AM3/31/99
to
I'm curious how other IF writers view the value or utility of non-player
characters, and how they're implemented. What are they good for (or not
good for), and how do you make good ones?

As a first approximation, I'd suggest there are two ways to look at this
-- from the literary end and from the interactive end. From the literary
end, an NPC is, at the very least, good for populating your Great
Underground Empire, so it doesn't feel empty. You can write completely
static code in which an NPC comes onstage, says his/her piece, and exits
pursued by a bear before the player ever has a chance to interact ...
and if your writing is good, the NPC will be an effective, though
limited, addition to the game.

A bad NPC, it seems to me, is one that just sits there doing its bit of
stage business whenever you're in the room. "The butler is polishing the
silver." Eventually he'll rub holes in the damn silver if he isn't given
some other business. At the very least, I'd think it would be useful to
give the NPC a "business loop" so he/she will seem less static. Aunt
Harriet sips her tea for five turns, then gets up and stares out the
window for three turns. Et cetera; carry this as far as you like.

You can do this (although it's not very interesting) with an NPC who is
nothing but window dressing. Interactivity is a different thing.

Again, as a first approximation, I'm inclined to think of NPCs as
falling in certain categories:

-- The encyclopedia. Can be a static character, or can respond to "ask
butler about..." messages. May only have one essential piece of
information, or may be a very fount of knowledge on sundry topics. May
babble spontaneously, or may have to be coaxed.

-- The jewel box. This is an NPC who has some specific thing you need
(which may or may not be visible). To get it, you usually give or show
the NPC something else. An NPC with no action loop and one thing you
have to prise out of his/her hands is no different from a jewel box to
which you have to find the key.

-- The robot. This NPC can do something you can't: "Hercules, lift the
Buick." Responds to orders, if you know how to ask nicely.

-- The obstacle. Thieves, trolls, and the like. The puzzle is not how to
get something from them but how to defeat them. If geographically
static, the obstacle NPC is equivalent to a locked door.

There are probably other categories I haven't thought of.

The thing is, the goal of most fiction (if we ignore certain postmodern
trends) is verisimilitude. And real people don't fit into such neat
categories. Interactions with them tend to be more nuanced.

This isn't just a parser problem; it's easy enough to write a program
that allows the user to input "tell priscilla not to eat the cupcakes,"
even if the cupcakes aren't in scope at the time and the verb "eat" is
not defined anywhere in the code, let alone "not eat." The hard part is,
first, to decide what sort of functionality Priscilla should have, and
second, to feed that functionality to the player in a way that makes it
seem natural or at least forgivable to have to address Priscilla in a
very restricted way.

That's what I mean by "the value or utility of an NPC." What types of
interaction with them help move the story forward, and how can those
types of interaction be defined -- at the code level or at the player
level? How do other people see this? Just wondering.... And no, I'm not
impressed by dialog menus; I'm assuming the user can actually give typed
input.

--Jim Aikin (who has sometimes been accused of being lifelike)

new kid

unread,
Apr 1, 1999, 3:00:00 AM4/1/99
to
In article <370317BA...@pacbell.net>, Jim Aikin
<jaikin....@pacbell.net> wrote:

> ...


>
> A bad NPC, it seems to me, is one that just sits there doing its bit of
> stage business whenever you're in the room. "The butler is polishing the
> silver." Eventually he'll rub holes in the damn silver if he isn't given
> some other business. At the very least, I'd think it would be useful to
> give the NPC a "business loop" so he/she will seem less static. Aunt
> Harriet sips her tea for five turns, then gets up and stares out the
> window for three turns. Et cetera; carry this as far as you like.

A character that does nothing but this is going to frustrate the player
BIG TIME. We assume people are more important than things, so when we
see a discrete creature, we expect to interact with it.
This works well, however, for what I call "crowd NPCs". I hate scenes
like:

Park Avenue
You are walking down Park Avenue between 52nd and 53rd on a sunny day.
]x people

I don't see and people here....

Scenes in public need a crowd, and that crowd should do interesting
things, if only as window dressing. It is better if you can bury clues
in some of the random things they do.

Of course, I also think that individual NPCs should have what you call
a "business loop" as well.
>
> ....


>
> The thing is, the goal of most fiction (if we ignore certain postmodern
> trends) is verisimilitude. And real people don't fit into such neat
> categories. Interactions with them tend to be more nuanced.
>
> This isn't just a parser problem; it's easy enough to write a program
> that allows the user to input "tell priscilla not to eat the cupcakes,"
> even if the cupcakes aren't in scope at the time and the verb "eat" is
> not defined anywhere in the code, let alone "not eat." The hard part is,
> first, to decide what sort of functionality Priscilla should have, and
> second, to feed that functionality to the player in a way that makes it
> seem natural or at least forgivable to have to address Priscilla in a
> very restricted way.
>
> That's what I mean by "the value or utility of an NPC." What types of
> interaction with them help move the story forward, and how can those
> types of interaction be defined -- at the code level or at the player
> level? How do other people see this? Just wondering.... And no, I'm not
> impressed by dialog menus; I'm assuming the user can actually give typed
> input.

The real key to making an NPC come alive, IMHO, is their own
motivation. This should be the first question you should come up with
when writing any fiction, Interactive or not: What does this guy want?

For instance, your player needs to get The Golden Chalice of Snoot in
order to reach his or her goal. You decide the GCS is owned by Clarence
Dweeb, who can be found somewhere in the game. What does Clarence want?
Hmmmm, maybe he fancies himself the greatest Magic The Gathering player
in history. As a simple way to get the GSC, you could make the puzzle
be: discover that Clarence needs an ultra rare forked lighting card,
find such a card, then trade card for chalice. For a more complex
puzzle, you could decide that Clarence IS the world's greatest MTG
player, and the player must assemble an unbeatable deck of magic cards,
which must include certain things, then defeat Clarence, with the
Chalice as bet. You could make Clarence valuable to several other
puzzles as well. The trick to making him interesting, and "real", is to
give him some overriding emotion that colors ALL responses, and affects
all interactions with him.

-- NewKid (All of whose games he has *released* so far are Adult IF, so
he has given some thoughts on the subject of interesting NPCs.)

Kathleen M. Fischer

unread,
Apr 2, 1999, 3:00:00 AM4/2/99
to
Jim Aikin wrote:
>
> You can write completely
> static code in which an NPC comes onstage, says his/her piece, and exits
> pursued by a bear before the player ever has a chance to interact ...

I've been calling them VNPC's (Vanishing/Vapor NPC's) :)

> At the very least, I'd think it would be useful to
> give the NPC a "business loop" so he/she will seem less static. Aunt
> Harriet sips her tea for five turns, then gets up and stares out the
> window for three turns. Et cetera; carry this as far as you like.

But there is still the problem of what to do if the player does
something...
bizare.

> l
Aunt Harriet's Parlor

You see Aunt Harriet here, quietly sipping her tea.

> throw rock at window
You heave the rock through the window, smashing it into a million
pieces.

Aunt Harriet takes a scone and slathers it up with some clotted cream.

> remove clothes
You are now wearing nothin' but a smile.

Aunt Harriet strolls over to the window and stares outside.

Kathleen (who is trying to solve this very problem with, as yet,
very little success)

--
*******************************************************************
* Kathleen M. Fischer *
* kfis...@greenhouse.nospam.gov (nospam = llnl) *
** "Don't stop to stomp ants while the elephants are stampeding" **

0 new messages