Advertisement

Opinion Modifiers: Characters and Populations

Started by January 28, 2015 11:49 PM
9 comments, last by polyfrag 9 years, 7 months ago

In my current game I need a way to simulate how different individuals and groups feel about each other. I have some thoughts but I don't know if I'm doing too much or too little.

One way is to score a series of modifier objects:

Wrong government -x

Wrong religion -x

Attacked our country/province -x

Attempted to assassinate ruler we hate +x

Then total these up when we need to see the opinion.

Another way is to just modify the opinion whenever any action is performed. This might be easier and faster, but then we can't easily check why we have that opinion.

I'm leaning towards the first though I wonder if there are possibilities I had not considered.

Populations exist as an integer and some descriptors, like 50000 people of race x with religion x and nation x and class x and job x:

50000 dwarf peasant farmers of GenericChurch of Placeland.

Populations will generally have an opinion of relevant provinces/nations/populations/major characters with various modifiers.

If you have the above population living in the same province as 40000 elven noble merchants of SpecificGod of NationOverThere, there might be tension, possibly violent, based on those attributes plus opinion modifiers.

Meanwhile if you are an elf king of Specific god and you have dwarf peasants of GenericChurch, they might side with an invading dwarf king of GenericChurch. So from 50k peasants you might get 2-4k of poorly equipped soldiers joining forces with the invaders plus some supply bonus as they are peasant farmers. Dwarven merchants of generic church might fork over some cash. Unless say you are a benevolent and tolerant ruler not favoring elves or worshippers of SpecificGod over them and the invading dwarf king is a tyrant with high taxes who lets his noble officers abduct the daughters and wives of peasants. Also if you ruled over the province this population lives in for a longer or shorter time, your populace might be more or less likely to assist invaders, or revolt, or what have you.

If you want to have interesting dynamics I think it would be nice to store the reasons why. That means that in certain circumstances opinion could turn on a dime, e.g. the political scandal if it turns out that you're an elf using a spell to masquerade as a dwarf, or that you have terrible ulterior motives for what you've done, or that the one big act that got you enough popularity to become king was actually you taking credit for someone else's work. That also means that opinion can change as circumstances change, e.g. you are beloved as a warrior king but you're not at war any more... some affection may remain for your good previous reign, but your support may erode as it's based on war.

It would be a pain with data storage and recalculation though... some optimisation would likely be required.

Advertisement

If you want to have interesting dynamics I think it would be nice to store the reasons why. That means that in certain circumstances opinion could turn on a dime, e.g. the political scandal if it turns out that you're an elf using a spell to masquerade as a dwarf, or that you have terrible ulterior motives for what you've done, or that the one big act that got you enough popularity to become king was actually you taking credit for someone else's work. That also means that opinion can change as circumstances change, e.g. you are beloved as a warrior king but you're not at war any more... some affection may remain for your good previous reign, but your support may erode as it's based on war.

It would be a pain with data storage and recalculation though... some optimisation would likely be required.

Yes, I would definitely like to have that, although shape changing spells to be another race are a little beyond the limit, given the size of the world. Support as a warrior king, of course only among expansionist and war related populations, would erode over time as long as you are not at war. Say you get 200 points of opinion, you lose one every month, so after about 16 years this value would wear off, possibly bottoming out at a small number, but it goes up while you are at war, so you might average 100 points across your whole reign.

That would be modified by the policies of your nation though, so at least for offensive wars a nation would only like you more if its national culture was warlike. As king you could create pressure on your people to be more in favor of wars, or less. Why would you want to be less in favor of offensive wars? Because other nations would see you as less threatening.

You consider two groups to be different if they differ in any aspect.

That is the objective grouping.

But each group should make their own subjective grouping, based on the aspects they care about. If we have 3 human groups that differ in nation only, a nonhuman group might consider them all to be just a single group since they know nothing of the concept 'nation'.

Additionally, even if a group cares about an aspect of external groups, they might only be able to distinguish groups based on that aspect to a limited extent. For example, a human group might care a lot about the aspect 'religion' of a group, but may only be familiar with a few mainstream religions. To them, all other religions might seem the same. So if they see one group of humans of religion 'some creepy cult' do something, that will affect their opinion of other groups whose religion they also consider to be just 'some creepy cult'.

Or a simpler example, dwarves might see 500 different dwarven subgroups, but humans might just see one giant 'dwarves' group. Meaning a single dwarf group being viewed negatively by humans would mean all others are as well to some extent.

Basically, when evaluating the opinion of a group on some other group, you should also go through ALL groups and see which ones of those our group might consider indistinguishable from the group we are forming our opinion on.

Not sure how relevant that was, but anyways... you probably want to store at least actions and events with long term consequences because the opinions of groups shift around a lot and I would imagine having that stuff around would avoid weirdness since you can just recalculate.

o3o

You consider two groups to be different if they differ in any aspect.

That is the objective grouping.

But each group should make their own subjective grouping, based on the aspects they care about. If we have 3 human groups that differ in nation only, a nonhuman group might consider them all to be just a single group since they know nothing of the concept 'nation'.

Additionally, even if a group cares about an aspect of external groups, they might only be able to distinguish groups based on that aspect to a limited extent. For example, a human group might care a lot about the aspect 'religion' of a group, but may only be familiar with a few mainstream religions. To them, all other religions might seem the same. So if they see one group of humans of religion 'some creepy cult' do something, that will affect their opinion of other groups whose religion they also consider to be just 'some creepy cult'.

Or a simpler example, dwarves might see 500 different dwarven subgroups, but humans might just see one giant 'dwarves' group. Meaning a single dwarf group being viewed negatively by humans would mean all others are as well to some extent.

Basically, when evaluating the opinion of a group on some other group, you should also go through ALL groups and see which ones of those our group might consider indistinguishable from the group we are forming our opinion on.

