Narrative games are full of binary choices, and the most common is “friend or foe?” Will you be nice to the NPC, or will you be nasty? Save the baby or burn down the farm? RPG games often have a stack of these choices, several hundred across the course of 20 hours play, and they use them to collect data on what kind of character you’re playing as.
Unfortunately they don’t do anything very good with the numbers. Here’s a suggestion for something better.
In my soon-to-be-released Undum game No Space to Breathe, the story revolves around an interrogation by the protagonist of a character they once knew, a long time ago. The crisis comes from the protagonist’s choice of how they will respond to this figure from their past, who is now is serious trouble. Will they be sympathetic and kind? Will they be hard and uncaring? Will they listen, or will they turn their back? In short, are they a friend or are they a foe?
The choice isn’t a simple one: the player making it, after all, knows nothing about either character to begin with. So the bulk of the gameplay is an exploration of that choice, until the time comes for it to finally be made.
So the player’s choice of “friend or foe?” is really the outcome of a series of choices over time. These little choices guide the flow of the scene, and the state of mind of the NPC character, towards an eventual result. In structure, then, this is the good/evil choice of an RPG, crushed down into a single scene in a single room.
Ideally, a structure like this leads to a seamless emotional arc in which the player’s intentions and the character’s actions go hand-in-hand towards a conclusion that seems so perfectly wrought it seems impossible that it was pre-authored…
Of course, in practice, it doesn’t go like that.
A lot has been written about the failures of the way RPGs track good/evil stats. (Recently, this article by Dan Staines and Malcolm Ryan). The core complaint is usually one of arbitrariness, because of a few core problems:
- The actions offered to the player are often comically extreme:
Do you want to give the beggar some bread, or steal his blanket?
- The results are comically bathetic:
You’ve murdered the innocent family. -5 points.
And then the big one:
- Because the results of all your actions are scored in a common currency, the game accidentally introduces a moral economy in which good actions are tradable for bad actions:
You’ve walked an orphan to school (+2), dug a new well (+3), so you can now kill the bartender’s daughter (-5) without damaging your status in the village.
The problem is a mathematical one. RPG games tend to use a single scale to record how good/evil you are, and actions you take add or subtract to that score. This model is easy to communicate and understand – it is, after all, exactly the same as the money system most games also use. Unfortunately, that simplicity makes it convenient for players to game the system, so they are free to stop treating good/bad choices are anything but modifiers. And the analogy with money is what exactly what leads players to trade good actions for bad ones.
In the final analysis, under such a system, players won’t take responsibility for their choices because they don’t need to. So long as there are enough orphans around to feed, or peasants to be polite to, it’s easy enough to wipe clean the mistakes of the past, and buy yourself a clean rap sheet.
The problem is the system is memoryless: a score of +5 followed by a score -5 is the same as a score of zero. But is that right? Is a player who fed an orphan and hit a beggar the same as a player who did neither? And if the good/evil, “friend or foe” stat is supposed to measure the opinion that the world has of the player, shouldn’t we also pay attention to the player’s past choices when they make new ones?
That’s the key idea behind the system I used in No Space to Breathe: that initial impressions carry more weight than later impressions. A player who comes into the village and immediately burns down a house is making a more significant moral decision than a player who feeds the orphans, makes friends, and then commits his act of arson.
Such a system is likely to be hard to game, but it doesn’t need to be complicated. In No Space I simply tracked two stats instead of one: a friend stat, and a foe stat. Every time the player does a kind thing, their friend stat increases by one. Every time they do something cruel, the foe stat rises instead.
(Note that the Mass Effect games do something similar with their Paragon and Renegade stats, but they use them to unlock options which the player can then choose to take – a neat solution for ensuring the player remains in control, but not so good for creating that seamless emotional arc mentioned above. If it comes to the crunch and the game needs to know Are you good or bad? and the result is not extremal, then Mass Effect‘s solution is to ask the player.)
For No Space, I wanted the calculations to happen off-screen, and there had to be a final score. So I used an average:
Friendliness (%age) = friend stat / (friend stat + foe stat) * 100
That is, the player’s “friend or foe” score is the proportion of the time the player chose to make a friendly choice.
I’ll write up some of the implications of such a system in a future post. With graphs.