(9-32b) Empire Size Modifier Rebalance

Status
Not open for further replies.

FPXI

Prince
Joined
Aug 23, 2014
Messages
315
Motivation
I agree that the current city-spam situation is a major problem, and agree with the assessment of the problem in the original proposal. However, I think the proposed solution is too big of a change and goes beyond the scope of a re-balance.

I propose the following smaller change with the hope that it will make decisions about when and where to found a new city a little more deliberate, and encourage more population growth.


This proposal is intended to work in conjunction with other proposals made this session that increase the importance of food, working tiles and farms, and encouraging more puppet use, but it is also designed to work without them and becomes even more important if they fail.

In addition to the change proposed in 9-34, I propose we do three things:
  • Increase the empire-size modifier penalty per city.
  • Eliminate the impact of total population on the empire-size penalty.
  • Remove the empire-size modifier reduction on walls.
Goals
  • Slow down early city spam by making Empire-Size modifier slightly more punishing early.


Proposal
Empire-Size Modifier​
Each city in your Empire (excluding the Capital and Puppet Cities) increases the Needs Thresholds by 5% 7%.
Additionally, every eight Citizens in your Empire (excluding Citizens in Puppet Cities) increases them by 1%.
Walls (Walls of Babylon / Lamassu Gate)​
⚔️ City Strength: +6​
⚔️ Hit Points: +100​
Local Effects:​
• +5% Military Supply from Population​
• +1 City Strike Range​
• -5% Empire Size Modifier


Considerations:

This proposal has a slightly larger negative impact on Babylon and Assyria because it impacts their unique buildings they want to build in every city early. Because walls are typically buit in most cities regardless of Civ or playstyle, this impact is restricted to the timing of accumulated empire-Size reduction penalties relative to other civs before castles.

Mongolia's Adopt the Yaasa becomes slightly more efficient. Currently it reduces per-city penalties from 5% to 3%. Under the proposed change it would reduce per-city penalties from 7% to 4.2%. That's an efficiency gain of .08%. This is a small increase in strength against other wide civs (more efficient size) but still a slight nerf relative to tall civs (their per-city penalty is still increasing).



References:

This is a counterproposal to this 9-35
Motivation
Currently more cities is almost always better and not just a little better but significantly better. While I generally think additional cities should generally be a good thing there should be some trade offs and it should take some time for the investment in new cities to pay off. Here are several reasons for wide currently being very strong:
  • Per city penalty for culture/science is low at only 5%
  • You get more yields from more smaller cities than fewer large cities due to flat yields and specialists
  • You don't need that many tiles to work if you go for 10-15 pop cities and work a number of specialists so can pack cities in tightly
  • You can avoid growth to prevent Need increases which would cause more unhappiness
  • Unhappiness is by needs which is based and capped primarily by population and there is no base unhappiness per city
It would be great to make some adjustments that achieve the following:
  • Allow empires with a few less cities compete with those with a few more cities besides just racing to get a CV/DV while they hope not to get attacked
  • Promote using puppets instead of always annexing as empires get very wide so that each additional city doesn't contribute quite as much and slows down the snowball effect
  • Higher pop cities and working tiles being more valuable so city spam is not always optimal
This will be a series of related but I believe independent proposals which will tackle the following (bolded is what this specific proposal addresses):
  • Increase per city penalty for culture/science so its harder for wide empires to also gain a significant tech/policy lead while also promoting the use of puppets which don't give the penalty
  • Adjust unhappiness to be based more on number of cities while buffing luxuries so they are more meaningful outside of monopolies
  • Make settling new cities or annexing them more costly and take longer while reducing the time to puppet cities


Proposal Summary
  • Add 2 flat unhappiness to Cities
  • Increase base Happiness by 4 on all difficulties (2 Cities worth)
  • increase Luxury Happiness from 2 to 4

The 7% value is chosen to be consistent with the proposed science and culture change in 9-34:
Proposal Summary

  • Increase per city penalty for Culture/Science from 5% to 7%



