The Mighty Fine NPC (and His Many Friends) 
A Feature by Jeremy Bursey
   

Introduction: 

Last year I shared ways for you to enhance your newbie game from a lackluster experience to something memorable in an eight-part feature called “Better Than the Worst: A Newbie’s Guide to Sidestepping Ridicule.” About halfway through that series I discussed how to add depth to your NPCs. 

My guess is that you remember neither the articles nor the discussion. But now that we’re reaching the anniversary of the series, I thought I’d reenter the fray and explore the subject of NPCs in greater detail, and in the process, perhaps, jog your memory. 

I also thought I’d give you some new ideas along the way. 

The following is an idea of what NPCs could become when you (the designer) allow them their full potential. 

The Question of the Ages: 

What makes Vikings of Midgard better than Wandering Hamster? 

Both are graphically appealing. Both are well designed. Both have memorable characters. Both won gamers’ attention. 

So which one is better? 

Go ahead. Think about that a moment. 

I’ll wait. 

Okay, this was actually a rhetorical question, as both incorporate a number of design elements that stand above the norm. You didn’t really have to answer it. 

The real question, then, is what makes either game better than the countless other wannabes released into the community? 

Think about that. 

Before we get too steeped in this topic, though, let’s bypass the obvious answers—stuff like gameplay and graphics; those things that dominate discussion threads every year—and move on to the heart of this article: 

The NPCs. The little people that populate the world. That infernal bard who strums his instrument in the bedroom of Valhalla. That Plip Tamer who cures Bob whenever Bob takes a hit. The NPCs. The lifeblood of RPGs. The people you shouldn’t screw up if you want your game to be anything of memory. The characters that make both those titles better than the wannabes. 

We need them. We need them all. The information givers, the BS chatters, the flavor-texters. Everyone. So why must we make them so incredibly boring? 

A Hero in Need: 

Consider this: you just walked into town, you’re dirty and you stink, your wife is in labor, and you’re out of gas. You need five bucks from anyone willing to help, so you start begging, swearing to yourself that you’re not looking for beer, though you could really use a few. So what happens when you ask the townies for change?  

“Hi,” says one Generic Game Townie. 

“Hi,” says another. 

“I like brownies,” says a third. He seems to understand that mentioning his preference for baked goods gives him more life than the greeters, but he’s still a bit off. 

Others deny comment, as they were never given a text box. 

You walk away dejected, uncertain why you ever came to this dried-up town. 

NPCs and Why We Need Them: 

Since NPC construction has one of the most forlorn results of OHR game design, it’s no surprise that most games are forgettable. Sure, we can stir the pot with nice map tiles and intriguing puzzles. Both (among other conventions) go a long way, and should not be discarded as saving graces for games. But what good is the game if the NPCs are as dull as a Saturday night in Antarctica? 

We need to wake up and realize that boring NPCs make for boring experiences. And boring experiences make for boring games. 

And boring games are forgettable. 

So how can we spice them up? 

Make cooler NPCs. 

I realize this is ambiguous, though, so let’s first discover what the NPC is there for. 

The core of an interesting NPC comes through what he says, obviously. Just as dialogue is the best way to convey a story in print, it is also the best way to propel a story in a visual world. To answer the question of why we need them, we need NPCs to move the story forward, plain and simple. 

But we also need them to add dimension to the world. 

Think of your barber. You pay him to cut your hair. Whether he says a word or not, he’s still gonna cut your hair. Will he help you reach the end of your quest? Probably not—your car is in a better position for that. But will he make your journey more interesting? That depends on what (if anything) he talks about. 

He’s a barber, he knows scissors, and it’s easy for him to talk about them. Do you want to hear him talk about scissors? Unless he uses them in his secret life, probably not—you’d be more interested in hearing about the ball game or his daughter or something other than scissors. But even if he talks about scissors, it’s still better than him talking about nothing (or saying “hi” over and over). 

Whatever he talks about, though, his story makes your barber visit a little more exciting. 

And that’s why we need NPCs. Without them, we have nothing. 

This doesn’t mean, however, that we need them just to talk. We don’t go to the barber just to hear tales about scissors. 

Shaping the NPC Design: 

Through my own design journey, I’ve come to realize something: NPCs are multi-dimensional characters if handled properly, but cardboard cutouts when they aren’t.  

