Deeper IF Characters with the F-H System

We’ve considered the F-H system of characterization, with one blog post on theory and strategies, and one on techniques and implementation.  The goal now will be to re-work these techniques for IF, making them suitable for the existing technology, and not reliant on tricky AI.  I’m all for tricky AI, but I can’t do it myself.

The broader purpose in doing this is to see how we can make NPCs that live up to at least the minimal standards set by pulp literature.  Since we know that much of pulp is pretty bad, and yet many people do consume it and, like fast-food, find it satisfying, we can infer there’s something in the pulp formula which over-rides the frequent overall badness of the writing.  By including this element in our games, along with good writing and game design, we can enrich our player’s game experience.

The F-H principles of characterization are:  create characters through emotional conflict; maximize that conflict by making the hero 49% evil, and the villian 49% good; portray characters with conflicting qualities, such as strength and weakness, or wisdom and folly; and write characters with physical and behavioral tags for those qualities, as a way of keeping on-message.  The overall idea is to foster inner emotional conflict about future events in the narrative.  Now let’s apply this to IF.

Characterization is difficult in IF for a couple of reasons:

  • You can’t show character through response to PC behavior, because AI isn’t that smart.
  • You can’t show character through well-written dialog, because that would require a cut scene, which slows down the game, or extensive conversation programming, which quickly gets tough.
  • You can’t program the character to act stuff out in the simulator, because the simulator mostly only works for give-take-drop and walk-around.
  • And besides, the PC would be there interfering.
  • You can’t even focus too much attention on the NPC, because the PC, an uncontrollable variable, is always there and wants to be the center of the game.

But let’s look at what we can do:

  • NPCs can do absolutely anything, as long as it’s done off-stage.  Change the simulator data and tell the PC about it after the fact.
  • NPCs are as omniscient and omnipotent as you want them to be, since they have direct access to the game engine.
  • Players tolerate little three-line scripts, where the NPC says or does something, the player picks a response from a set of options, and the NPC responds to that.  The NPC, and therefore the game designer, basically controls that situation.
  • NPCs can initiate conversation.  It’s not done often, but the programming is not difficult.  Cuing the NPC to initate conversation at an appropriate time is the trick.
  • NPCs can be in different places at different times, quite easily.

The task, then, is to carve up the F-H principles, outlined above, into bite-sized pieces which we can fit into the one or two lines, and occasional paragraphs, available to us as game programmers; and, to create opportunites for characterizing moments.

Characterizing Moments

Before we go on, I am convinced that we can use the existing technology to create characterizing moments, just by focusing on that goal.  Looking at that list, let’s consider a western, where the PC is looking for a man named Carter.


You walk into the Sherrif’s Office.  The Sherrif is leaning back in his chair, with his feet crossed on his cluttered desk.  He is reading some paperwork.


The Sherrif sits up and looks at you.  “Are you asking me as a friend, or a citizen?” he asks, dropping the papers on the desk. 

(You can say, as a friend, as a citizen, or you can change the subject.)


“Well, then, I’ll tell you as a friend, I have no idea where Carter is.”  — Wait a minute;  did he just cover something on his desk?

The Sherrif watches you closely.

The delay here isn’t itself important, but it allows you to time the response.  And the little snippet of interactivity increases the player’s emotional investment, and that adds impact to the notion that the Sherrif has just pulled a fast one, distracting us while he dropped the papers on something on his desk.  (We can make it a map of Coyote Canyon if the PC examines the desk before talking to the Sherrif.)

This is considerably better than we can do in a one-line response, because we can show the Sherrif’s behavior at odds with his words, we can show him trying to lead the player, and we can unobtrusively create a richer response in the PC, by showing the PC’s immediate response, and then a more thought-out follow-up response.

Later, in the saloon, when there’s a rumor going around that the PC killed Carter, NPCs can initiate conversations with, “Hey, where’s Carter?” and “I heard you know where Carter went.”

Applying F-H Principles

The idea is to create character by creating inward conflict between two emotions.  In the F-H system, the two conflicting emotions are consistent throughout the plot:  if it’s an honor vs. acceptance plot, all the characters face some version of that struggle.

The particular form the struggle takes in a given character depends on that character’s function in the plot.  The hero in a western has the function of killing bad guys, so he must be uncertain either of whether to kill them, or of who is a bad guy, until the time of his Big Decision.  And his reason for being uncertain must be related to the central problem — honor vs. acceptance, for example — with the right action (killing bad guys) linked to the dearer emotional value (honor); but this decision must be the more difficult one, requiring risk and self-sacrifice, and especially loss of the secondary value, acceptance.

