• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

DrNukeLear

Colonel
86 Badges
Jan 27, 2019
963
1.182
  • Imperator: Rome
  • Hearts of Iron IV: La Resistance
  • Stellaris: Nemesis
  • Imperator: Rome - Magna Graecia
  • Crusader Kings III
  • Battle for Bosporus
  • Stellaris: Ancient Relics
  • Stellaris: Necroids
  • Stellaris: Federations
  • Europa Universalis IV
  • Hearts of Iron IV: Expansion Pass
  • BATTLETECH: Flashpoint
  • Shadowrun: Hong Kong
  • BATTLETECH
  • Surviving Mars: Digital Deluxe Edition
  • Stellaris: Apocalypse
  • Stellaris: Humanoids Species Pack
  • Hearts of Iron IV: Expansion Pass
  • Crusader Kings II: Jade Dragon
  • Cities: Skylines - Green Cities
  • Hearts of Iron IV: Death or Dishonor
  • Surviving Mars
  • Cities: Skylines - Parklife
  • Cities: Skylines - Mass Transit
  • Crusader Kings II: Monks and Mystics
  • Hearts of Iron IV: Together for Victory
  • Cities: Skylines - Natural Disasters
  • Stellaris: Leviathans Story Pack
  • Stellaris: Megacorp
  • Crusader Kings II: Reapers Due
  • BATTLETECH - Digital Deluxe Edition
  • Cities: Skylines - Parklife Pre-Order
  • Stellaris: Digital Anniversary Edition
  • Stellaris: Distant Stars
  • Shadowrun Returns
  • Shadowrun: Dragonfall
  • Surviving Mars: First Colony Edition
  • Cities: Skylines Industries
  • Crusader Kings II: Holy Fury
  • Prison Architect
  • Surviving Mars: First Colony Edition
  • Cities: Skylines - Campus
  • Stellaris: Lithoids
  • BATTLETECH: Heavy Metal
  • Prison Architect: Psych Ward
  • Island Bound
  • Teleglitch: Die More Edition
  • Stellaris: Galaxy Edition
  • Stellaris: Galaxy Edition
  • Victoria 2
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

Demographics.png

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!
 
  • 2Love
  • 2
  • 1Like
Reactions:
That is definately a solid direction. I don't know how feasible it would be to implement and code. But it makes a ton of sense in alot of ways, particularly at expressing the internal push/pull factors for interna migration. Aswell as addressing natural expansion. I also don't think we need such huge numbers of pops in total.

I do technically like the idea of the concentric circles of life and death for specific racial pops too, my largest concern there is that we are talking about alot of computations per planet to simply determine pop growth/shrinkage. I would worry it's introducing needless complexity, that said, I can think of no better alternative and I really do like the direction your going with this.
 
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).
Did you account for every possible Habitat and Ringworld in that math?
Because it is easy to forget those. And their population capacity let's habitable planets look like change.

The System of just increasing the cost/existing pop has two advantages:
1. It covers pop assembly as well, finally dragging Robot assembly into being balanced with natural Growth
2. It gives the player a reason to not just "colonize everything"
Less planets get/stay colonized.
Less Habitats and Ringworlds get build
Simply because the chance to actually have the population to run all of that is low to non-existant.
 
  • 1
Reactions:
Hi ! That's an interesting idea ! Why not implement a life expectancy for every pops to add a little more complexity/challenge (in addition to the OP ideas) ?

Midgame will be more interesting, we will have to fight against the end of the first demographic transition (baby boomers from the begining of the game will die at the same time). It should liberate jobs & houses, boosting growth, immigration, etc. until next cycle. Some empires could be more resilient than others (like in real life) ! Maybe add a mechanism to educate pops when they promote to specialists or rulers class. Let's say they are less efficient at doing a job when they just started to do it. There is plenty of way to simulate real life demographic behavior, hope devs will find an interesting way.
 
Last edited:
  • 1
Reactions:
That is definately a solid direction. I don't know how feasible it would be to implement and code. But it makes a ton of sense in alot of ways, particularly at expressing the internal push/pull factors for interna migration. Aswell as addressing natural expansion. I also don't think we need such huge numbers of pops in total.
I don't think we need those numbers either, but looking at the potential population scale of a galaxy is something that needs to be examined in this in order to gauge the workload the system needs to be able to handle.
I do technically like the idea of the concentric circles of life and death for specific racial pops too, my largest concern there is that we are talking about alot of computations per planet to simply determine pop growth/shrinkage. I would worry it's introducing needless complexity, that said, I can think of no better alternative and I really do like the direction your going with this.
Since the computations are per species per planet it could be a problem. The are two
easy ways of shrinking the CPU time spent on the calculations is:

