Reputation Systems in Games
My friend @WorldWearyWarlock sent me this talk on reputation systems by Jim Shepard, which I highly recommend to everyone who has even slight interest in either storytelling, procgen, or roguelikes. The talk is much deeper than my gist of it here, but I need it to be brief and specific, as I'm trying to develop a framework for it in this post. So, the ultra-short recap:
- Reputation scores with a single dimension make little sense.
- Two-dimensional ones are better and probably an optimal tradeoff.
- For two dimensions, we can pick like-dislike and respect-disdain axes.
Here, I want to propose a wrap-around for that system, which will enable support for discrete transitions between the reputation states that fall outside of the friendship/respect grid.
Individuals, communities, factions
To create a simplistic taxonomy, we will make a single individual the source of truth, since both communities and factions consist of individual actors. The reputation from that individual will be exactly the same as the grid above. That is, a pair of coordinates.
Now, we can define a community as a group of people who are not bound by any formal set of rules, but who do identify as a group. Inhabitants of a town, settlers of a frontier region, renegade elves living in the woods without a leader, artisans of the same trade who operate independently of a guild, and so on.
If they don't have a strict hierarchy, we can simply average their personal reputation coordinates and call it a day. Or it can work vice versa: if you do something good for a town, all of its dwellers will have their opinion of you improved, give or take some noise.
Finally, to the interesting part! What if some faction is a real faction, with explicit interests, stringent rules, hierarchy — and an opportunity for you to join it or lose membership? For instance, you suffer excommunication from a church. That condition is pretty unique and separate from people's opinions of you: once formally condemned, you cannot meaningfully interact with the faction unless you repent (which is a great possibility for a quest).
Another example: after joining a cult, you find out that they are placing you on the ruthlessness/bloodthirst grid instead of the friendship/respect one. That's also quite removed from the original system, and trying to map it directly would be inconvenient.
Such cases are easier to manage as discrete states and transitions between them. So, let me introduce state machines to the scene.
Nudges and triggers
All the changes in your reputation with some group are easily split into two categories: nudges and triggers.
Nudges are the changes within the current X-and-Y grid. They can be large or small, and they can hit numeric limits we have set. You helped the local blacksmith procure gold for gilding, now he and other folks in the village are liking you more.
Triggers are specific actions that you can do, after which your reputation is yanked from the current grid and sent elsewhere: either to a different grid or to a specific state, e.g. see the example with excommunication. You stole from a monastery, now you're a persona non-grata and will never join their brotherhood.
It's much easier to navigate both subtle currents and seismic shifts in reputation using a lattice built this way. Especially when we want to lock the player out of communicating with a group during rite of passage quests and the like.
Actions aren't the only triggers. Hitting (or sitting in) a trigger area in the grid can do the same.
Example #1. Exiled from a cult
Let's say you join a cult and want to get promoted. But you have a hard time getting progress "nudging" its members to like or respect you more. You simply cannot meet their high standards. Then, one day, you are given a side quest to steal from one of the cultists. You do the job but the task was a setup. You are expunged from the cult, and you cannot even talk to any of its members at all. Except, there is another way to get back in: you can kill its leader and take his place. But if you attempt and fail, the cultist will hunt you forever.
Example #2. Paths of Enlightenment
In the setting of Vampire: the Masquerade, there exist the grim and obscure moral philosophies pursued by some of the elder vampires, called Paths of Enlightenment. Sins and virtues under those are extremely different from the common moral code called Humanity. At the same time, old vampires play multilayered games and maintain various personalities simultaneously, so having a few different grids for such an NPC could be a big advantage.