Similarly, his sweetheart wants to stay loyal to him (honor) but is against killing (acceptance), and threatens to leave him if he stays and fights rather than fleeing town.  Meanwhile the sherrif threatens to lock him up if he stays and fights, because he wants to avoid trouble (acceptance).

How do we specify these inward conflicts and match them to signs and visible behaviors that we can fit into the one- or two-sentence bits of interaction that IF allows for?

The intermediary step between emotional conflict and visible signs is characteristics.  You represent emotional conflict with conflicting characteristics:  you portray a character as both weak and strong; strong in some ways, weak in others — and so on, for wise-foolish, kind-mean, charitable-miserly, logical-crazy, or whatever conflicting pair of qualities you figure suits both the central emotional conflict you’re going for and the character’s function in the plot.  But you don’t ever use the words “strong” or “weak” — you leave it implied, never naming the characteristics.

How do we convey characteristics in IF?  Physical characteristics can be described on examination or mentioned in passing.  Behavioral characteristics must be acted by the NPC.

The F-H strategy is to describe the weak-strong characteristics with physical tags, and with behavioral tags:  we have a physical strong tag, a physical weak tag, a behavioral strong tag, and a behavioral weak tag.  In writing, we refer to these tags to emphasise the character’s first nature, or second; or we mention them together to emphasise the character conflict.

For example, consider a ranger who is strong-weak.  Behaviorally, he never passes up a fistfight, but he drinks.  Physically, he’s a huge guy with scars on his hands, but he has watery, bloodshot eyes.

So, you show him drinking; hung-over; drunk; you show the empty bottles of booze around his place;  conversely, you show him with the occasional black eye; you give him quarrelsome lines; if the PC mouths off to him, in his judgement, he throws him bodily out; and so on.

We can go so far as to describe the tags fully (although never mentioning by name the characteristic being demonstrated) early in the game.  On first meeting this ranger, we find he is already drunk at 11 am; other characters tell us he is always fighting.  Once these things are established, we just use the tags — he stares at the player with bloodshot, angry eyes.

Tags give a character texture, and a texture relevant to your game, but they do not give a character depth.  The way we give a character depth in the F-H system is through conflict.

Protraying Conflicted NPCs 

In the F-H system, character conflict means that the character is caught in a bind between two emotional values, and must chose one at the expense of the other.  Outside the F-H system, there are other kinds of conflict — how to feel about something, for example — but the F-H focus on decision makes the conflict clear, it builds suspense by focusing the reader on the future, and it keeps interest by emphasising action.

So, at some point in your game, each of your major NPCs must make a decision.   It should be a snap-decision in the F-H system, but it should be lead up to with a great deal of agonizing and internal debate.  This is what it means for a character to be conflicted, and it creates a sense of interiority.

Doesn’t it destroy player agency to have an NPC making important decisions?

No, not at all:

A character’s story is the story of the bind they’re in, the decision they have to make, all of the ways they try to get out of making that decision, and how things finally come to a head and they finally snap, making the right or wrong choice, according to their nature.

Therefore, most of an NPC’s time is spend in indecision.  There are many ways to do this:  the NPC can temporize, can try to compromise, can evade reponsibility — the NPC can just keep trying one thing after another, or focus on collecting information.

(Note that I’m using “indecision” in a certain way here:  it’s not necessary that your NPCs are indecisive people, but that they spend most of their lead-up time not making the important decision.  That can mean any number of things, including making the wrong decision for most of their story, until the very end — think Darth Vader.)

IF’s unique problem is to involve the PC in this process.  The NPC must appeal to the PC for help, or try to stop the PC from interfering; he must ask the PC for information relevant to his decision, or sneakily mislead the PC in ways that get him out of his bind — for a while.  You’ll notice this is all conversation, of moderate difficulty.

The NPC must have intermediary goals, which conflict with other character’s goals.  Those goals can involve the theft or retention of an object — an incriminating letter, a deed, a murder weapon, a treasure — getting a certain piece of information, as from conversation, interrogation, or snooping — winning the affections of another NPC, or perhaps the PC — inflicting punishment on a rival or harming an enemy — or so on, but in any case something dramatic.  If it’s not dramatic, you have a tepid character.