Not sure how relevant that was, but anyways... you probably want to store at least actions and events with long term consequences because the opinions of groups shift around a lot and I would imagine having that stuff around would avoid weirdness since you can just recalculate.

Well, essentially groups will probably not distinguish too much between certain things. Not my religion will apply to all other religions. So in a sense what you talk about will happen. As far as differentiating between specific other religions, I'm not too sure. It might happen or it might not.

The first system would keep track of all long term effects. Each opinion modifier in that system would decay towards 0 at some rate, or remain the same in the case of same race or same religion. And each population would keep these values separately.

Are there not factors like: bought stuff from us, sold stuff to us, currently has a treaty with our country/cooperated with our country to attack someone else...?

I want to help design a "sandpark" MMO. Optional interactive story with quests and deeply characterized NPCs, plus sandbox elements like player-craftable housing and lots of other crafting. If you are starting a design of this type, please PM me. I also love pet-breeding games.

Advertisement

I like your idea (the list of objective ratings) but I think it might have some more flavor with a couple of additions.

1. Making a distinction between actions and characteristics, so "Attacked our country" (which we hate) can be evaluated separately from "Warlike culture" (which we like). Action modifiers are affected by what other groups do, and characteristic modifiers are affected by changes in the culture and values of your own grou[.

2. Attaching weights to different factors so that cultures/polities/groups can value things with varying intensities. That way you can still have religious tension without precisely equivalent levels of zealousness in all directions.

3. Fleshing out what a difference between things really means, at least in some cases. I'm imagining each modifier object having a trait and a corresponding integer representing intensity, allowing the program to measure how far apart the traits are. So religions being different isn't necessarily a flat penalty in all cases, but religions that are very different from each other suffer a big penalty while similar religions can get along a bit better.

-------R.I.P.-------

Selective Quote

~Too Late - Too Soon~

I like your idea (the list of objective ratings) but I think it might have some more flavor with a couple of additions.

1. Making a distinction between actions and characteristics, so "Attacked our country" (which we hate) can be evaluated separately from "Warlike culture" (which we like). Action modifiers are affected by what other groups do, and characteristic modifiers are affected by changes in the culture and values of your own grou[.

2. Attaching weights to different factors so that cultures/polities/groups can value things with varying intensities. That way you can still have religious tension without precisely equivalent levels of zealousness in all directions.

3. Fleshing out what a difference between things really means, at least in some cases. I'm imagining each modifier object having a trait and a corresponding integer representing intensity, allowing the program to measure how far apart the traits are. So religions being different isn't necessarily a flat penalty in all cases, but religions that are very different from each other suffer a big penalty while similar religions can get along a bit better.

Number one is definitely important. For hating religions what I might do is evaluate on actions. So a religion that has persecuted a population on religious grounds may upset itmuch more than one that tolerates it. There may also be a relations penalty based on actions against similar groups.

I've kinda decided I'll need to do turn based now, so that extra work isn't as big a deal as it is in a more RTSish time model.

In my opinion, if you look at the way Europa Universalis 4 works as far as country opinion towards each other, this is kind of the same thing, yet it isn't. Basically, you have to have a predetermined boost and decrease from actions that happen. Like given your examples, you have opinion at 0 between people which would obviously be neutral. Let's say they are a different religion well -10 opinion let's say, or tolerant religion there is no boost or decrease, and then same religion +10 opinion. Basically how EU4 opinion system works, if you set determined boosts and decreases for opinions based on aspects of people/groups then that's probably the easiest way of doing things.

I don't really have a deep knowledge of this kind of stuff, except from when it involved games I played, if you do decide to do something similar to what I suggested, I figured it'd kind of go like this;

Wrong government(minor problem)= -5 opinion

Same government=+5 opinion

different religion= -10 opinion

tolerated religion= 0 opinion increase, decrease.

same religion=+10 opinion

Attacked our country/province(hostile action)= -30 opinion

Attacked our enemy=+30 opinion

Rival of enemy= +10 opinion

Attempted assassination on our leader(hostile action)= -30 opinion

Assassination of enemy leader= +30 opinion

essentially if you do this, you should really look at the way EU4 does opinion, because they do it very well. It has a certain decrease and increase over time and many factors that are both positive and negative, just a suggestion though.

In my opinion, if you look at the way Europa Universalis 4 works as far as country opinion towards each other, this is kind of the same thing, yet it isn't. Basically, you have to have a predetermined boost and decrease from actions that happen. Like given your examples, you have opinion at 0 between people which would obviously be neutral. Let's say they are a different religion well -10 opinion let's say, or tolerant religion there is no boost or decrease, and then same religion +10 opinion. Basically how EU4 opinion system works, if you set determined boosts and decreases for opinions based on aspects of people/groups then that's probably the easiest way of doing things.

I don't really have a deep knowledge of this kind of stuff, except from when it involved games I played, if you do decide to do something similar to what I suggested, I figured it'd kind of go like this;

Wrong government(minor problem)= -5 opinion

Same government=+5 opinion

different religion= -10 opinion

tolerated religion= 0 opinion increase, decrease.

same religion=+10 opinion

Attacked our country/province(hostile action)= -30 opinion

Attacked our enemy=+30 opinion

Rival of enemy= +10 opinion

Attempted assassination on our leader(hostile action)= -30 opinion

Assassination of enemy leader= +30 opinion

essentially if you do this, you should really look at the way EU4 does opinion, because they do it very well. It has a certain decrease and increase over time and many factors that are both positive and negative, just a suggestion though.

EU4's system is too simple and abstract for what I'm doing. I wouldn't say they do it very well. Also a lot of their system relies on historical religious relationships. And its just too static.

This topic is closed to new replies.

Advertisement