Simulating Citizens

This is for directed discussions on immediate questions of game design. Only moderators can create new threads.
Locked
Message
Author
User avatar
eleazar
Design & Graphics Lead Emeritus
Posts: 3858
Joined: Sat Sep 23, 2006 7:09 pm
Location: USA — midwest

Re: Simulating Citizens

#31 Post by eleazar » Mon Mar 31, 2008 8:33 pm

m_k wrote:
eleazar wrote:
Current VS Historical caused for (un)Happiness and/or (dis)Loyalty
[...]
I think the same can be achieved without having to use two values. Let's say, the meter tends to get back to neutral by 10% each turn, so for example if it was 20 in one turn it will modified by -2, so it will be at 18 the next, if it was at -50 it will get back to -45 and so on. Instead of shifting all this by your current situation value you can now add -1 for blockade and -2 for famine each turn. The meter will then by itself gradually move to -30 because this is the point where it gains +3 for forgeting older events and loses -3 for blockade and famine, which forms a stable equilibrium.
Interesting.
Playing with a spreadsheet it's functionally the same the same as what i proposed in it's result— when considering a single planet.

However i'm concerned about 2 things:

1) The way the numbers change seems unnatural. I.E. it moves very quickly at first and very slowly later on.
In the example of starting at -50 and reaching equilibrium at -30, it takes 7 turns to reach -40, and 29 more turns to reach -30. I would like to see a more even progression, but not necessarily a purely arithmetical one. But I don't have the math to suggest such a formula.

2) This works with a single planet, but how would it work with the meter values bleeding between planets as described under "Empathy"?

User avatar
Krikkitone
Creative Contributor
Posts: 1521
Joined: Sat Sep 13, 2003 6:52 pm

Re: Simulating Citizens

#32 Post by Krikkitone » Mon Mar 31, 2008 8:57 pm

The way I see allegiance to the ruling power working is

Lower allegiance= greater chance of revolt/riot (based on troops present)

The primary impact isn't economic here, it is political..do you control the planet or not.

Higher allegiance=greater Defense against Other empire's spying activity if you control the planet. Lesser chance of planet surrender to besieging enemies. Greater opportunity for You to spy on the planet if other empires control it.

The same happens here.. you control this planet more so there is less ability for other empire's to "control" it.

Also the higher a planet's allegiance to YOU is, the less allegiance they would feel for your enemies, and more for your friends.

Also units (ships and ground troops) that you produce would be more loyal if your empire is more loyal.


The reason I don't like "happiness" getting used for better economies is that blunts the political use of "happiness". It makes the game much less political. A happiness boost is the same as an economic boost, they should Not be interchangable... otherwise there is no point to happiness.