These actions can easily be done offstage, with conversations with various NPCs foretelling the possibility before, and reporting the events after.  The simulator data can be updated appropriately — the PC finds his friend’s stuff packed and gone, with a note she has eloped with another NPC — he finds a murder scene, and his employer in jail — another NPC is waiting at his home, because his wife left and took the kid.

Basic Principles

Every NPC must have a definite attitude toward the PC:  like or dislike; ally or enemy; certain or uncertain.  This entails that the NPC have expectations of the PC and want something out of the PC, just as the PC should want something out of the NPC; and all of this is portrayed through conversation and the reports of other NPCs.

You can have a few NPCs that think nothing of the PC and ignore him — but this is dull.  These are background characters, not characters who are part of the PC’s story.

Every NPC must act independently of the PC.  How often this happens depends on the importance of the NPC and the complexity of the game:  probably 1-3 times.

Also, every NPC must take actions that are dependent on the PC.  Again, 1-3 of them seems right.

The PC must have his hand forced by every NPC at least once:  villians force him to violence despite being a nice guy, children need to be rescued, his best friend betrays him, and so on.  You can add one contrary case, where the PC gets help from an unlikely source, and therefore has more options.

All NPCs should have their relationship with the PC reverse at least one time.  The love interest starts out hating the PC; the authority figure is suspicious of him.  Or you can have the love interest start devoted to the PC, lose faith in him, and regain it — two reversals.  You can make an exception of the villian, but stories where the villian starts out on the main character’s side, or at some point must cooperate with him, are usually more interesting.

You can also reverse roles — the NPC who is always asking for information is now giving it; the PC is suddenly in a position of power over the authority figure; perhaps the PC unfairly hurts the villian; you can even reverse roles between NPCs, if you want to go all-out; but that’s a subtle effect.

We have plenty to do, now, with NPCs.  It’s all possible within the current limits of IF technology:  it requires no path-finding, no AI, but can be done with the kind of scripting readily available.  That is, it’s work; but it’s writing and design work; not deep programming.

The question now is, how do we put this all together?

The Big Picture

You have your plot, and the emotional conflict it creates.  All the other emotional conflicts of the NPCs are reflections of this same conflict in ways appropriate to that character in their function in the story.  This internal conflict is realized and amplified for every NPC in the bind they face in the story, and which they will resolve by their own Big Decision.  For every NPC, the PC is a major part of their decision-making process, and will therefore be actively involved during their moments of greatest indecision.

Therefore, treat every NPC’s moments of indecision as mini-games, where the NPC is appealing for help, trying to bully the character, or so on, as we have discussed, and the PC by his responses can shift the NPC into one of a few paths; or can change some variable in the NPC’s data-set.  Give each mini-game a different choice structure, appropriate to the resulting contingencies of the dramatic situation and how the scene plays out — the PC being kidnapped has a different choice structure than him questioning someone — and focus the outcome of the mini-game on one variable.  That variable tracks whether the mini-game has been initiated, whether it has been resolved, and, if it has been resolved, how.

The player should be able to exert some influence on the characters, to varying degrees for each, but should not be able to control them.  He should be able to control his own story, but not the stories of the NPCs.  The purposes of these mini-games are to expose the PC to the inward struggle of the NPC, to give him the opportunity to influence that character’s story-line a little, and his own considerably more, and to establish, develop, or alter the PC’s relationship with the NPC.

So, the mini-game needs to work on two levels:  it needs to be about the NPC working on coming to a decision about their central conflict, but it also needs to be about the PC making a choice that impacts his own central conflict:  otherwise it will be irrelevant to the plot.  And in general you must set these at odds with each other:  the outcome that is apparently good for the NPC is apparently bad for the PC.

Easily you can have two to four outcomes from such a mini-game:  the PC gets his way; the NPC gets his way; they compromise; or neither gets his way.  And you can keep players on their toes by not offering all of these options, and by keeping the options asymmetric:  little does the player know that, in this scene, there are only two possible outcomes:  the NPC gets his way, or they compromise.


A text game composed of interacting mini-games designed along these lines and peppered with characterizing moments of interaction will have richly realized NPCs with depth and texture, in a literary way which adds to the plot and is thematically relevant to the PC’s storyline.  And while making such mini-games certainly takes writing and design work, it is work which is feasible with available technics and considerably rewarding to the final experience of the player.


The URI to TrackBack this entry is:

RSS feed for comments on this post.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s