Thursday, September 5, 2002

[Ragnarok image]

Non-Player Characters, Part 1

(I never much liked the term “Non-Player Character” (NPC); it seems too technical and abstract. Well, no matter.)

The players are not the only people in this environment; there are also NPCs, which are characters created by and controlled by the system. NPCs can be antagonistic, such as monsters, or friendly, like most merchants (and I just set up a system to define different levels of “friendliness” for NPCs).

So, how does the game represent these NPCs to the player? When I implemented this sort of system in the past, I had it work the same way that traditional RPG’s work: the GM represents the NPCs, like so:

The Banshee slashes at you with her claws, doing 8 damage.

However, after doing this for awhile, I realized that it was rather unsatisfying to interact with NPCs “through” the GM, as you can see:

! ask Parn about castle
Parn says, "I don't know anything about the castle."

See how that’s unnatural? It’s frustrating to have to talk to the character through another person (even if the “person” is a bot, in this case).

[Ragnarok image]

With my IRC-based MUD, each NPC that’s in the same room as the players will be played by a separate bot, which will join the channel when the players join the room, and part the channel when they leave the room. That bot’s nick will be the same as the name of the character, and the players can interact with the bot directly.

This creates certain complexities. For example, the GM has to keep a stable of bots online at all times, and direct them to take on a particular persona and join the channel at appropriate times. For another, the bots will have to communicate with the GM if they are killed, and the outcome of any battle. Also, if the players start travelling across the world, it may be very annoying to see bots joining and parting the channel in massive waves as the players move from room to room.

So, we’ll see how this works out.

Leave a Reply

I work for Amazon. The content on this site is my own and doesn’t necessarily represent Amazon’s position.