Realistic NPCs (Active vs Reactive)
by Dan Shiovitz

* Subject: (General) Realistic NPCs (Active vs Reactive)
* From: (Dan Shiovitz)
* Date: 9 Sep 1995 19:15:50 GMT
* Newsgroups:
* Organization: University of Washington, Seattle

(This was discussed a little, I believe, around the time _Christminster_ came out. It's an important topic, so I thought I'd bring it up again.) (There are some vague spoilers for _Christminster_ and Curses here, which provide decent examples for what I'm talking about.)

In whatever next game I put out, I intend to have a real NPC (since I didn't have any real ones in my last game). To bolster the illusion of reality in an NPC, there are a couple things you can do. One of the things I was thinking about doing was having the NPC actually be active, rather than reactive. Most NPCs in most games are purely reactive. They don't seem to have any lives of their own, they take no initiative, they have no curiousity about the world, they have no apparent goals that they work to achieve, and (in worst cases) they don't even seem to have a reason for being in the adventure. This doesn't do much for my suspension of disbelief.

For instance, in _Christminster_ Professor Wilderspin has a one-room living space. If you inspect the fireplace, you notice the griffins to either side, and notice that they're one-eyed. Asking Wilderspin about them gives the response that they're unusual, created by such-and-such a person. Looking up their creator in your college book shows that he was rumored to have created a number of secret passages, and so on, and so forth. Professor Wilderspin is a professor of archaeology. He's used to pyramid explorations, and what-not.

Further on, we're shown he's curious and fairly intelligent. Yet we're supposed to believe he's never even wondered about the griffins? We're expected to believe he's lived in this room for who knows how long, and never even accidentally pushed an eye? Furthermore, to make matters worse, when you take the initiative and push an eye, all he says is something to the effect of "Wow, that's neat." There's no feeling there, there's no move towards "Hmm, what happens if we push both eyes at once!" [The above should not be taken as a personal attack on _Christminster_, persay. I enjoyed the game immensely, but its somewhat-detailed NPCs only show how much farther we have to go.]

So, I was thinking about making the NPC in my game be a little more active, more willing to take action (and maybe tell the player what to do!). The obvious problem with that is how to keep the NPC from solving all the puzzles, then? I'm not really sure what to do about that. One thing to try, I guess, is to have some puzzles that are character-specific, and some more that require cooperation. I suppose the NPC could even be used as a hint system, having them solve certain puzzles if the player takes too long. Anyone got other thoughts on the topic?

My ideal NPC interaction would be something like this:

South end of Attic
Igor is here.
A robot mouse is on the floor.
There is a small hole in the western wall.

Igor says "go west" to the mouse.  The robot mouse zips westwards into the
Igor sighs.  "The mouse can't hear me from out here," he says.
You bend down to the hole and say "go west" into it.  "Hey, good idea," Igor 
says.  He bends down and says "go north" into the hole.  You hear the whirring
of wheels.
Igor glares at you.  "Hey!  I'm the one with the map of the maze, here."
He bends down to the hole and says "go north" into it.  You hear the whirring
of wheels.
"Fine," he grumbles, handing you the map.  "You can do all the fun stuff, see
if I care."  He stomps off to the north.
You hear the whirring of wheels, and an excited beep from the hole.

I'm not sure how much effort this would take to do, but I think it is doable today with the programming we have.

 The Grim Reaper **     |
  Dan Shiovitz   **    |     Aude
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   |    Sapere
       _Music of the Spheres_ : Coming Nov '95  |

Discuss this article in the forums

Date this article was posted to 7/16/1999
(Note that this date does not necessarily correspond to the date the article was written)

See Also:
Story Development

© 1999-2011 All rights reserved. Terms of Use Privacy Policy
Comments? Questions? Feedback? Click here!