Cover image by Yiran Ding
Beyond Good & Evil: Modelling Morality and Social Combat in Games
We’re all comfortable designing combat systems. Hit points, stamina, cooldowns, damage types—these are the languages of conflict we’ve mastered. But what happens when the battlefield isn’t a crumbling castle or a starship bridge, but a crowded marketplace, a royal court, or a family dinner?
Let’s consider a more ambitious scenario: we’re building a game where society itself plays a role. Perhaps it’s a complex city-building simulator where every citizen has desires and fears. Or an RPG where we want the world to feel genuinely alive—not just a backdrop for fetch quests. We want the characters to feel authentic. We want them to interact with each other in ways that carry the same weight, complexity, and tactical depth as our meticulously balanced combat mechanics.
How do we achieve that? And how do we do it without falling back on cartoonish heroes and villains, or reducing every social exchange to a crude skill check for deception, persuasion, or intimidation?
The Economist’s Dilemma
What we’re attempting—abstracting real human morality into game variables—is remarkably similar to what economists do when they build models. We decide what data matters and assign value to each data point. For any given action, we need to know: who is involved, what information each person has at each decision point, and what the consequences might be.
But here’s where it gets slippery: to build a system we can actually code, we’re naturally drawn to a materialist stance: treating matter as the primary substance, with mental states and consciousness as by-products of biochemical processes. That feels obvious when we say it out loud.
Yet most of us don’t actually think that way. We’re prone to idealism—the sense that reality is inseparable from our perception of it. Ask someone, “If a tree falls in a forest and no one is around, did it make a sound?” They’ll roll their eyes and say yes. But ask, “If we cannot perceive a particle, does it exist?” and many will hesitate.
The tension is real. Materialism forces us to admit there will always be things we cannot know. Idealism allows us to believe that knowledge of everything is, in principle, attainable. Strangely enough, empiricism—the theory that knowledge comes from sensory experience—often aligns more closely with idealism than materialism.
So where does that leave us, trying to model morality in a way that compiles?
What Are We Actually Measuring?
Perhaps we need to step back and ask: what is morality for?
In its simplest form, morality is a body of standards for distinguishing proper actions from improper ones. The Golden Rule. Moral objectivism. Codes of conduct drawn from philosophy, religion, or culture.
Opposite it sits immorality: knowingly violating those standards. The key word is knowingly. That awareness is what separates immorality from amorality—the latter being mere unawareness or indifference toward any moral framework.
And this brings us to the elephant in the room: intent.
Why Intent Is a Terrible Metric
We love intent. It feels fair. We want to judge people (and characters) by what they meant to do. But intent is deeply unreliable, both in life and in games.
First, intent is unverifiable. We observe an action and infer intent by asking what we would mean if we acted that way. That’s just projection, wrapped in bias.
Second, people themselves are unreliable reporters of their own intent. Self-deception is real. Denial is real. Someone can genuinely believe their aim was noble while their actions tell a different story.
Third—and this is the kicker for game design—intent doesn’t guarantee growth. If someone has good intentions but consistently causes harm, and they make no effort to change their approach… are those intentions still “good”? Or have they become something else? Often, the refusal to adjust is an admission that failure isn’t really perceived as failure. Incompetence is too painful to acknowledge. So the world becomes the enemy. The fault belongs to everyone else.
And if the actor plays the victim? If they divert attention by pointing to the other person’s poor behaviour or personality, framing the negative outcome as fair? That tells us more about their moral position than any stated intention ever could.
We need to stop focusing on what characters say they wanted. Instead, look at what they do next. If an action fails, do they try to do better? That signal is far more valuable than any initial declaration of noble intent.
But here’s the trap we have to avoid.
The Lie of “It’s the Trying That Counts”
We’ve all heard it: “It doesn’t matter if you succeed, as long as you try.” It’s a comforting lie we’re fed from childhood. But look around. The people we idolise are those who rise to the top. Social and material rewards rain down on success, not effort. There is no consolation prize in real life.
That doesn’t mean we should judge a character’s morality purely by their wins and losses. That would be brutal and shallow. But it does mean we need to track how they move forward from each outcome, success or failure.
The challenge, of course, is that this quickly becomes a combinatorial explosion. A case-by-case history of actions and reactions for every NPC in a city or country is computationally absurd.
So we need something more elegant.
Beyond the Alignment Grid
Let’s name the obvious problem: binary morality (good/evil) is only useful at extremes. It’s essentialism—the rigid belief that every person has a fixed set of characteristics that define their identity. It leads to cartoon villains who cackle and virtuous heroes who never stumble.
But turning the binary into a gradient scale (lawful neutral, chaotic good, etc.) isn’t much better. Those alignment systems are simple, but they’re not elegant. They still flatten human complexity into a handful of archetypes.
Consider a selfish person who exhausts others emotionally. They’re not a murderer. Calling them “evil” feels absurd. But calling them “virtuous” because they can be friendly over coffee is equally wrong.
We need a system that doesn’t label. We need one that describes.
A Traits and Desires System
Here’s the alternative: a weighted tag system of traits and desires.
Each character gets a set of traits (like altruism, loyalty, ambition, cruelty) with numerical values that shift slowly over time. These are paired with tangible, overarching goals that inform short- and long-term decision-making.
The magic is in the interaction. Society perceives specific traits and outcomes. That perception feeds back into the character’s decision process. “Moral,” “immoral,” and “amoral” become not labels but perspectives—the actor’s own stance relative to conventional standards.
Crucially, characters can hide some traits while revealing others. Other characters can discover traits—or remain unaware of them. This allows for image preservation, strategic exaggeration, and all the nuanced conflict that emerges from partial knowledge.
Let’s make this concrete.
The Peanut Butter Cake Problem
Imagine a character who projects altruism but deeply desires admiration. They bake a peanut butter cake for a friend’s birthday party. The friend has a peanut allergy.
At the party, the recipient doesn’t eat the cake. The baker asks why. Upon hearing about the allergy, they don’t apologise. Instead, they become flustered and redirect:
- “No one told me about the allergy.” (Shifting blame)
- “It’s not a huge problem to eat it anyway.” (Downplaying harm)
- “You should appreciate the effort I went to.” (Demanding recognition despite the failure)
If challenged, they might escalate. They’ll claim the accusation is invalid. They might distort reality further (“the allergy is a lie”). They might accuse the recipient of ingratitude. They might enlist friends to support their version of events.
Each step in this chain modifies how participants and onlookers perceive everyone involved. The baker’s traits—altruism (low), need for admiration (high), capacity for self-reflection (very low)—become visible through action, not declared intent.
And the system tracks it all through weighted values. No need for a full history. Just slow, subtle shifts in those numbers over time, guided by outcomes and social feedback.
Towards Real Social Combat
This is what a genuine social combat system looks like. It’s not rolling Persuasion to win an argument. It’s a web of traits, desires, perceptions, and revelations. It’s characters who don’t know everything about each other, who perform for different audiences, who change slowly through repeated failure and rare success.
We don’t need to solve the hard problem of consciousness to build this. We just need to stop trying to reduce morality to a single stat or a tidy grid. Instead, we can model the material interactions that give rise to moral behaviour—the actions, the reactions, and the slow, grinding work of becoming someone over time.
And in doing so, we might just create game worlds that feel as complex, contradictory, and strangely hopeful as our own.