[the same reason we decided money can't buy production/research, happiness shouldn't 'buy' economic output... it might be a reqirement for economic output, but it shouldn't be a primary determiner of it]
After all look at the thread title, we want to simulate citizens, not consumer-producers... the economic model already accomplishes that.


A "cruel" empire should not be less productive, it should be more riddled with spies and dissent, treason, etc.

The "costs" of a cruel empire would be the massive number of troops/extensive security apparatus needed to stop enemies from Inciting revolt on your worlds. (and the fact that you might have to glass an occassional traitorous world as a rebel.)
Also if your empire was sufficiently cruel, your troops would be disloyal so they wouldn't be any good at stopping revolt, they would join the revolt.




As for Allegiance v. Happiness, the economics effect can just as easily be simulated by the allegiance meter
Happiness= Allegiance to the controlling empire
I see no reason to seperate those two.

If your "conditions" (unsafe/poorly fed/little goods) are bad, then SOMEONE gets blamed for it... that lowers your allegiance to whatever empire you blame.

In a war, you feel unsafe.. who do you blame, the enemy (most often) or your own side (Russia WWI) for not providing the proper defense. That would depend on the sitruation, but either one is possibe, so you do not become more unhappy, you lose allegiance to one of the two sides (or both)


As for Current v. Historical, the Easiest thing is to include some form of decay
start=0
Monster attack (one time -50, ongoing blockade=-1, famine=-2)=-53
decay to 0 by 10% =47.7
ongoing=-1, -2 =-50.7

eventually the allegiance goes towards -30

I might have modifiers that only modify the Current value and aren't stored in the value that carries over from turn to turn (ie another -5 for blockade and -20 for famine ... so
-78 [-53 perm]
that eventually becomes
-55 [-30 perm](because they forget the initial death)
and if the blockade is broken and food returns Immediately
-30 (because they remember the great famine, but at least it isn't happening now)
that eventually beomes
0


And it would work if the meter values bled directly
assume 2 planets
A +5/turn because of happiness situations
B -2 /turn because of unhappiness situations
if there is no Empathy
A->50
B->-20
But with Empathy of 10%, the value of A
A/turn=+5+10%(B-A)-10% A
B/turn=-2+10%(A-B)-10% B

so at equilibrium
2A=50+B
2B=-20+A
2B=-20+25+B/2
3B/2=5
B=3.3
A=26.7

so the empathy brings them closer together even though the ongoing situations are different.

As for the faster change at first, and slower later, there are ways to affect that, but it seems more sensible to have the lesser imact fade more slowly (that way there is ALWAYs some imapct... after all there is probably some mild lingering resentment from events that happen hundreds or thousands of years ago)

Also this has the Advantage that you know exactly how much impact an event had
assume you have an event that gave you -10 to allegiance
Absolutely independent of ALL other events/condition, it would have the same effect on allegiance depending on what turn it was
-10
-9
-8.1
-7.29
-6.561
etc.
out to 100,000 turns when it is something like - 1.34 nano allegiance (just made the value up didn't calculate, so I know its wrong)

m_k
Space Floater
Posts: 33
Joined: Wed Mar 12, 2008 10:54 am
Location: Aachen, Germany

Re: Simulating Citizens

#33 Post by m_k » Mon Mar 31, 2008 10:01 pm

eleazar wrote: Interesting.
Playing with a spreadsheet it's functionally the same the same as what i proposed in it's result— when considering a single planet.

However i'm concerned about 2 things:

1) The way the numbers change seems unnatural. I.E. it moves very quickly at first and very slowly later on.
In the example of starting at -50 and reaching equilibrium at -30, it takes 7 turns to reach -40, and 29 more turns to reach -30. I would like to see a more even progression, but not necessarily a purely arithmetical one. But I don't have the math to suggest such a formula.

2) This works with a single planet, but how would it work with the meter values bleeding between planets as described under "Empathy"?
1) Actually this is an exponential decay which is the same sort of decay that occurs in nature all of the time so the word unnatural doesnt quite fit. :) It has quality that it is a smooth transition. Progressing in one direction fast and then suddenly stopping at a point doesn't look that natural to me, although this is subjective. If something horrible happens to you, you are able to overcome a great part of the shock relativly soon, but there are some things you will probably never forget. And to use a dreaded realism argument, you could look at the demographical side of the problem. Those wo are most likely to remember an event are those who have lived when it happens. Of those who died in the turn directly after the incedent nearly all have lived when it happend, so the number changes fast. Of all those who die 30 turns later only a few have witnessed the incident, so it changes slowly.
Another thing is that it still can be adjusted, the 10% were just a random number, if you instead use 20% it is at 40.2 in turn 5 and at at -30.45 in turn 19, and so on. We could even change this value as part of a race trait.

2) This is quite easily solved. You take another 10% from every planet, multiply it with the planets population and throw it into a pool. For every planet you then take back a part of the pool corresponding to your population (Pool*PlanetPopulation/EmpirePopulation) and add it again. Another variant would be to include a local factor and distribute 5% to the pool and the other 5% directly to the neighbouring planets. The numbers are again changeable. There could even be some sort of empathy tech working in the same way as television lets us feel sorry for people in wars on the other side of the world we wouldn't even know about otherwise.
Below are two plots of a simple example, one with empathy and one without. This is a simple empire consisting of 2 planets with the same population, one of which is subject to the space monster attack and gets -50 in the first turn due to people dying and -3 in every turn due to blockade and famine. The upper points represent the free planet, the lowest the blockaded. The ones in the middle are the empire average just to show that this version of empathy doesn't affect the average in any way.
without empathy
Image
with empathy
Image

