I’m working on a faction and relationship system, and I’d be grateful for your feedback.
Summary: Characters judge each other’s actions (usually player actions) according to their personality and their affinity to the action’s target.
Every character belongs to one or more factions. The blacksmith, for example, has his personal faction and belongs to the Villagers faction and the Blacksmiths Guild faction. If the blacksmith doesn’t have an affinity to the player, he’ll refer to his parent factions’ affinities.
Affinity specifies how the character or faction feels about another, where -1 is total hatred and +1 is absolute love.
Personality is comprised of Values and Temperament. Values specify how strongly the character feels amount ideas like wit, violence, and charity, where -1 charity means selfish and +1 means altruistic. Temperament (emotional state) uses the PAD model (thanks for the suggestion, @JoeStrout ). It could drive facial expressions and body language in a more sophisticated scene than this one.
Characters also have short-term memory (for temperament) and long-term memory of actions they’ve witnessed or heard about (rumors), and they can share them when they encounter friends, so word of your deeds spreads organically.
The germ for this project was an event in BioWare’s Mass Effect. On one planet, you lose influence with a companion if you run over too many animals with your vehicle. What jarred me was that, since this was scripted, you could run over as many animals as you wanted on any other planet and she’d apparently be fine with it. In contrast, this system manages faction/influence/love based on gameplay actions, not just hard-coded events. (You can also use hard-coded events, as in the conversations in this prototype.)
Feedback I’m Hoping For: I dropped this system into my general-purpose prototyping level. It’s not tuned for looks, performance, or playability, so I’m not interested in feedback on control, camera, or UI. NPCs have short fields of view to make it easier to do things without the whole village seeing right away. But this means, for example, if you want to impress the farmer by killing the goblins plaguing his field, you’ll have to kill them right in front of him.
I’m also not so much interested in whether this scene is “fun,” but rather if the system seems useful. And I’d be grateful for any suggestions for improving it.
Controls:
- Left-drag to look
- WASD to move
- Click on NPCs to view their info and activate the skillbar (attack, heal, talk)
Thanks, everyone!