Happiness from Luxuries

ilteroi

Prince
Joined
Mar 11, 2006
Messages
486
Hi all.

It seems there's currently a big debate about happiness. One issue which has bothered me for a while (and apparently others as well) is the arbitrary way happiness from luxury resources is calculated. So I'd like to change it, but first I'd like some input from the community.

Right now, you get one happiness per luxury as base, plus additional happiness at set population thresholds. Then a certain percentage is subtracted depending on the number of cities in your empire (to balance wide/tall play).

In the new system, each luxury would make a certain percentage of your population happy, but a least one citizen. That's it. Simple.

As a formula: N_happy = max(N_lux, round(N_lux * TotalPopulation * ConversionRate))

However, questions:
* What percentage would be appropriate? 1%? 2%?
* Should it be normalized to the number of unique luxuries on the map?
* Should we keep the modifier for number of cities?

In the long run, you could also imagine player traits or policies which modify the conversion rate.

Opinions please!
 
Regardless of how the system is modified, I would love to adjust the UI on this one. I still struggle to understand how much happiness from luxuries I am getting from that screen.
 
What % -> Absolutely no idea.

Normalized by the number of unique luxuries -> I think that's a bad idea. It would mean that the early game would be much easier on small maps than on huge maps.

Keeping the modifier for number of cities -> I think yes. I think that currently having two "15 pop cities" generate less unhappiness than one "30 pop city". Having more cities also give access to more luxuries.

In fact, is there still a reason in current "meta" for the happiness from luxuries to scale with population rather than scaling with era ?
It was first introduced when happiness from "wide" was far much difficult to handle than happiness from "tall", which is far less the case now.
 
I'd like to see it simplified too.