Despite what most RPGs may teach us, they’re more than informational kiosks designed to point the hero into a general direction; they’re inhabitants of a different world with quirks and duties. To treat them with the type of dignity that helps them propel games into memorable experiences, we must first recognize who they are and what they can become. 

So, for the rest of this article, I’m gonna list the different identities that an NPC can claim, and make some suggestions on how to build them, and hope that you can find ways to use them to make your world a livelier and more memorable place. 

For this discussion NPCs will fall into one of five different class systems: Standard, Unique, Automated, Special, and Untouchable. 

The Standard Class: 

Every RPG offers characters from this 101 class. These characters are the townies that wander every municipality, sharing the basics with the hero. These are the ones who make up the core of the game’s interaction. Without these guys, the world is empty. 

--The Meanderer--

The most common NPC type. This is the villager who walks aimlessly in front of businesses telling the hero that he can sleep at the inn for cheap. This is the soldier who travels the castle walls wondering how he’ll ever become mighty. This is the happy face who says “Hi” on command. 

The majority of background and throwaway text should be reserved for these guys so the player isn’t left wondering what information is pertinent and what’s wasting his ears. 

No special scripting is required to make him. Just highlight the “wander” move-type and go on to the next one. 

--The Loiterer--

Not as common as the Meanderer, but still prevalent in every RPG. Serves one of two purposes: to inform, such as the Meanderer does (while standing still), or to block progress, such as a guard might do. These are helpful if you need a character to be in the same place every game. 

This type also has a bit more personality than the Meanderer has, since Loiterers need a reason for standing there. 

This is the default character in the editor. Just give him a picture, some text or a plotscript, and plop him down (with Control + Arrow if you need a specific direction). 

--The Path Drone--

The least common of the Standard Class, these are the people who journey in straight lines and turn whenever they run into something. They usually operate in the background for flavor or serve as advanced guards seeking to arrest the hero, and are easily the most interesting of the Standard types, and coincidentally, the most under-used in OHR games. 

These use the move-types “Pace,” “Right Turns,” “Left Turns” or “Random Turns.” It usually helps to block them off with wallmaps or invisible NPCs (to be discussed later) to create a set path. It also helps to highlight “Do Not Face Player” if you intend to keep them on that path after finishing an interaction. 

--The Thwarter--

These are the chickens that elude you and the dogs that trip up your feet. These are the scaredy-cats that make it difficult to catch the prize and the hunters that make it difficult to escape retribution. Like the Path Drones, they are more interesting than the common Meanderers, and like the Path Drones, they are seldom used in OHR games. 

These NPCs are defined by their “Avoid You” and “Chase You” move-types. Speed is the key to making them interesting (or pointless). 

--The Dramatist--

This NPC type will fool you. At first glance you’ll think he’s a standard Meanderer or Loiterer, destined to stand around and feed you useless information (or possibly something helpful). But then something happens. He’ll walk away. Or he’ll vanish in a puff of smoke. Or he’ll flip you off and then vanish in a puff of smoke. 

He’s a normal NPC who ends the conversation with a plotscript. Sometimes he’ll give you something. Sometimes he’ll leave the room. But one thing’s for certain: he’ll never repeat his initial response. Why? Because repeaters become forgettable and he has to be the center of attention. And also because he’s scripted that way. 

This is the best Standard type to use when advancing the story. Build as you would a normal NPC (using one of the move-types above), but end his dialogue with a plotscript trigger that signals his next action. Also, assign him an “On” tag in case you need him to disappear for good after the dialogue interaction. 

The Unique Class: 

This is the next level of NPC design. It sits on a plateau that most OHR games avoid. 

These characters function like Standard NPCs, but are improvements to presentation. This is the class where the memorable NPCs begin (on an aesthetic level—it still takes great dialogue to make a memorable character, which Standard Classmates can still accomplish). 

--The Show-Off--

This NPC does more than just stand around when he’s standing around. He’ll sit at a table eating dinner. Or she’ll lie on a couch eating fruit. Or it’ll wag its tail begging for scraps. 

The Show-Off doesn’t really go anywhere. He’s too self-important to walk around. But he’ll talk when prompted. He’ll look when nudged. He’ll still interact. 