edit: okay, I got beaten by 4 minutes in parts of my post.

User avatar
eleazar
Design & Graphics Lead Emeritus
Posts: 3858
Joined: Sat Sep 23, 2006 7:09 pm
Location: USA — midwest

Re: Simulating Citizens

#34 Post by eleazar » Tue Apr 01, 2008 12:46 am

Great :) graphs make this so much easier for me to comprehend and discuss this sort of thing
m_k wrote:
eleazar wrote: Interesting.
Playing with a spreadsheet it's functionally the same the same as what i proposed in it's result— when considering a single planet.

However i'm concerned about 2 things:

1) The way the numbers change seems unnatural. I.E. it moves very quickly at first and very slowly later on.
In the example of starting at -50 and reaching equilibrium at -30, it takes 7 turns to reach -40, and 29 more turns to reach -30. I would like to see a more even progression, but not necessarily a purely arithmetical one. But I don't have the math to suggest such a formula.
1) Actually this is an exponential decay which is the same sort of decay that occurs in nature all of the time so the word unnatural doesnt quite fit. :) It has quality that it is a smooth transition. Progressing in one direction fast and then suddenly stopping at a point doesn't look that natural to me, although this is subjective....

Another thing is that it still can be adjusted, the 10% were just a random number, if you instead use 20% it is at 40.2 in turn 5 and at at -30.45 in turn 19, and so on.
I think what you are describing is the red line in the following graphic. I don't want to see it work like that. But your exponential curve i could only call it "smooth" at the terminal end. Immediately after a significant event it "progresses in one direction fast".
But what i mean by "unnatural" is that it doesn't feel right, for this kind of thing. This is admittedly subjective, but i don't think changing the "decay factor" to 20% or 5% really changes the quality of the curve, it just changes the steepness. What i would expect to see is something like a bell curve... or failing that at least a shallower curve as in the blue line in the following example:

Image

But i don't suppose the shape of the curve is in need of immediate definition, the point is, is looks like we have something that more or less works.

m_k wrote:We could even change this value as part of a race trait.
Sure, it could be part of the distinction between long-lived (or at least long memory-ed) species vs more ephemeral beings. However, be aware that if you change the "decay factor" that the equilibrium point changes. However, adjusting the rate at which empathy happens seems even more interesting. A hive mind would have a 100% empathy rate, for instance.
m_k wrote:Another variant would be to include a local factor and distribute 5% to the pool and the other 5% directly to the neighbouring planets. The numbers are again changeable. There could even be some sort of empathy tech working in the same way as television lets us feel sorry for people in wars on the other side of the world we wouldn't even know about otherwise.
It sounds interesting, but that's the kind of embellishment i'd leave for later, at least for the purposes of discussion.
Last edited by eleazar on Tue Apr 01, 2008 5:40 am, edited 1 time in total.

User avatar
Krikkitone
Creative Contributor
Posts: 1521
Joined: Sat Sep 13, 2003 6:52 pm

Re: Simulating Citizens

#35 Post by Krikkitone » Tue Apr 01, 2008 1:35 am

eleazar wrote:. However, be aware that if you change the "decay factor" that the equilibrium point changes. However, adjusting the rate at which empathy happens seems even more interesting. A hive mind would have a 100% empathy rate, for instance.
.
That's easy enough to adjust for, for a more ephemeral race, per turn amounts are larger.

User avatar
eleazar
Design & Graphics Lead Emeritus
Posts: 3858
Joined: Sat Sep 23, 2006 7:09 pm
Location: USA — midwest

Re: Simulating Citizens

#36 Post by eleazar » Tue Apr 01, 2008 6:54 am