Implementation Note:
The empire-wide population modifier to empire size penalties could either be removed or just reduced to 0%. Neither is difficult, but the later retains the ability to easily adjust it later. I see no harm in keeping the knob around.

Changes include:
  • In CoreDefineChanges: (EMPIRE_SIZE_NEED_MODIFIER_CITIES, 500 700)
  • In CoreDefineChanges: ('EMPIRE_SIZE_NEED_MODIFIER_POP', 125 0)
  • In NewConcpetText.xml: "...increases the Needs Thresholds in every City by 5% 7%. Additionally, every eight Citizens in your Empire (excluding Citizens in Puppet Cities) increase them by 1%."
  • In BuildingChanges for walls: EmpireSizeModifierReduction = -5 -0
  • In BuildingTextChanges.sql for walls: "Also helps with managing the Empire Size Modifier in this City."
Edit: Edited per azum4roll and pineappledan suggestions and to clarify impacted Civs.
 
Last edited:
The biggest issue I have with this approach is it makes the current gameplay around avoiding growth in cities even more critical. And since you can use this to mitigate the empire size penalty, I don't think this ends up having much impact.
 
The needs not updating until population growth is a serious flaw :/. Not sure any change works to stop abuse of Avoid Growth in this specific way, but your point is taken.

I do wonder, though, if this change combined with your proposed tech/policy cost change combined with the specialist and farms change ends up being bigger than anticipated. Would have to do some math about how it all benefits Tall specifically.
 
The needs not updating until population growth is a serious flaw :/. Not sure any change works to stop abuse of Avoid Growth in this specific way, but your point is taken.

I do wonder, though, if this change combined with your proposed tech/policy cost change combined with the specialist and farms change ends up being bigger than anticipated. Would have to do some math about how it all benefits Tall specifically.
Historical context: It's not a bug, it's a feature! :) It was designed this way because long ago in the beforetimes, unhappiness was a much larger problem that could easily spiral out of control and be very punishing, with little ability to remedy this if you were caught behind and Needs Thresholds kept increasing. The ability to Avoid Growth and have Needs thresholds remain static until then was a safety valve on this - so that players could stop growth and build buildings to address their citizens' Needs, rather than unavoidably spiraling into Unhappiness.

Public Works were the other safety valve, designed more as an "emergency button".
 
That does actually make sense. And we wouldn't even want that to happen in edge cases because it would be so miserable for the player.

Given that though, it seems like the only really good way to address city-spam without totally reworking happiness would be to reward tall play more for having more population. But any successful change in that direction risks mega-capital plus satellites as optimal for everyone.
 
Historical context: It's not a bug, it's a feature! :) It was designed this way because long ago in the beforetimes, unhappiness was a much larger problem that could easily spiral out of control and be very punishing, with little ability to remedy this if you were caught behind and Needs Thresholds kept increasing. The ability to Avoid Growth and have Needs thresholds remain static until then was a safety valve on this - so that players could stop growth and build buildings to address their citizens' Needs, rather than unavoidably spiraling into Unhappiness.

Public Works were the other safety valve, designed more as an "emergency button".
This was also a thing before we had Public Works IIRC, and unhappiness penalties were harsher. Public Works is the better solution to unhappiness.
 
This was also a thing before we had Public Works IIRC, and unhappiness penalties were harsher. Public Works is the better solution to unhappiness.
There may be a lot of support here for changing how and when Needs Thresholds update. It would improve our ability to balance wide vs tall.

Presumably it's a dll change moving unhappiness needs calculations from population growth processing to doTurn? But I'm not familiar enough with the code base to understand how complicated it really is or what the cost of increasing the frequency of processing would be.
 
Last edited:
The global medians are already updated in CvGame::doTurn(). Each city keeps a set of cached medians, and that can be dropped if we don't need to lock medians.

Btw, the global medians already set to gradually change, so it's unlikely to be changing abruptly over a turn or two.
 