In the Vikings of Midgard, the bard of Valhalla, called Bragi, is one such NPC. He doesn’t do anything other than pluck his strings. He doesn’t walk. He doesn’t chase anything. But he doesn’t loaf around, either. And he can still feed important information when the occasion calls for it. 

What makes him interesting? He strums a mean lute. And he’s also one of the few NPCs I remember from the game. 

There are two ways to make a Show-Off: through a full walkabout set or through a handful of map tiles. 

If you design a full walkabout set, (like what Fenrir did for Bragi) make sure to forsake directional frames (up, down, etc.) and create a range of animation instead. Then give the NPC a non-standing move-type and make sure to block him in with wallmaps or surrounding NPCs. 

If you go the map tile route (which I find is easier), just make sure you adapt it to your animation set, or create a plotscript that writes a new map block to a given location every couple ticks (and loop it), and attach an invisible NPC to the map tile character so the player still has something to interact with.  

Note: If you use extended map tiles (where the animation is longer than what the editor allows), make sure the script knows to run the animation on the current map only. Use a check map function during each cycle to ensure the script doesn’t manipulate the wrong tiles on another map. 

--The Random Speaker--

This NPC can take many forms, but his approach to dialogue separates him from common brethren. Instead of delivering the same information (or story) over and over, he speaks from a bank of options, giving the hero something new to listen to each time he talks. 

While tags or global variables are effective ways to keep the dialogue fresh with each activation, random numbers in a dialogue script add unpredictability to the NPC’s chain of response, and thus keep him interesting. 

Attach a dialogue script to the NPC instead of a text box to make him a Random Speaker. 

--The Shape-Shifter--

This NPC doesn’t like who he is, so he’ll transform into something else. What may begin as a loitering guard may eventually become a sprinting Path Drone (who’s gone topless!). The hero, of course, wonders why. Did something spook him? Is he crazy? That’s for the player’s curiosity to find out. 

This type of NPC requires two identities (with the walkabout sets to match) and a script that uses “alter NPC” in one or more capacities. Sometimes a tag is needed to keep the new identity saved.  

--The Teleporter--

This NPC type is hardly unique in practice, but the rarity in which he’s used in OHR games allows him access to this exclusive class. 

He looks like a standard NPC (usually a Meanderer or Loiterer). And most of the time he’ll act like one (especially the Dramatist). But what separates him from the Standard Class is his uncanny ability to show up in more than one place throughout the game. 

The Potted Cactus from Wandering Hamster is one such example. While it may gravitate toward certain landscapes, there’s no guarantee it’ll show up in the same place every time. And the player has to hunt for it if he wants to find it. 

The Teleporter works well as a puzzle guide (the person who stands at the end of each leg of a mystery to tell you where to go from there), a traveler (a character who sees the world and ventures to tell you about it every time you encounter him in some new exotic place), or a stalker (a villain who creeps out of random shadows to surprise the hero). 

To build a Teleporter, be sure to assign him a couple tags for each map he’s used, and then decide where he’ll show up first. The NPC slot used for first encounter should have one tag assigned only and it should default to “off.” Once that tag switches “on,” then that’ll trigger the second version of the Teleporter (in another location) to appear. The second version should have a default “on” tag (the one that turned on after the first version vanished, or walked away, or did whatever the script demanded) and a default “off” which will later switch to “on” when the third encounter needs to be set up.  

The Automated Class: 

This is where things get tricky for the designer, but far more rewarding for the player. 

This class is a rare find in old school RPGs and virtually non-existent on the OHR. This is also the class that prompted me to write this article. 

The members of this fraternity go beyond the unique class and well beyond the standard class by adding an extra layer of personality to its subjects. It drives an NPC to do something, to function as a character and not to remain just a moving statue. It breathes life into an NPC where dialogue falls short. 

And it’s not the least bit difficult to make if you know what you’re doing. 

--The Routine Keeper--

This is the advanced version of the Show-Off. While the Show-Off will stick to an ongoing routine in the same location indefinitely, the Routine Keeper will attempt to travel. He’s also an advanced version of the Path Drone, as the travel path will keep him fixed on a loop. 