Krikkitone wrote:Higher allegiance=greater Defense against Other empire's spying activity if you control the planet. Lesser chance of planet surrender to besieging enemies. Greater opportunity for You to spy on the planet if other empires control it.
OK, yes allegiance/happiness also functions as a defense against spies. But i don't think this effect should be over-emphasized. Certainly it is significant if the spy is trying to start a rebellion. But i don't think the difference between a moderately happy planet and an extremely happy planet should have a significant effect (if any) on the ability of spies to perform other spy functions.
Krikkitone wrote:The reason I don't like "happiness" getting used for better economies is that blunts the political use of "happiness". It makes the game much less political. A happiness boost is the same as an economic boost, they should Not be interchangable... otherwise there is no point to happiness.
"otherwise there is no point to happiness"? I don't why that could be true.
Krikkitone wrote:the same reason we decided money can't buy production/research, happiness shouldn't 'buy' economic output... it might be a reqirement for economic output, but it shouldn't be a primary determiner of it.
That is not relevant. Money/Production/Research are all different kinds of resources. The argument was made that if the resources are convertible into each other then, we don't have multiple resources, we just have a single resource that comes in many forms. This discussion was before my time, but i've read the threads.
But Happiness is not a resource. This argument does not prevent other non-resource meters from effecting the production of a resource. For instance planet type, planet size, population, and various buildings effect the amount of resources which can be produced. This is not a valid reason why "happiness" should not effect resource generation.

Krikkitone wrote:If your "conditions" (unsafe/poorly fed/little goods) are bad, then SOMEONE gets blamed for it... that lowers your allegiance to whatever empire you blame.

In a war, you feel unsafe.. who do you blame, the enemy (most often) or your own side (Russia WWI) for not providing the proper defense. That would depend on the sitruation, but either one is possibe, so you do not become more unhappy, you lose allegiance to one of the two sides (or both)
You have appealed to this "blame" idea before to support your proposal. But i don't think you have really explained how a planet decides who to blame, unless they always blame whoever they hate more. This doesn't seem like it would work to me. Not ever situation is part of a cut-and-dried conflict between two parties. How do they decide when to "lose allegiance to one of the two sides (or both)"? What happens when a bad (or good) event is brought about by the actions of multiple parties which the planet has neutral allegiance to?
For instance:
Planet X belongs to and is highly loyal to the Blue empire. It receives it's food via a trade route through the neutral empire, Green. However the Purple Empire (which is distant to Blue, and thus X also has a neutral opinion of it) has attacked a distant part of Green, and thus the trade route is broken, and X's food is cut off.
How does X decide who to "blame"?

Or for another example, the same loyal planet X is attacked and blockaded by a super-powerful space monster. Half it's population is killed. Who does it blame for this? Why would this be different than if the same devastation was caused by an empire that it hated?


One of the distinctions i'd make between allegiance and happiness is that happiness would tend to change more quickly than allegiance. It doesn't seem right that a major bad event could happen to a planet and either nothing happens (because they "blame" an external empire) or they blame their empire, and get pushed a long way towards rebellion.
Krikkitone wrote:As for Current v. Historical, the Easiest thing is to include some form of decay....
I get the impression that you are making some of the same points that m_k did, however most of your post from this point on is incomprehensible to me. Maybe it's my modest math skills, but if you want to get your ideas across, at least to me, you'll have to find a clearer way to express yourself. Even without the math, your posts tend to have a stream-of-consciousness like style that makes it harder for me to understand. It's hard to communicate these abstract game concepts anyway— especially as we are all making it up as we go along.



:arrow: I think what we need is some sort of more complete simulation to test these ideas out, and see how natural the reactions feel. m_k's two graphs went a long way towards making me confident that the empathy idea could really work. The allegiance situation (weather or not happiness is a distinct meter) seems to be a more complex problem, and even more worthy of some sort of proving. I don't know if it could be set up in a spread-sheet, or would need a more "real" language. But if we could create a simulation where the user could plug in events and watch the planet's allegiance change, it would be a very useful proof of concept, and also would be much easier to tweak than compiling and loading up the actual program.

m_k
Space Floater
Posts: 33
Joined: Wed Mar 12, 2008 10:54 am
Location: Aachen, Germany

Re: Simulating Citizens

#37 Post by m_k » Tue Apr 01, 2008 9:50 am