a) Cut the number of species/subspecies: This is something that stellaris needs anyway.
b) Calculate pop growth every other month (it shouldn't be undergoing rapid change anyway). Do half the galaxy on even numbered months and half on odd numbered months.
Hi ! That's an interesting idea ! Why not implement a life expectancy for every pops to add a little more complexity/challenge (in addition to the OP ideas) ?
The life expectancy could simply be a negative or positive modifier from Enduring, Necrophage and other leader lifespan affecting traits. A pop is a grouping of individual entities (or gestalt facets) defined by ethics (if not gestalt), species and job role (which is really weird if you stop and think about it like that). Tracking when an individual pop was born and is expected to die doesn't really add much.
Midgame will be more interesting, we will have to fight against the end of the first demographic transition (baby boomers from the begining of the game will die at the same time). It should liberate jobs & houses, boosting growth, immigration, etc. until next cycle. Some empires could be more resilient than others (like in real life) !
Interesting
Maybe add a mechanism to educate pops when they promote to specialists or rulers class.
I'm all for education/re-education policies!
Let's say they are less efficient at doing a job when they just started to do it. There is plenty of way to simulate real life demographic behavior, hope devs will find an interesting way.
Let's get a working pop growth system first!
Did you account for every possible Habitat and Ringworld in that math?
Because it is easy to forget those. And their population capacity let's habitable planets look like change.
It's so easy to forget that I did forget to account for them. Accounting for every possible habitat and ringworld is difficult, but generally I'd assume that a fraction of the possible artificial planet construction actually happens, as a guess increase the galactic potential population by 10-20%? Unless it's an all pacifist line up and there are sufficient alloys from a lack of warfare it shouldn't be a big deal next to the 5.6 million in the example.
The System of just increasing the cost/existing pop has two advantages:
Yes, the current system does have those advantages.
1. It covers pop assembly as well, finally dragging Robot assembly into being balanced with natural Growth
I've actually completely omitted pop assembly out of the OP because in my opinion they shouldn't be balanced in the same manner. They should be different but of rough equivalency overall.

My two cents is that Pop assembly using dedicated facilities (spawning pools/cloning vats/robot assembly factories) should be faster than normal biological reproduction with a small pop base, a factory can churn out robots day and night at a given speed for decades assuming it's manned. Population growth under my proposal gets faster as more naturally growing pops are added until that growth rate is impinged by growing negative modifiers. If you start building robots there are less room for the biologicals and housing becomes an issue causing squalor, if you don't turn the robot production off then you'll eventually push the organics into decline and then extinction. This decline could actually be a trigger for a cool "Organic Uprising" event when over production of robots means they need to be taken apart and the synthetics say no.
2. It gives the player a reason to not just "colonize everything"
Colonising everything is a bad idea under my proposal.

Right now under 3.0 I'm in a doomsday-only multiplayer game and my non-adaptive inwards perfectionist are stuck on two worlds with 10% habitability. For some reason they are thriving. Under my proposal that low habitability would actually cause the population to decline to extinction. Admittedly xenophiles would just bus in the right pops through migration treaties, but they've got to come from somewhere and people may not like to enter migration treaties which empty their homeworld. Additionally under my proposals colonizing everywhere would spread the population thin and hurt planetary specialization.
 
  • 1
  • 1
Reactions:
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

View attachment 706275
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!
I'm not sold on the pure exponential pop growth, but the rest of the suggestion looks quite good, and could work with an empire level pop growth system fairly easily (instead of 10% growth per pop, you could have something like 20% base + 5% per pop to avoid the exponential issue getting super rapid as you get later into the game). The main issue is that I'm pretty sure this would reach the same levels of overpopulation late game that kills performance, likely even faster since all you'd need in order to get more and more pops is build habitats, ring worlds, or Ecu's to provide more space.
 
  • 1
  • 1Like
Reactions:
I'm not sold on the pure exponential pop growth, but the rest of the suggestion looks quite good, and could work with an empire level pop growth system fairly easily (instead of 10% growth per pop, you could have something like 20% base + 5% per pop to avoid the exponential issue getting super rapid as you get later into the game). The main issue is that I'm pretty sure this would reach the same levels of overpopulation late game that kills performance, likely even faster since all you'd need in order to get more and more pops is build habitats, ring worlds, or Ecu's to provide more space.
I envisage the throttle on the exponential pop growth would be strong situational modifiers due to overcrowding etc.
Admittedly the extra space from habitats and ringworlds are an issue.
There might need to be additional tweaks and changes alongside these changes to mitigate pop numbers, but it's somewhere to start from.