For anyone who’s read my journal in the last couple weeks, you might’ve seen a video about a billiard hero cowboy named Buck. This champion of the pool table hits a ball, circles the table, hits another ball, circles, yada yada, until he knocks the last ball into its original position and starts over again. He continues to circle the table and hit balls infinitely until the player leaves the bar. 

And he’ll keep with the path because he’s on a loop. 

The Routine Keeper is the most conservative of the Automated Class, which is surprising considering that he branches from the vanity of the Show-Off. He’ll go about his business, whether the hero interrupts him or not, and will always return to his starting point when the job is finished (for the moment). 

And his business is always about more than just wandering. Maybe he’s constructing a bridge. To build the bridge, maybe he has to travel to one side, pick up a board (through NPC animation—a topic which you can read more about in “Better Than the Worst”), walk to the opposite side with the board in hand (which the player can see dangling as he walks), set it down, and return to his origin where he does it all over again. It may be that he never finishes the bridge, but the important thing is that he’s doing something. 

NPCs that do something, whether shooting pool or building bridges, are always cooler than NPCs who stand around with their thumbs up their butt (unless the designer goes to great pains to show the NPC twiddling his thumb inside his butt). 

To make a Routine Keeper, you need to build the required number of walkabout sets to properly show the working animations (Buck has six frames of “shooting” animation for each direction (24 non-walking frames total), though he never actually uses the “facing east” set). And you must remember to include the base set that shows normal walking animation (Buck has two sets: “normal walking” and “walking with a cue stick in hand”). Once all your NPC’s frames are drawn, then you need to draw the accompanying NPC frames if any apply (in Buck’s case, I had to draw all the billiard balls in a cluster and then copy/paste them into new frame, readjusting the location of the cue ball and whatever ball it hits each time until I could get every ball back to its original spot). Then, when all the frames are drawn, you can start using plotscript loops (“while” or “for” commands), NPC animation (you’ll be switching back and forth from animation sets to walking sets throughout the scripting, so remember the walkabout set numbers for each), and sound effects to tell the tale. 

A quick tutorial: if you’re still unfamiliar with how to do NPC animation, you simply assign the NPC a starting frame by altering him to the starting set of the animation (alter npc (who,npcstat:picture,set number)), then set his direction to coincide with the first frame (usually north), set his frame number (0 or 1 = left or right), and add a wait command of 2 ticks (or more if you want slower animation). Then repeat with the following frame, the new direction, the new walkabout set, etc., until the animation is complete. 

Important note: While you can attach dialogue to a Routine Keeper, you can also screw up the pattern upon activation if you forget to assign the “Do Not Face Player” attribute to the NPC. Do not forget to do this. 

--The Patterned Veteran--

This is a Routine Keeper who operates on a timer rather than a loop. 

This NPC has the freedom to wander around or stand still, but always has a clock nipping at his shoulders. Once the timer goes off, he reacts, regardless of where he’s standing. 

The Patterned Veteran is little more than a Standard Class NPC with an extra layer of personality. Instead of simply walking around a field, he might stop a minute into his journey to light a cigarette. He’ll still walk. And he’ll still communicate to the hero whatever the designer thinks he needs to say. But every so often he’ll light that cigarette, or stamp it out if he’s already holding one, and then carry on with his milling. 

Building a Patterned Veteran requires the same level of graphic detail as that for a Routine Keeper, but a different approach to scripting is needed. Rather than stuff everything into a loop, you’ll want to initiate a timer that activates the animation upon expiration (providing conditionals like “current map” are met). Then, when the animation is finished, you’ll want the script to re-check the conditionals needed (again, you’ll want to be sure to check the current map so the timer doesn’t extend into another map and in turn effect the wrong NPC), and then stop the timer if conditions aren’t met or reinitiate the timer if they are. 

This type of NPC can operate under any standard bitset. The timer is what separates him from the Standard Class. 

--The Wandering Hybrid--

This is the most complex of the automated NPCs, as it follows its own will—for the most part. 

The heart of the Wandering Hybrid is his ability to wander. Freely. He can go wherever the heck he wants. He can do it without chain smoking every minute. He can do it without getting stuck in an endless loop of billiards. He has it easy. 

Providing he stays away from the “magic tiles.” 