eleazar wrote:Great :) graphs make this so much easier for me to comprehend and discuss this sort of thing

I think what you are describing is the red line in the following graphic. I don't want to see it work like that. But your exponential curve i could only call it "smooth" at the terminal end. Immediately after a significant event it "progresses in one direction fast".
But what i mean by "unnatural" is that it doesn't feel right, for this kind of thing. This is admittedly subjective, but i don't think changing the "decay factor" to 20% or 5% really changes the quality of the curve, it just changes the steepness. What i would expect to see is something like a bell curve... or failing that at least a shallower curve as in the blue line in the following example:

Image

But i don't suppose the shape of the curve is in need of immediate definition, the point is, is looks like we have something that more or less works.
No it isn't smooth (smoothness is in fact an actual mathematical definition) at the begining in fact it isn't even continuous, it has a huge jump from 0 to -50 in the beginning, so how should it be smooth? But of course there are cases where there is no such jump. Take for example the moment the space monster is killed and the planet there is no sudden jump, but everything would normalise to 0 in much the same way, with a sudden rise in the beginning. But the question is if it has to be smooth. In fact I believe it probably shouldn't be smooth. A sudden change in the applying conditions should exactly warrant a sudden change in what's happening. This is also what the player will expect. If he changes something, he wants to see some results, he doesn't want to wait some turns until things start moving.

On your blue curve, this would be achieved by setting the decay to 5% or something about there, this is more a question of playtesting on how long it should take to get near the stable point.


Somehow this gives me the idea for a nice feature, there should be some sort of graph poping up for every meter along with the details we already have, consisting of the values from the last 20 or so turns and a prediction of what will happen in the next turns if the conditions stay the same.

User avatar
Krikkitone
Creative Contributor
Posts: 1521
Joined: Sat Sep 13, 2003 6:52 pm

Re: Simulating Citizens

#38 Post by Krikkitone » Tue Apr 01, 2008 2:44 pm

In terms of the "Blame", blame doesn't have to be 100% one empire or another, it can be split... for an event that gives 30 allegiance effect, it could be 15 to empire A, 10 to empire B, and 5 to "the universe" [which means it just goes away] (its also possible to have both a and B get a 20 blame, or both get 30 Blame)


Also a very Loyal planet should make ALL spy actions harder, because those spies are more likely to get turned in. Anything below Maximum Allegiance is what a spy has to work with.

User avatar
eleazar
Design & Graphics Lead Emeritus
Posts: 3858
Joined: Sat Sep 23, 2006 7:09 pm
Location: USA — midwest

Re: Simulating Citizens

#39 Post by eleazar » Wed Apr 02, 2008 1:57 am

Spreadsheet Simulation
I tried to take my own advice about a spreadsheet simulation.
I created a chart with 3 planets where you can set the initial conditions, and initiate "happiness changing evens" at any point in the time line. You can also change the "decay rate".
A nice graph displays the results.

I got stumped however when tried to add in Empathy.

You can download this open document spreadsheet here.

You can change any of the numbers with the yellow background without worrying about the formulas.

Krikkitone wrote:In terms of the "Blame", blame doesn't have to be 100% one empire or another, it can be split... for an event that gives 30 allegiance effect, it could be 15 to empire A, 10 to empire B, and 5 to "the universe" [which means it just goes away] (its also possible to have both a and B get a 20 blame, or both get 30 Blame)
I know you've proposed that blame can be shared in some circumstances.
But this is not answer the critical questions i asked in my last post about your proposal:

:arrow: How does a planet decide who to blame?

Krikkitone wrote:Also a very Loyal planet should make ALL spy actions harder, because those spies are more likely to get turned in. Anything below Maximum Allegiance is what a spy has to work with.
Allegiance is only relevant to the spy if he needs the knowing cooperation of some of the citizens. If he is on the sort of a mission that is only information gathering (for instance) there is no significant reason the loyalty should matter if he doesn't reveal himself.

I.E. high loyalty makes citizens more likely to turn in spies, but it does not make them any better at finding the spies in the first place.
Last edited by eleazar on Wed Apr 02, 2008 4:24 pm, edited 1 time in total.

