An NPC is basically a character not controlled by the player, who can be of great importance during the many main or side quests. NPCs vary in importance and placement: they can either be annoying and useless or interesting and useful. Many Role-playing games only give the most important NPCs something useful to say or do. Talking to other characters makes no sense since they only answer with one of the standard sentences: “oh, you’re the princess!” or “good weather, isn’t it?”. This concept destroys the whole role-playing experience since it transforms role-playing into trying to find the right character to chat with, without any interest to other local inhabitants.
Everyone probably already encountered a couple of NPCs just standing there, doing nothing. When you talk to them, they respond with “hiya stranger”. When you talk to them again, they repeat that exact same sentence. After the tenth time of “hiya stranger” you begin to wonder whether the person was on drugs or not. What is the purpose of this NPC? Exactly: a useless object to fill the otherwise void space. Players can enjoy a “guess who holds the quest” puzzle. Things get even worse when each NPC is called “stranger x” or “villager y”. This does not give them any personality and give you even less reasons to replay the game since the living world feels artificial and dead. There’s a difficult balance to be kept within a city full of NPCs: do you want extreme activity but soulless beings or a less crowded area, where everyone has their own personality and interesting story?
Labeling NPCs in a RPG can also be quite challenging. In Sacred for instance, people actually bearing a quest (defined useful) have an exclamation mark floating above their head. “Good, no more randomly clicking on stupid inhabitants, right!”? Yes and no. If this system was to be implemented in non-hack & slash games, everyone would ignore all other NPCs. And what is the purpose of a less important NPC anyway?
Especially on console RPGs, it can get very frustrating to wander around town, talking to everyone to try and finish your quest. Baten Kaitos includes a subquest where you must find all relatives of a family, in order to bring them together before the grandfather dies. Members are gathered by putting their signature on a family tree so you’ll need to find them, and talk to them. If you want to finish the quest, you are forced to chat with every single NPC in the game since family members cannot be separated from other non-interesting NPCs by clothes. Auch.
This quest system can also reward you for talking to all NPCs if you intend to do so anyway. Some “Star Constellation Magnus” in the game can be traded for rare items otherwise not found. These constellations can be found by looking in every container and box you see. This works exactly the same: it gives you a reason to check containers, otherwise 50% empty or full with useless junk.
It’s very easy to implement a shield which renders quest NPCs immortal. Of course, how else can you finish the quest if you killed the person to deliver item x or get goods y? That’s one way, but not the acceptable way. Role-playing - yeah right. If you decide to attack your quest related person, you may do so. One of the consequences could be unable to finish the quest (if it’s a side quest of course). Another better one would be to include different ways to tackle this obstacle. If you kill the NPC, everyone will turn hostile or run or just ignore you depending on their parameters (easily offended or threatened, easily scared, drunk, …). The NPC will leave his quest item for you to collect, if you managed to get rid of everyone else. There could be a high level relative, standing next to the killed person, who frenzies if you hurt the NPC. Ha!
This Oblivion footage shows exactly what direction developers should not take. A non playable character should react on your actions properly and maybe even fight you. There’s an interesting interview with an ex-Troika employee, explaining the different philosophies behind NPC placement and (re)actions. The bottom line? Every NPC should have a purpose to be there, and every NPC should have something non-linear and interesting to say.
Other mechanics which greatly unbalance the importance of various NPCs include voice acting. It’s good to have voice acting, but it’s better to let everyone talk instead of only the main quest characters. You’ll more easily ignore non-voiced ones. I do know this is very hard to realize. There’s so much to be said about wandering characters in quiet towns.
Interaction with those people are mostly done throughout a limited series of questions. You can select one (which might alter his personal reaction, or even attack you, the classic Dungeons & Dragons way) and the NPC will react to that selected question. The questions are usually built depending on the active quests. You can’t possibly ask something about a stone mask if you did not start that quest first. Although this limited interaction technique is even being used in new Role-playing games (including Mass Effect), these have their own problems.
For instance, why can’t you ask someone about his neighbor? Why is his neighbor running in circles? Or why is this person not sleeping at night? Why is he aligned with faction x? What does he know about your previous boss encounter? etc. One of the early Final Fantasy games introduced a system in which you can store key words said by NPCs, and ask about them to others. This concept sounds very nice, but lacked execution. Most of the time the NPC did not know what you were talking about.
Wizardry VII introduced a nice system which allowed players to literally type in their questions. Typing “rapax” would give you information about the rapax, including the NPCs personal opinion about this race. If you type “where are rapax” the person would give you directions. This even worked beyond these simple questions. For instance, you ask a Trynnie about a forgotten monastery. He tells you it belonged to the Higardi but they left a long time ago. “In fact I ste… eurhm, got most of my stuff from them”. Ha, the little bastard! You type in “steal” and he replies “technically it’s only stealing when you get caught”. (screenshot) Beautiful! Now this is interaction. Even using rude or aggressive words like “bastard” or “kill” would net you a funny reply. Wizardry 8 even took this concept a step higher. You can see some interaction with Rattus and Rapax in the Gameplay video.
Of course keywords are still available and stored automatically if you did not follow every conversation.
Avoid at all costs:
Bad Examples of NPC usage:
Excellent Examples of NPC usage:
Arcanum bar test in Tarant. Throwing a Molotov results in splash damage within the bar. Every NPC had their own reaction:
Notice the bartender doesn't completely react the way it should be. At first, he dislikes it I attack his customers and his faction rating drops from 68 to 0 (hatred). If this rating drops below zero he'll attack me or flee. After the massacre, he simply offers me a drink. Ha!
During a NPC conference meeting, someone tries to interrupt the peace. Notice the cheering music in the background, which does not change at all while attacking key characters. They even stand up back again - instead of going to sit in the chair or running like mad. This is defiantly the best way NPCs should react.
Sir-Tech’s Wizardry 8 includes like VII a beautiful NPC interaction system which allows the user to talk about anything, including obscure words (and you’ll get appropriate reactions! Wait for vid#2 to see that) Here, I ask Marten, one of the main plot characters, about the dark savant, the higardi, “die”, “f*ck” and some more stuff. I forgot to wear the helmet so all members went insane… Whoops.
He’Li kicks my butt as I attempt to intimidate her with my impressive vocal skills. Vi teams up, shoving a boot through my rib cage. Amazing stuff, Sir-Tech. I love the voice acting. (Fully voiced, EVERY NPC).
After chatting with Trynton’s Chief, I decide to attack him with Madras (a trynnie) in my party. That was not a good idea. Glad to see he reacts properly to my actions in the game.