Like the Patterned Veteran, the Wandering Hybrid has a timer following his every move. Unlike the Patterned Veteran, his timer allows little breathing room. Specifically, his timer expires every five ticks. 

But what happens when the timer expires? 

Nothing, if he’s standing on a normal tile. 

Or everything, if he’s standing on a “magic tile.” 

The timer will run a script that checks his location and direction. As long as it keeps returning conditionals that the script could care less about, the timer will keep resetting to the Wandering Hybrid’s ignorance. But once the NPC’s location and direction matches that defined in the conditional, the timer will launch a script that changes the NPC’s movetype to “Stand Still” and then proceed to take over his life until the action he’s supposed to perform is complete. 

So, when that prisoner wanders the highway aimlessly, he’s free to do nothing to his heart’s content, up until the moment he stumbles next to that trash pile. Then, according to the timer, his wandering moments end and he breaks out the poker to stab the hearts out of polystyrene cups and stows them into a plastic bag. 

Building the Wandering Hybrid requires a mixture of tactics used in building the first two automated NPCs. 

Note: Of the three, this automated NPC type is the most at risk for misalignment with tiles. I’ve yet to figure out how to combat this problem. 

--The Behavioral Enigma--

The final class of automated NPC goes a step beyond the others in that he can switch his performance according to whatever he wants to do at the moment. This in turn makes him the most multi-leveled NPC of all the NPCs, the most unpredictable, and the most uncertain of what he wants. When he walks to the edge of the lake, he can jump in, drink from it, or pick up a rock and throw it. When he’s circling the pool table, he can hit the next ball, break the circle and kiss the cowgirl, or smack the hero upside the head with the cue stick in passing. It’s never clear what he’ll do next. 

To build a Behavioral Enigma, choose any or all of the previous automated types as your base, and then add a call for a random number at the beginning of the script. Whatever the Enigma does next will depend on what corresponds to the number drawn. 

The Special Class: 

Members of this class can also be considered non-NPCs. These guys are usually invisible NPCs masquerading as objects, but once in awhile will amount to something else. 

--The Activator--

This is the more common type of non-standard NPC in OHR games. This is the invisible thing you step on when you’re about to launch a plotscript, or that switch you pull when you’re trying to open a door. Its role is to lie in wait for the player to walk across (or fiddle with), signaling the creature at the top of the mountain to swoop down and attack, or to inform the love interest to flee the hero’s living room. 

To make this, attach an empty walkabout set to the NPC’s picture and place it wherever the player is supposed to launch a sequence of some sort (either on the floor or on a wall). Then test it a few times to make sure that creature will in fact jump off the mountain. 

--The Corral Dog--

This is an invisible step-on NPC whose only purpose is to keep other NPCs from walking outside a defined boundary established by the designer (or to keep outside NPCs from interrupting another NPC’s travel path). These are usually laid out as a border for the confined space, and have no additional properties attached. 

The player will never see them (unless he opens the game in Custom). 

--The Puzzler--

This NPC often switches properties (a blue light becomes red, a “step-on” becomes a “touch”) to force the hero into a system of mazes (not necessarily in the traditional sense of the word, but in concept). This monster devours tags and global variables, and gives the hero a difficult time sorting through the mess it makes. 

While turning this NPC on and off with tags has its place, a better Puzzler will alter its properties using the “alter NPC” command to throw the player for a loop (see Shape-Shifter for ideas). 

--The Push-Block--

A cousin to the Puzzler, this NPC rarely possesses any property beyond pushability and is clustered in large groups to make passage for the hero much harder. This NPC is widely considered the lazy-man’s puzzler. 

To make, just create a normal NPC and set the pushability bitset to anything not marked “off.” 

--The Squeaky Chair--

This type of NPC is a latent form of Push-Block, usually reserved for flavoring a room. While it can be pushed freely, it’s never clustered and only serves to add dimension to the room and should never hinder the player’s ability to escape. Also benefits from having a “Touch” activation and a script that triggers a sound effect (to enhance the feeling of movement). 

--The Treasure Box--

This is the other common non-standard NPC in an OHR game; the one that offers the hero a prize when activated. It’s also one of the few types that can only be used once. 

To build this NPC, first create a map tile showing the bottom section of the box, then create a walkabout that covers the top section. Place the NPC on top of the map tile, make sure it’s set to one-time use, and there you go. Can also have a script triggering a sound effect upon activation for greater depth. 