User avatar
Krikkitone
Creative Contributor
Posts: 1521
Joined: Sat Sep 13, 2003 6:52 pm

Re: Simulating Citizens

#40 Post by Krikkitone » Wed Apr 02, 2008 6:48 am

eleazar wrote: I know you've proposed that blame can be shared in some circumstances.
But this is not answer the critical questions i asked in my last post about your proposal:

:arrow: How does a planet decide who to blame?
I had a nice long explanation here but I lost it so just the principles

Any Empire that COULD help is blamed for a problem (your empire is typically blamed a little bit more because they SHOULD help)
so any empire that Could provide a route to you/have stopped the space monster, etc.

Any empire whose actions directly CAUSE a problem is blamed more than those that Could help (bombing/blockading a planet)

Any Empire that DOES help is blamed for the solution (whoever destroys the space monster gets a bonus to loyalty)
eleazar wrote:
Krikkitone wrote:Also a very Loyal planet should make ALL spy actions harder, because those spies are more likely to get turned in. Anything below Maximum Allegiance is what a spy has to work with.
Allegiance is only relevant to the spy if he needs the knowing cooperation of some of the citizens. If he is on the sort of a mission that is only information gathering (for instance) there is no significant reason the loyalty should matter if he doesn't reveal himself.

I.E. high loyalty makes citizens more likely to turn in spies, but it does not make them any better at finding the spies in the first place.
the citizens may not know they are spies but they should know they are doing something illegal. Infogathering of the 'legal sort' ie reading a newspaper might not be hindered, but that is not what I would really class under 'espionage'. [although that is an important point]

the primary purpose of high loyalty would be like a 'stockpile' a food stockpile is a buffer against starvation, high loyalty is a buffer against riot/revolt.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12688
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Simulating Citizens

#41 Post by Geoff the Medio » Sun Apr 06, 2008 12:41 am

I'm not convinced of the need for separate happiness and loyaltly / allegiance stats.

The objection raised was the case of a planet being attacked and losing infrastructure. The planet should be unhappy due to reduced standard of living, but should be more loyal to its empire due to the battle being fought against the evil attackers. If there was only one loyalty meter, then attacking a planet making it unhappy would push it to disloyalty when it should make it more loyal.

But why do we need an attacked planet to be "unhappy"? What does tracking happiness add that just loyalty wouldn't? If there's no happiness, and just loyalty / allegiance, the attack would make the planet more loyal. There will already be lost production due to infrastructure loss.
..1-dimensional "happiness" ... nearly eliminates the classic 4X strategic options of choosing between a "kind" empire where you work hard to keep your citizens happy, but they pay you back with higher productivity, vs a "cruel" empire where citizens are not pampered.
[realism]Why should happy planets necessarily work better than unhappy planets? An enslaved population would likely be quite unhappy, but could be even more productive than happy planets with lots of luxuries.[/realism] We can still have choices such as luxuries and freedoms vs. slavery without a happiness meter as empire picks. The effects can, and probably should, vary from race to race, and shouldn't always be happy = more productive.
There are lots of results we could choose for happiness, such as faster population growth. But higher resource production is the most obvious effect of high happiness (as in Civ).
We already have lots of things that alter resource meters directly and indirectly. Adding happiness as well, with its own complicated formula doesn't seem necessary.

By analogy, for ships, I think we can do without a "mass" statistic, and just have hulls and parts have modifiers to speed, damage capacity, etc. directly.

Regarding decaying importance of past events over time, rather than having an exponential decay, a constant decay would be good because it would give a fixed finite duration for the effects of an event on a particular planet. This would make listing the effects that act on a particular planet's loyaltly much easier.

If planets' loyalties are bleeding together with empathy, then things get a bit more complicated, though. This could perhaps be worked around by listing empathy effects as "nearby planet empathy", "race empathy", "empire empathy" which would be given a specific value determined by the difference between the planet's current loyalties and the averages of those groups, likely with scaling factors to determine the rate of bleed.