Something like mean city size in the empire (total pop / number of cities) multiplied by 0.2 by the total number of luxuries connected. So, having 5 luxuries while the mean city size is 8 pop gives 8 happiness (5*8*0.2).
Maybe not these numbers, but I think this scales well.
So:
(# Unique Luxuries) + ((# Unique Luxuries) * (Average City Size) * (a Constant))

That sounds like a nice, transparent and workable system to me. I disagree on the value you chose as a constant (0.2); that seems too low to me, but that's something that could be worked out easily enough.
 
I would rewrite as
(Happiness from Luxuries) = (# Unique Luxuries) * (1 + [(some scaling constant) * (average City Population)])​

I like it! Makes Luxuries a bit more of a priority need when Cities are bigger (i.e., (1) for "taller" Civs and (2) later in the game), which seems right.
 
Given that I tend to ignore luxuries outside of yield(in early game) + monopoly benefits these days... yeah, something could certainly be done about the happiness bit of it(or the visibility thereof). I'll leave the math to y'all though.
 
If possible, I'd prefer if extra copies of a luxury had at least a small positive effect on the happiness.

Also, I'd prefer if the population thresholds for increased luxury happiness bonus were a bit lower (especially with the later thresholds).

As for your questions, I'm undecided, so I'll yield to the rest of the community.
 
If possible, I'd prefer if extra copies of a luxury had at least a small positive effect on the happiness.

I've batted this around in my head as well. Ultimately though, the point of extra luxuries is trade. Its a good gameplay mechanic to encourage people to engage with other civs, and of course provides a loss if they can't trade (sanctions) or won't. Giving benefit to extra luxuries reduces that incentive, which ultimately I think makes the game worse off.
 
(Happiness from Luxuries) = (# Unique Luxuries) * (1 + [(some scaling constant) * (average City Population)])

So effectively "average City Population" is your driver in this model (to what degree is still decided). So ultimately 10 population across 2 cities would provide the same bonus as 20 pop over 4 cities etc.

The advantage of such a mechanic is its very easy to understand. My total pop / my number of cities = Average...easy peesy. But will it scale appropriately over time I think is a big question.

Ultimately what is the problem we are really trying to solve? Iteroi made the point that the mechanic is "arbitrary", which is a starting point but I don't think its enough to completely retool the mechanic. Are there other flaws in the current system that we need to address? Again my main issue is just the UI, I don't really understand the current mechanic based on the UI.
 
Ultimately what is the problem we are really trying to solve? Iteroi made the point that the mechanic is "arbitrary", which is a starting point but I don't think its enough to completely retool the mechanic. Are there other flaws in the current system that we need to address? Again my main issue is just the UI, I don't really understand the current mechanic based on the UI.
I think the biggest issue is that luxuries don't contribute enough to the happiness 'mix'. Regardless of what system of calculation is used, it is my opinion that acquiring and trading luxuries doesn't have as much game impact as it should.

If luxuries contributed maybe 10% more as proportion of total empire happiness, then I think we'd be in a much better place. While they aren't ignorable right now, they are a bit more peripheral than I would like. People are wayyyyy more concerned with settling for their monopolies than they are about having diverse luxuries right now.
 
using the average city population in the calculation is an interesting idea, but i think it's too volatile ... you probably don't want your happiness to drop after founding a new city.

and, since apparently i didn't state it clearly enough in the OP: the advantage here is that there are no steps anymore. you don't need to gain >100 citizens to unlock the next tier of happiness. instead you simply gain 1 happiness for every 5 or 10 new citizens, depending on how many luxuries you have.

that, and the possibility for additional policy effects, since happiness from luxuries is much more granular now.
 
using the average city population in the calculation is an interesting idea, but i think it's too volatile ... you probably don't want your happiness to drop after founding a new city.

and, since apparently i didn't state it clearly enough in the OP: the advantage here is that there are no steps anymore. you don't need to gain >100 citizens to unlock the next tier of happiness. instead you simply gain 1 happiness for every 5 or 10 new citizens, depending on how many luxuries you have.

that, and the possibility for additional policy effects, since happiness from luxuries is much more granular now.

Just to ensure I understand your system. Lets say that a Luxury provides happiness = 1% of total population (or 1 at minimum). So for example.

0-100 people: 1 happy
110 people: 1.1 happy
150 people: 1.5 happy
200 people: 2 happy

Now, do the fractional happy numbers matter or are they rounded down? Lets say we have 110 people, with 3 luxuries. That is 3.3 happy, does that round down to 3 happy or is the .3 factored in somehow?

Ultimately doesn't the current system already do fractional happiness? To me the main difference is your system doesn't factor in the number of cities at all, its just about population, which very heavily favors WIDE play styles. Not necessarily a bad thing but important to note.
 
Ultimately doesn't the current system already do fractional happiness? To me the main difference is your system doesn't factor in the number of cities at all, its just about population, which very heavily favors WIDE play styles. Not necessarily a bad thing but important to note.
And wide means more land, ie more different luxuries. So They would benefit more per luxury, and they would have more luxuries.

Doesn't necessarily mean it's a bad thing. If we can get needs to a point where Tall has fewer needs problems than wide, then luxuries could be how wide civs prop up their empires. The two playstyles could essentially be playing different happiness games. The problem right now is that the needs mechanic actually favors wide play too.

EDIT:
you probably don't want your happiness to drop after founding a new city.
That's how it works in vanilla... I don't think it's too radical an idea; having number of cities contribute to unhappiness is a way to make sure tall players are dealt with fairly.
 
Last edited:
The current mechanic is already favoring for wide, offering the same benefits described above: more land coverage means typically more population and more luxuries. Would they have more unhappiness sources to balance it? Either way, if the goal is to limit the jumps, or changing it from being an exponential increase to more linear, that should be possible. Just need to determine if that makes it more balanced.
 
using the average city population in the calculation is an interesting idea, but i think it's too volatile ... you probably don't want your happiness to drop after founding a new city.
I'd actually be OK with that. It would basically be another check on early expansion, which I think is fine given current early game balance.
(It would obviously still be imperative to found a few more cities, but you'd have a little more to think about with regard to timing when to pop those first few Settlers or conquer those first few Cities.)

If other people share this concern about volatility, though, we could always soften the drastic-ness of the average population calculation by adding a constant in the denominator:

For example, with this formula, the second City you found knocks down your "average Pop per city" for this purpose by ~20%, not ~40%, assuming your Capital had 5 Pop (so, 5/2 → 6/3 instead of 5/1 → 6/2).
(The scaling constant would obviously have to take this into account.)

Spoiler :
A similar option would be to add a constant to the numerator, too, like this:
This basically just adds a fictional dummy City with 5 Citizens into the calculation of Average Pop, again making it less swingy.

Yet another option would be to double-weight the Capital when calculating Average Pop/City. This would make maintaining a high-Population Capital more important/attractive.


To me the main difference is your system doesn't factor in the number of cities at all, its just about population, which very heavily favors WIDE play styles. Not necessarily a bad thing but important to note.
The current mechanic is already favoring for wide, offering the same benefits described above: more land coverage means typically more population and more luxuries.
Strongly agree. Tall Civs could definitely use a Happiness boost relative to Wide Civs. Plus, Luxuries are a little underwhelming overall in general right now anyhow.
 
Last edited:
I don't think that volatility would matter. Right now I can settle 3-4 cities without any connected luxury. By the time I get two luxuries, my cities are 2-5 pop, roughly 3.5 pop per city. Two luxuries are giving 2*(1+3.5*0.2) = 3.4
Settling another city (5th) reduces average pop size to 3. Those two luxuries now give 2* (1 +3*0.2) = 3.2
Barely noticeable.
And as pineappledan says, you might be able to connect another luxury by going wider.

Things get better when cities are larger. A tall empire with 5 cities, averaging 20 pop in Renaissance-Industrial would get (1+20*0.2) = 5 happiness from every luxury. Meanwhile, a wider civ with 10 cities averaging 12 pop would get (1+12*0.2) = 3.4 from every luxury. But tall civs usually get their hands on fewer luxuries.
 
ok guys, it's done.

so how does happiness from luxuries work now? there are two contributions:

1. "base resource happiness". this is calculated from the number of resources you have access to. typically that is one happiness per luxury.
2. "luxury bonus happiness". this is calculated from the number of resources you have access to, your average city size, and a scaling factor (10%). it is however not fully linear in the number of resources. to simulate a "saturation" effect, each additional luxury only gives 95% of the effect of the previous one. so the tenth luxury only has 60% effectiveness. the average city size is a real number (ie not rounded. and it's the real average, not the median). the end result is rounded to the nearest integer.

some examples:

2 lux, avg size 15 -> 3 bonus happiness
10 lux, avg size 18 --> 15 bonus happiness
18 lux, avg size 20 --> 24 bonus happiness

the change will probably be included in the next release
 
10% seems crazy low... Wouldn't 25% be better?

Also, the 95% saturation mechanic doesn't seem necessary. It's a punishment for going tall, which luxuries don't need because amassing luxuries already favors wide. Your own math indicates that the inclusion of a saturation limit caps out pretty early, and could pose a serious threat to tall players.
some examples:

2 lux, avg size 15 -> 3 bonus happiness
10 lux, avg size 18 --> 15 bonus happiness
18 lux, avg size 20 --> 24 bonus happiness

the change will probably be included in the next release
(3/2) = 1.5 bonus :c5happy:happiness per luxury with 15 :c5citizen:pop.
(15/10) = 1.5 bonus :c5happy:happiness per luxury with 18 :c5citizen:pop. (the exact same amount. bonus caps at 2.5 happiness per lux total?)
(24/18) = 1.3 bonus :c5happy:happiness per luxury with 20 :c5citizen:pop. (the luxury bonus has DECREASED while population continues to increase)

An average pop of 20 is actually a fairly tall empire until pretty late; this is going to make luxuries far more useful for wide play with low populations. The parabolic saturation mechanic makes high growth even more dangerous, because every luxury compensates your empire less and less per population. We’re back where we were in August, where high pop cities are a happiness trap, but now the mechanic that kills you is your luxuries breaking, rather than your needs drowning you.

In vanilla, a unique luxury gets you 4 happiness. Without the saturation rate, you would still need an average of 30 pop per city to get 4 happiness per luxury.

TL;DR - I beseech you to increase the bonus scaler and remove population saturation. The system you propose would actively punish high population. Only minor adjustments are needed to make the system much more charitable to tall players.

On another note, a +5-10% on the scaler would make a great addition to the Dutch UA.
 
Last edited:
Top Bottom