Note: This type is not limited to actual treasure boxes. Lost coins on the ground, documents found on desks—anything that the player can consume from the map and receive into inventory fits this type. 

--The Scenery Trigger-- 

This is the invisible NPC you stick behind paintings, suits of armor, or anything you want the hero to comment about. This NPC will generally offer nothing more than flavor to a complex world, but can quickly become one of the most charming elements of a game if handled well. Point and click adventures thrive on this type, and there’s no reason an OHR RPG can’t do the same. 

Most scenery triggers only need a text box attached, but maps with a large number of interactive items may benefit from a multi-positional script, in that the script checks where the player is standing and relates dialogue according to what’s in front of him. A multi-positional script is especially necessary if you want to add sound effects or hero interaction (animation) to the object, or if you want to limit the player’s access points to the object (no one looks at a computer from behind the monitor). 

--The Shopkeeper--

This is a two-part NPC: The figurehead and the register. The figurehead stands behind shop counters, tempting the hero to buy his crap. The register, however, initiates the conversation, as it is the NPC standing between the hero and the figurehead, and is the only one within activation range from the front of the counter. 

For shops that have access to the other side, the figurehead can have his own set of dialogue separate from the business angle (the shop trigger), allowing him room to chitchat about the weather or berate the hero for invading his workspace. Since shopkeepers in real life don’t usually sell to customers who invade their space, there’s no point in having your shopkeeper do it, either. 

Note: While figureheads are traditionally Loiterers, it is possible to up the realism by having the register stop a Meanderer and force him to walk into a sales position (and to become a Loiterer). This makes the scene a bit more realistic. 

--The Vehicle-- 

This is the NPC that transforms into a playable character upon activation. It’s designed to cover ground quickly or traverse harsh terrain, and is only useful when it’s under the player’s control (though, by then it’s no longer an NPC). 

Must be defined as a vehicle in Custom.  

This NPC is also the only type to have more than one script trigger. Thus, cool things can happen upon entrance and exiting. 

--The Projectile-- 

This is the NPC that causes harm to the hero and is generally thrown from another NPC type. This is the arrow, bullet, or cannonball that reduces your health from full to empty when it touches you. 

Projectiles are only onscreen for the duration of the shot, until they hit their target or they leave the area. They usually appear through created NPCs or activated tags and disappear from opposing means. 

When they hit the hero, they trigger a script that deducts the hero’s targeted stat through the use of “get hero stat,” “set variable,” and “set hero stat.” 

To build this type of NPC, be sure to give it a “Touch” activation and attach it to a hero-modifying script. 

--The Villain-- 

This is the NPC that tries to attack. It’ll usually come at the hero via plotscript trigger or “Chase You” bitset, but its main goal is to force the player into battle (either traditional or custom-made) upon contact. Once in awhile they’ll just roam dungeons with no other intention than to be left alone. But more often than not they’re hungry for the hero’s blood. 

Note: This NPC can be combined with any of the previously mentioned types. 

The Untouchable Class: 

This class is common in story-driven games, but rarely used to great effect in newbie-ish games. This class benefits the most from NPC animation, and can blow minds if handled with great care. It is easily the most powerful type of NPC in the game, and the only NPC the player will never interact with. 

It is literally untouchable. 

--The Actor-- 

This is the NPC that tells the story through animation and dialogue. 

In a cut scene. 

He can be anything: A man, a woman, a helicopter, a donut. He can wander around, hang about, wield swords, fall off cliffs. His range is endless. 

But he can never, ever, interact with the player (though, sometimes he’ll interact with the hero). 

At least, not until the cut scene is over. Then, if he’s sharing the same map, the player can say hello. But by then his identity will change into some other classification. Thus, his role as an actor will still be “untouchable.” 

In any case, the designer has the most freedom with this character, as he can make the NPC do anything he wants. 

Conclusion: 

So that covers every category of NPC that I can think of. There are probably more out there, and I invite others to write about them in future HamsterSpeak issues. But for now, that covers my library of ideas. 

So now that you’ve been introduced to the full array of NPC types, how about finding a way to use them all so your future game will pop? I know I’d like to play a fun game again.