Hello, I’ve been playing around with an old idea for a randomly generated storytelling RPG; I probably won’t be able to implement it for a good while but it’s still fun to think about it. One thing I don’t want it to be is a pure hack’n slash game (though I won’t stop the player from choosing to play this way). I want it to be viable to play as a silver tongue pacifist & for conversing with people & monsters to be as engaging as fighting them.
This is something very few games seem to try. The majority of the time you’re dealing with dialogue trees, persuasion checks, &/or picking the right line to get a better outcome. This can be good for dealing with explicit lines of dialogue, but it doesn’t make for a very engaging system & I sometimes find myself just button mashing the skip option on replays (an infamous example is visiting a Pokemon Centre).
The only games I can think of doing something different are The Sims & Undertale. Both of these games don’t feature explicit dialogue choices but rather more generic actions, like “tell a joke”, “compliment”, or “flex your muscles”. I feel this allows the player to better personalize the experience by letting them fill in the empty spaces whilst giving them more agency over their own character; rather than deciding which line best matches their persona.
It’s based on this approach that I’d like to do my conversation system. The system I have so far is incomplete but I feel it’s worth sharing.
Before I explain the system there is an aspect I need to address – I want NPCs to not be carbon copies of each other & feel like they have actual personalities. Not impossible but a very tricky thing to design. The Sims seems to be the only game to have systemically done this, though I’ve read that Crusader Kings has done this as well with the way the AI sovereigns play.
My current solution is to assign a list of broad universal values that each character would rank from most valuable to least valuable. A good source of the kind of values I’ll probably use can be found in this page about “realistic D&D alignments”. The player will also need to rank these values for their own character; it’s the only way the system will work for both sides.
I imagine I’ll need to utilize more specific information to truly make them feel unique, like how they feel about certain NPCs or factions, but this will do as a starting point.
Basically a conversation consist of both you & the NPC selecting actions in an attempt to influence & resist each other, or just simply enjoy each other’s company. I imagine this system to work similar to JRPG menu-based combat systems, but different of course:
- All actions & abilities would be conversational in nature, similar to the examples I’ve given with The Sims & Undertale.
- Each action can be thought of as having an “element” to it which would align better or worse to certain personality values. For example, a highly orthodox NPC would like you for being formal & respectful but won’t like you for speaking out against the law. A compliment would have a great effect on someone who highly values Achievement but will mean almost nothing if they rank it low.
- There is a combo aspect to it in that actions have a greater effect when they relate to the last action taken by either them or yourself. This is to help encourage a sense of flowing conversation.
- There are two key character attributes that play into this system.
- The first is Mood, which is a gauge of how positive or negative a character is feeling at the moment. It kinda serves as the health, strength, & defence of the character in the conversation. A Mood of 0 would suggest a neutral or bored feeling, -100 would suggest they feel awful or very angry, & +100 would suggest they’re feeling very happy.
- The other is Disposition which tracks how the character overall feels about another character based on their history together & what they’ve heard about them. This influences the initial mood of the character & is in turn influenced by their mood at the end of a conversation.
That’s all for now. I like what I have so far & would like to try make a demo of it at some point. Any comments on this are welcome.