Regarding spying and effects of loyalty, for many espionage missions, loyalty or happiness would probably be irrelivant. You don't need to convince your spy to work for you again. Perhaps recruiting a spy from a particular race could depend on loyalties on planets. Most spy missions wouldn't be seen by the population, regardless of loyalty; they certainly wouldn't suspect the spy is doing something "illegal". A few espionage missions, assuming they are grouped in with cultural / political manipulations, might be to alter loyalties or incite rebellions, which would be easier or harder / impossible depending on loyalty, though. But for information stealing or production / building disruption, loyalty probably wouldn't be a factor.

User avatar
Krikkitone
Creative Contributor
Posts: 1521
Joined: Sat Sep 13, 2003 6:52 pm

Re: Simulating Citizens

#42 Post by Krikkitone » Mon Apr 07, 2008 6:51 pm

Geoff the Medio wrote:
Regarding decaying importance of past events over time, rather than having an exponential decay, a constant decay would be good because it would give a fixed finite duration for the effects of an event on a particular planet. This would make listing the effects that act on a particular planet's loyaltly much easier.
Actually, I think Exponential Decay is the Easiest to list factors.

Lets say we decide on a linear decay of 2 points per turn

Event 1 (turn 1) =10
E1=10
E1=8
(Turn 3 Event 2 Happens =6)
E1=6, E2=6
??? Now what, do they BOTH decline by 2 (4 and 4 total 8), or does each decline by 1 (5 and 5 total of 10)??? if we go 4 and 4, then I don't know what my Total Happiness will do each turn, I have to know how many events are still active on it. If we go 5 and 5, then knowing what happens to each event is complicated

On the other hand, the Amount of decline if it is Exponential is Independent of other effects. Admittedly that means n0event is ever completely forgotten (but
A.. that seems reasonable
B.. we would be looking at "classes" of events not each individual event (as some would happen almost every turn)

Basically with an Exponential decay, the Whole(total) Loyalty and the Part (categories) of Loyalty will all change in EXACTLY the same way, and so it will be more understandable

Also how long something "lasts" would be exactly the same for every event
(if we chose 10%, then after 7 turns its about half gone... 20 turns its down to almost 1/10th, and 40 turns its near 1% = gone for all practical purposes)
Also that means the Rate of decay can more easily be adjusted (For race picks and other things) not only before game, but In game from turn to turn.



As for Spying... that depends on how much your spy is going to do stuff all on their own. Which I doubt, more than likely they will be relying on locals for supplies, help, etc. Even if it is just being able to have customs officials that you can bribe to get the spy's equipment through.... you Need some degree of local cooperation (and you Should, as that would be the best effect of a high loyalty, spies can't get through)

User avatar
eleazar
Design & Graphics Lead Emeritus
Posts: 3858
Joined: Sat Sep 23, 2006 7:09 pm
Location: USA — midwest

Re: Simulating Citizens

#43 Post by eleazar » Tue Apr 08, 2008 11:39 pm

Geoff the Medio wrote:Regarding decaying importance of past events over time, rather than having an exponential decay, a constant decay would be good because it would give a fixed finite duration for the effects of an event on a particular planet. This would make listing the effects that act on a particular planet's loyaltly much easier.

If planets' loyalties are bleeding together with empathy, then things get a bit more complicated, though. This could perhaps be worked around by listing empathy effects as "nearby planet empathy", "race empathy", "empire empathy" which would be given a specific value determined by the difference between the planet's current loyalties and the averages of those groups, likely with scaling factors to determine the rate of bleed.
This kinda brings up a more fundamental question than weather to use allegiance + happiness or just allegiance.

Geoff seems to be working under the idea that the player needs to be able to see a readout that lists every single effect on a planets allegiance (and/or happiness. hereafter "and/or happiness" can be assumed whenever i mention "allegiance"). But i really don't see how any sort of allegiance system with a historical memory can have such a list that's not really confusing and cumbersome.