The global medians are already updated in CvGame::doTurn(). Each city keeps a set of cached medians, and that can be dropped if we don't need to lock medians.

Btw, the global medians already set to gradually change, so it's unlikely to be changing abruptly over a turn or two.
Ya I figured out how it processes and modded the .dll for myself since I first posted this. Changing from the changePopulation() check to also updating Needs Thresholds if a city has avoid growth locked or is starving was trivial. I just moved the yield caching call into doGrowth() at the appropriate places. Works for me for now.

I still think my proposed change here is a good one to address city-spam even if the player can abuse avoid-growth to game their way out of the (fairly small) impact. All impacts are on wide vs tall play are going to be fairly small for knowledgeable players with the current implementation, but cumulative small changes might help bring down the city count in the early/mid game one or two.
 
I don't understand how adding a needs increase per citizens on empire is supposed to hurt wide more than tall. Tall has the same population in fewer cities, and will feel the change in needs % more acutely.
 
I don't understand how adding a needs increase per citizens on empire is supposed to hurt wide more than tall. Tall has the same population in fewer cities, and will feel the change in needs % more acutely.
Not sure I understand.

Needs % per city goes up (more pain for more cities)
Needs % per citizen goes down (it kicks in at a higher number)
 
This part here:
"Additionally, every eight ten Citizens in your Empire (excluding Citizens in Puppet Cities) increases them by 1%."

I don't understand what it's for. I understand you didn't put it there and are tweaking the numbers on it, but I don't know why it exists in the first place.
 
I assume it's a major factor in overall needs scaling into the mid and late game and rewards building of extra defensive buildings even in tall empires, but actually have no clue. Also maybe a puppets vs non-puppets thing.
 
We've gone full circle in population modifiers. Population = reduced needs% -> population = increased needs% -> population = less increased needs%. Can we just drop that?
 
We've gone full circle in population modifiers. Population = reduced needs% -> population = increased needs% -> population = less increased needs%. Can we just drop that?
Remove the population line entirely? Or just my adjustment. Both are fine withe me, just not sure which you mean.


My only concern is, doesn't the current population calculation result in 5-10% empire-wide increased total Needs (relative to removing this logic) in the later game? Wouldn't that just make the happiness system even less of a factor in the later stages of the game than it already is? Seems to me there's no harm in having this little nob here. But also seems like the harm from removing it would be minimal.
 
Last edited:
Remove modifier from empire population. Increase modifier from number of cities to compensate (as proposed, or use a higher number). Overall this should benefit tall more, and add cost (public works) to wide.
 
Remove modifier from empire population. Increase modifier from number of cities to compensate (as proposed, or use a higher number). Overall this should benefit tall more, and add cost (public works) to wide.
On paper, yes. But I think the reality is the biggest impact is avoid growth just becoming even more important.
 
Remove modifier from empire population. Increase modifier from number of cities to compensate (as proposed, or use a higher number). Overall this should benefit tall more, and add cost (public works) to wide.
Updated proposal to match.
 
This part here:
"Additionally, every eight ten Citizens in your Empire (excluding Citizens in Puppet Cities) increases them by 1%."

I don't understand what it's for. I understand you didn't put it there and are tweaking the numbers on it, but I don't know why it exists in the first place.
I was the one who added that. The intention was to keep Unhappiness an issue for Tall as well as Wide, without relying on a per-city pop modifier or a tech modifier (both of which have been removed at this point). 1 in 4 was too high and the AI couldn't handle it, and 1 in 8 from AI testing felt like about the right balance.

I'm neutral on any future arguments about whether Unhappiness should be a greater issue for Wide than Tall. That's just what Younger Me was thinking at the time. But of course, I can't be held responsible for the actions of Younger Me - that guy's an idiot!
 
Last edited:
That's good context. I'll leave the proposal as is for the time being and if there are objections or further input I'll amend then.
 
Last edited:
Status
Not open for further replies.
Back
Top Bottom