This is a massive and quite likely controversial suggestion.
After examination of a 2.8 save game in a text editor I finally realized the scale of pop processing issues.
I've read a lot of suggestions and first conclusions I'd like to draw is the following:
The problem from a performance point of view is sheer volume of pops combined with the number of job checks. These are at the highest at the end of the game after growth.
The problem between the start of the game until the end of the game is how to have a system which has internal logic, reduces micro management and is flexible.
Performance
Limiting the number of pops is fairly easy. The absolute limit on pop numbers should be:
(number of district slots in the galaxy * absolute maximum housing usage for the distrcit with the most housing) + (maximum number of building slots in the galaxy * the amount of housing provided by the building with the greatest housing factor).
So pick the amount of pops you want in the galaxy and work backwards.
So assuming 1000 stars, 10 worlds per star, 20% being habitable gives you let's say 2000 planets.
With 20 district slots on average, city districts give you up to 8 housing that's 160 housing per planet.
We then have twelve buillding slots which you can use for Utopian communal housing (10 housing) gives another 120 housing.
In this hypothetical setup we have 2000 planets with enough room for 280 pops each. That's 5.6 million pops!
I'm not saying that this is the state of the game, but it's easy enough to build a spreadsheet and crank the numbers down to curtail the max number of pops in the game. Do the Maths!
Managing Growth
Step One: Bin every single concept about pop growth that has so far been programmed into Stellaris.
Step Two: Take a moment to acknowledge that everyone who has worked on pop growth at Paradox has got it wrong, this is a collective failure. It is not down to an individual. This failure is because it is a fantastically difficult problem to solve. But that's OK because failure and mistakes are not a waste of time, they are learning opportunities.
Pop Growth happens on planets, yet it affects the economy of an empire and the number of pops in the galaxy hit game performance. There are a lot of moving parts and targets. This is my attempt to fix it.
Firstly empire based throttling of pop growth defies internal logic. If there are 2000 pops on Gregobor III it shouldn't slow the pop growth on another planet.
Secondly linear pop growth defies internal logic. Pop growth is naturally exponential. If a population doubles every twenty years, it quadruples every forty years because the second twenty years starts with twice as much pops.
My Suggested Solution
For the purpose of these number I've assumed the following:
A growth rate of 100% being that one pop is grown for every pop on a planet every decade.
A growth rate of -100% being that one pop dies for every pop on a planet every decade.
So 2200 start: 30 pops
2210: 60 pops
2220: 120 pops
2230: 240 pops
2240: 480 pops
Obviously this is for one world without looking at rapid breeders traits etc. This is unsustainable and should be unsustainable in the game, pop growth should not be an uninhibited good thing!
Pop growth and decline should be the result of several push/pull factors.
Medical Care jobs and Technology
Immigration < Let's leave this one aside, but it's here for completeness
Push (pro-decline) factors which come to mind include:
Habitability ('cos there's no place like homeworld)
Squalor (insufficient housing)
Crime (ooooh... look a potential down side to crime)
Disease outbreaks (Could be implemented as a timed modifier with a chance to occur based on squalor level)
Food Shortages
So lets look at these one by one,
Habitability: Rework the Habitability calculations, so that if a planet is 70% habitable and you have +20% in bonuses it become 84% (i.e increase the base 70% by 20%, not add 20% to 70%) apply 100% - the habitability factor as a pop growth penalty (i.e -16% in the case of 84% habitability)
Medical Care: Nice and simple, these could grant +x% pop growth, just as they do now.
Squalor: For every un-housed pop you could inflict -4% pop growth. Make it difficult to house all pops. Stop framing housing shortage as something to eradicate, but something you want to minimise.
Crime: For every point of crime -0.5% pop growth. Also rescale crime factors to suit. Crime is a bad thing. Make it impossible to eliminate, add civics for those who want to embrace it.
Disease Outbreaks: Write sci-fi diseases. Give them varying strengths and chances for outbreaks. That'll stop the late game slow down.
Food Shortages: If the empire has a food deficit and the planet doesn't produce a surplus give it -10% growth consecutively for every month. After 6 months it's at -60%.
Using this model pushing into positive growth on planets with squalor and crime is harder and using uninhabitable worlds as pop incubators fail.
Immigration
I've dealt with immigration separately because rather than using immigration pressure as a growth/decline mechanic. Immigration should be reflected in whole pops moving from unpleasant low growth worlds to high growth worlds.
Colony Ships
This is a simple tweak. Colony Ships actually remove pops from populated worlds and deposit them on the new world.
Last Element: Simultaneous species growth
This is a mock up of how I would display this new system.
The current angle or width of each pie slice is the same as it is now, the percentage of pops of a given species on the planet.
The Orange circle on the inside represents pop decline. Declining species slowly have their pie wedge shrink towards the orange line. When their wedge reaches the orange line, a pop dies and the wedge resets to the green "normal" line.
The outer edge represents pop growth. When a species slice grows to the point that it reaches the outer edge a new pop of that species is spawned.
Implications for Wide/Tall
Lets assume we're going to try play tall. It's certainly doable and we're rewarded with rapid pop growth due to the concentrated population, which is a good thing... but we're racing towards squalor, disease and crime. That's going to need tech and investment in infrastructure to overcome.
On the other hand we have wide where we have lots of space, we don't need the same tech or infrastructure to cope with our over population, but we have slower growth and less manpower.
Going wide from tall is easily done, spread the colony ships wide and far and pops will get out of the packed crime ridden city planets as quick as the jobs open up. But if you're tall and you allow migration treaties with wide empires... you may find pops on worlds you don't control.
After examination of a 2.8 save game in a text editor I finally realized the scale of pop processing issues.
I've read a lot of suggestions and first conclusions I'd like to draw is the following:
The problem from a performance point of view is sheer volume of pops combined with the number of job checks. These are at the highest at the end of the game after growth.
The problem between the start of the game until the end of the game is how to have a system which has internal logic, reduces micro management and is flexible.
Performance
Limiting the number of pops is fairly easy. The absolute limit on pop numbers should be:
(number of district slots in the galaxy * absolute maximum housing usage for the distrcit with the most housing) + (maximum number of building slots in the galaxy * the amount of housing provided by the building with the greatest housing factor).
So pick the amount of pops you want in the galaxy and work backwards.
So assuming 1000 stars, 10 worlds per star, 20% being habitable gives you let's say 2000 planets.
With 20 district slots on average, city districts give you up to 8 housing that's 160 housing per planet.
We then have twelve buillding slots which you can use for Utopian communal housing (10 housing) gives another 120 housing.
In this hypothetical setup we have 2000 planets with enough room for 280 pops each. That's 5.6 million pops!
I'm not saying that this is the state of the game, but it's easy enough to build a spreadsheet and crank the numbers down to curtail the max number of pops in the game. Do the Maths!
Managing Growth
Step One: Bin every single concept about pop growth that has so far been programmed into Stellaris.
Step Two: Take a moment to acknowledge that everyone who has worked on pop growth at Paradox has got it wrong, this is a collective failure. It is not down to an individual. This failure is because it is a fantastically difficult problem to solve. But that's OK because failure and mistakes are not a waste of time, they are learning opportunities.
Pop Growth happens on planets, yet it affects the economy of an empire and the number of pops in the galaxy hit game performance. There are a lot of moving parts and targets. This is my attempt to fix it.
Firstly empire based throttling of pop growth defies internal logic. If there are 2000 pops on Gregobor III it shouldn't slow the pop growth on another planet.
Secondly linear pop growth defies internal logic. Pop growth is naturally exponential. If a population doubles every twenty years, it quadruples every forty years because the second twenty years starts with twice as much pops.
My Suggested Solution
For the purpose of these number I've assumed the following:
A growth rate of 100% being that one pop is grown for every pop on a planet every decade.
A growth rate of -100% being that one pop dies for every pop on a planet every decade.
So 2200 start: 30 pops
2210: 60 pops
2220: 120 pops
2230: 240 pops
2240: 480 pops
Obviously this is for one world without looking at rapid breeders traits etc. This is unsustainable and should be unsustainable in the game, pop growth should not be an uninhibited good thing!
Pop growth and decline should be the result of several push/pull factors.
Medical Care jobs and Technology
Immigration < Let's leave this one aside, but it's here for completeness
Push (pro-decline) factors which come to mind include:
Habitability ('cos there's no place like homeworld)
Squalor (insufficient housing)
Crime (ooooh... look a potential down side to crime)
Disease outbreaks (Could be implemented as a timed modifier with a chance to occur based on squalor level)
Food Shortages
So lets look at these one by one,
Habitability: Rework the Habitability calculations, so that if a planet is 70% habitable and you have +20% in bonuses it become 84% (i.e increase the base 70% by 20%, not add 20% to 70%) apply 100% - the habitability factor as a pop growth penalty (i.e -16% in the case of 84% habitability)
Medical Care: Nice and simple, these could grant +x% pop growth, just as they do now.
Squalor: For every un-housed pop you could inflict -4% pop growth. Make it difficult to house all pops. Stop framing housing shortage as something to eradicate, but something you want to minimise.
Crime: For every point of crime -0.5% pop growth. Also rescale crime factors to suit. Crime is a bad thing. Make it impossible to eliminate, add civics for those who want to embrace it.
Disease Outbreaks: Write sci-fi diseases. Give them varying strengths and chances for outbreaks. That'll stop the late game slow down.
Food Shortages: If the empire has a food deficit and the planet doesn't produce a surplus give it -10% growth consecutively for every month. After 6 months it's at -60%.
Using this model pushing into positive growth on planets with squalor and crime is harder and using uninhabitable worlds as pop incubators fail.
Immigration
I've dealt with immigration separately because rather than using immigration pressure as a growth/decline mechanic. Immigration should be reflected in whole pops moving from unpleasant low growth worlds to high growth worlds.
Colony Ships
This is a simple tweak. Colony Ships actually remove pops from populated worlds and deposit them on the new world.
Last Element: Simultaneous species growth
This is a mock up of how I would display this new system.
The current angle or width of each pie slice is the same as it is now, the percentage of pops of a given species on the planet.
The Orange circle on the inside represents pop decline. Declining species slowly have their pie wedge shrink towards the orange line. When their wedge reaches the orange line, a pop dies and the wedge resets to the green "normal" line.
The outer edge represents pop growth. When a species slice grows to the point that it reaches the outer edge a new pop of that species is spawned.
Implications for Wide/Tall
Lets assume we're going to try play tall. It's certainly doable and we're rewarded with rapid pop growth due to the concentrated population, which is a good thing... but we're racing towards squalor, disease and crime. That's going to need tech and investment in infrastructure to overcome.
On the other hand we have wide where we have lots of space, we don't need the same tech or infrastructure to cope with our over population, but we have slower growth and less manpower.
Going wide from tall is easily done, spread the colony ships wide and far and pops will get out of the packed crime ridden city planets as quick as the jobs open up. But if you're tall and you allow migration treaties with wide empires... you may find pops on worlds you don't control.
A FINAL POINT ON NUMBERS: THEY ARE ILLUSTRATIVE ONLY THIS NEEDS LOTS AND LOTS OF PLAYTESTING AND NUMBER WORK TO GET RIGHT.
AND THEN MORE PLAYTESTING
THEN A PUBLIC BETA!
AND THEN MORE PLAYTESTING
THEN A PUBLIC BETA!
- 2
- 2
- 1