The early civs (i'm not very familiar with the later ones) had a system of "happiness" without a historical memory, where you could see the cause of every single population unit's (un)happiness. It was a somewhat complicated, and i seldom referred to it, finding it simpler to remember which things caused (un)happiness, and changing whatever i could to get the results i needed without doing the math.

If we try to list out all the causes of a planets allegiance score with historical memory, i suspect that information will cross the threshold to where it's so complicated it's very seldom referenced. In a contested part of space, it's easy to imagine dozens of events and factors on a planet's allegiance. The important things IMHO is that the contributing factors are understandable and reasonable, not that we display the equation.

While i tend to argue for simple formulas for game mechanics, for simulating citizens, it doesn't bother me if the precise workings of "allegiance" are something of a black box to the player. Not that the results should seem irrational or counter-intuitive: The player should know clearly which actions have a positive, negative, or no effect. But the magnitude of an individual effect may not be easy to calculate.
IMHO that will help make the planets seem populated by citizens rather than automatons.


However, there is one aspect of the system i'm favoring which does lend itself to a listing or analysis, and that's the "Target Value" of the meter. It's the same concept that i very previously badly named "current situation value". It's the number that the meter is moving towards, and since it is calculated afresh each turn, it doesn't directly include a redundant series of events. Example:

Planet X was recently Captured by the Green Empire from the Red. Due to all the events of the War X's current allegiance to Green is -50. While it would be difficult (and of dubious usefulness) to list for the player precisely how that allegiance value came to be, we can tell the player what X's "Target Allegiance" is, and how long it could take to reach the target value. Something like this:
  • Planet X Allegiance:
    Excellent Heath +20
    High Security +10
    Ethos:
    — Scientific: +10
    — Honorable -5
    — Diversity +5
    Average Species Allegiance: +5
    ——————
    +45 (in 30 turns)
Basically due to the good conditions on X, and the relative compatibility of X's ethos to Green's actions, X will eventually come around to liking Green, once the war is forgotten. Of course there is no guarantee. Additional events could occur that increase X's disloyalty to the point of rebellion, and Green might respond by making it a slave planet, or Green might grandly violate X's ethos, or Green might try to take more planet's of X's species, in a sloppy, bloody way, which creates more species wide hate for Green, etc.

But with this kind of info, i don't think we need to explain exactly how the current meter got it's value.

User avatar
eleazar
Design & Graphics Lead Emeritus
Posts: 3858
Joined: Sat Sep 23, 2006 7:09 pm
Location: USA — midwest

Re: Simulating Citizens

#44 Post by eleazar » Wed Apr 09, 2008 3:20 am

I got empathy working in my citizen test spreadsheet.
http://www.jwbjerk.com/dl/freeorion/hap ... ts.ods.zip

This demonstrates more than i was expecting that empathy can be an extremely powerful force on small planets. With my example values, the third planet is much smaller than the others. Notice how much it varies from its' non-empathy line.

As before you can change any of the values with the yellow background, and the chart should update.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12688
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Simulating Citizens

#45 Post by Geoff the Medio » Wed Apr 09, 2008 5:18 am

eleazar wrote:Geoff seems to be working under the idea that the player needs to be able to see a readout that lists every single effect on a planets allegiance
Not so much that the players needs to see a readout, but more so that it would be good if we can provide that information. The particulars of the loyalty system could make it impractical, though, as has been noted.
But i really don't see how any sort of allegiance system with a historical memory can have such a list that's not really confusing and cumbersome.
The conception I had was to move the "history" tracking from the actual loyalty value into the things that cause the loyalty value. So, an event affect loyalty wouldn't be just "+10" on the turn it occured; instead, events could have various long-term time-dependent / repeating effects on a given turn's loyalty level. A building might give +3 every turn while active, regardless of time since it was built, or an unpopular social engineering choice might give -5 every turn. Most modifications would be of this sort, giving the same increase or decrease every turn, like most effects on max meter values. One-time events would have a decay profile over time, giving, for example, +10 on the first turn, then +9, +8, +7 ... +2, +1, 0 and then be finished / disappear. Things like empathy would work the same way; the difference between the empire's average and a planet's own loyalty/loyalties on the previous turn would be proportional to (and determine) the "empire empathy" contribution to that planet's loyalty this turn.

Locked