• 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.

Stellaris Dev Diary #192 : Perfectly Balanced, As All Things Should Be...

Hello!

This week we’re going to look at some more changes we're planning, as well as a review of how some of the experiments mentioned in the last few dev diaries have evolved.

Thank you for the massive amount of feedback in those threads.

Reduction in Pops

Due to the effects on performance and a desire to reduce the micromanagement burden in the mid to late game, some of the things we’ve been deeply looking into are different ways of dramatically reducing the number of pops in the galaxy.

These experiments have generally revolved around modifying the growth (or assembly required) for pops as an empire’s population grows, with some variants trying a logistic pop growth (where growth follows an S-shaped curve as planets develop, based on a carrying capacity of a planet). These experiments have reduced the end date pop count to somewhere around one half of the old numbers with the expected performance improvements.

Organic pops will follow a curve where they begin at standard population growth, increase growth as the approach a midpoint between population and the planetary carrying capacity, then slow down to zero as they reach the top of the curve. Pop Assembly, on the other hand, is generally slow but consistent. The biggest change is that producing a new pop no longer costs a static amount of pop growth - it increases as the empire population does.

A significant reduction in pops has a cascade of major implications for the overall economy, production, and other gameplay effects. As such, these also require a pass on buildings, technologies, and even seemingly minor ripple effects like what the value should be for the trade value generated by pops.

There will be a lot of patch notes.

Most buildings have been standardized to now give 2 jobs per tier rather than the old 2/5/8 progression.

1605711331057.png

Just one example of many.

We’ve also changed a few buildings to have new or additional features, such as the Spawning Pool and Clone Vats, which have had their Pop Growth modifiers replaced with the new Organic Pop Assembly. This fills the same slot on the planet as Robotic Pop Assembly, so generally you’ll want to pick one or the other. (Clone Vats also picked up a food upkeep cost to represent simple materials to break down.)

1605711370874.png
1605711378849.png

Pops is Soylent Green!

A few other jobs got minor perks added to them, like the Medical Workers from Gene Clinics making it a little easier to live on less hospitable worlds.

1605711434441.png

Doesn't normally produce exotic gas, this one happens to be a lithoid.

And a few new techs have been added to help compensate for lost productivity. One tech line increases both the job production of a planet as well as job upkeep - those fewer pops are still capable of producing the work of more on a developed planet.

Ring Worlds

As part of the balance pass, Ring Worlds have been bumped up to 10 segments from 5, and the jobs per segment have been adjusted.

1605711480292.png
1605711496833.png
1605711511728.png
1605711521188.png
1605711530973.png

The Shattered Ring origin now possesses a warning that it may be a Challenging Origin for Lithoids due to a scarcity of minerals, and now also applies the Ring World Habitability Preference to your pops. We’re considering adding a similar warning for Hives selecting the origin, since the habitability preference change puts a serious crimp in their expansion.

1605711541929.png

Put a ring on it?

Their starting blockers have also been adjusted to give a more balanced spread of jobs.

Ecumenopoleis

Like the Ring Worlds, these start with all building slots open. As mentioned before, you can now use the Arcology Project decision on a planet that has a mix of City and Industrial Districts.

Note: Empire has all technologies but no traditions active.
1605711566787.png
1605711585016.png
1605711593479.png
1605711601512.png

The ecumenopolis has a unique distinction of being able to have both the Factory and Foundry building lines on the same planet.

Habitats

The changes to Habitat modules are much smaller in scope, but here’s the list of their districts.

1605711621995.png
1605711632042.png
1605711641350.png
1605711651091.png
1605711658034.png

Void Dwellers have gotten a bit of attention as well with some tradition swaps for those that had minimal or no beneficial effects for them.

1605711683433.png

1605711691774.png


Replacing Public Works Division:
1605711706121.png


And for Void Dwellers with the Adaptability tree:
1605711724002.png


Interstellar Franchising and Imperious Architecture now also function for Habitats.

Updates to Dev Diary 190

Some of these updates may not be new to people following the forum threads, but it's easy to miss things so I figured we should go over them.

Many people requested the ability to fully specialize their foundry and factory worlds. We've modified the Forge and Industrial World planet designations to shift one pop on each Industrial District to the appropriate job if possible.

1605711738324.png
1605711745816.png


We've also upgraded the Food Processing Center, Mineral Purification Hub, and Energy Nexus to provide an extra job to each of their associated resource production districts. (The Food Processing Center will also improve Hydroponics Farms.)

1605711771358.png
1605711779670.png
1605711789149.png


One of the suggestions made in the thread was to add a civic that increases unlocked Building Slots. Sounded like a great addition to Functional Architecture.

1605711797879.png

Functionality increased!

Updates to Dev Diary 191

We’ve explored some additional options regarding the resettlement system we outlined in Dev Diary 191, and after trying a few things, and have settled on some extensive modifications to the system.

All planets with free sapient unemployed pops that are not locked down by migration controls will have a small chance every month of moving one to another planet within their empire that has jobs that they are willing and able to work, housing, and habitability of 40% or higher. This chance is increased if there are multiple unemployed pops that meet the criteria.

The system now prefers to move higher strata pops first, so rulers and specialists will move before workers, and this system also functions for gestalt empires. It will not relocate non-sapient robots or slaves. It will generally prefer to move pops to the planets with the most free jobs.

After some experimentation we’ve chosen to keep the Transit Hubs as Starbase Buildings that provide a system wide buff to the chance of auto-resettlement occurring. (Rather than being essential to have it occur in the first place.)

1605711834820.png

Doubles the chance the pops choose to resettle themselves.

Greater Than Ourselves has been rewritten to also massively increase this chance when the edict is active, with a +200% bonus.

We initially had these pops considering destinations available through Migration Pacts as well, but decided against keeping that since it introduced a new Migration Controls micromanagement element that we didn’t find desirable.

We’ve also done a minor update to the Authority bonuses that seemed a little bit weak.

1605711874350.png

1605711882524.png


Democracies now have a bonus encouraging their pops to seek their dreams, and Dictatorships have a bit of an easier time holding things together when they’re a bit overstretched.

Closing Thoughts

One other little quality of life improvement that was just added is this filter on the colonization interface.

Colonisation QoL.gif


That’s probably long enough for today. We’re looking forward to your feedback on these as well.

Next week w̷e̵'̸l̸l̴ ̴b̸e̴t̵̮̄ǎ̸͈l̷̠̈k̴͔͂i̴̞͒n̷̪͊g̸̳͗ ̸͚̎a̵͉̐b̵̤̿ȯ̴̲ṵ̵̀t̸͇͂ ҈҂▒©╛⅜

1605711927580.png
 
  • 209Like
  • 111Love
  • 24
  • 13
  • 7
  • 2Haha
Reactions:
It feels like the devs are completely misunderstanding the point of manual resettlement, and what's the optimal way to do it. Which is hard to believe, so there is probably some utter motive that I'm missing.
You resettle primarily to:
  1. Get to 5 pops ASAP (ideally, literally the same day the colony is established, ignoring habitability, employment, housing, stability etc) and drop the Robot factory. Nothing else (with a single exception of the egg event) matters about the world in question, because this is how you snowball in Stellaris. The world can have all non-world-exploding negative modifiers that exist in the game, and people will still do it, so long the world is physically capable of starting producing robots. 10 influence per pop? Whatever. I'll just include these 30 influence into the cost of grabbing the system
This is going to be eliminated in the new building system, though, because as previewed you'll be able to build that Robot Factory in any colony regardless of population.
 
  • 5
Reactions:
Jumping in on the psionics and pop growth argument or pop productivity argument.

Bio ascendance and Synth ascendance have a choice between a clone vat or a robot assembler, either of which gives them a massive boost to pop growth.

If psionics are locked out of both, then it behooves to give them an 'equivalent' building. While the simplest would be to give them their own 'pop growth building', this is boring. Would be nice to do something different.

My suggestion would be to change the spiritualists Temple to have a 'base pop productivity' bonus. (fanatical work ethic, psionic cooperation, whatever you want to call it).

This way their productivity is tied to a building (which could be mutually exclusive with a clone vat or robot factory). So each Ascension path has a specific building linked to it (robot factory, clone vat, or Temple). The second thing is to have the psionic ascension techs also slightly increase planet carrying capacity (gaia field or psi-net or planetary harmony or whatever). This would have the subtle effect of boosting pop growth in mid- and late-game, and give psionics the potential to have more high population planets.

Psionics could thus lean towards a more tall play style as well.


EDIT: The general distinction is that both bio and synth Ascension are about quantity, while psionics would be about quality.
 
Last edited:
  • 1Like
Reactions:
Is it possible to prevent migration from a planet through a decision?

That is a very good question. What I want is a toggle to be able to tell the AI that the planet is exactly like I want it, leave it alone.

Part of the problem I have with the game now is that when I conquer a planet, the game moves pops from my populated worlds to the newly conquered ones, but it does so stupidly. Instead of taking citizens from the lower ranks of my current planets, it seems to do so randomly, often moving higher stratum pops to places that have no room for them, causing increased unemployment, and often with no way to fix it since the job from the planet they moved from is usually insta-filled by the lower rank pop it should have moved in the first place. So I make sure to set it so that I have to do it manually anyway, completely negating the auto-migration function (Land Appropriation Allowed Policy) currently in game.

IF we go to this new system, I want something so that pops are not moving from my planets that have all jobs filled. I honestly would much rather just move new pops to the conquered planet (in the example above) manually so that at least I can pick which ones move and don't cause myself more problems than I already have. In other words I'd rather micro-manage it myself than opt for an automatic system that works poorly.

Also, if the whole point of this change is less micro and better performance, it seems counter-productive to not have a way to set planets so that once you toggle the "don't change anything" switch for it, the AI leaves it alone. If the game just ignores what you want and moves your pops around anyway, IMO its probably worse than what we have now.

I'm not trying to be negative, its just that this currently is one of those systems that I find I can do better myself, even if it is a bit of micro-management on my part.
 
  • 1
Reactions:
Is it possible to prevent migration from a planet through a decision?
Currently, there are policies that can block forced resettlement (not migration I think).

However, under species rights, you can limit migration for some classes . Like slaves. But not sure you can do it for citizens too.

Planets have a decision to promote migration at the cost of consumer goods, but not sure you can stop it.
 
Well, the upcoming changes should at least make it so that land appropriation doesn't also destroy a bunch of your buildings by bringing your planets' populations below their building slot thresholds.
 
Currently, there are policies that can block forced resettlement (not migration I think).

However, under species rights, you can limit migration for some classes . Like slaves. But not sure you can do it for citizens too.

Planets have a decision to promote migration at the cost of consumer goods, but not sure you can stop it.

It is not possible to limit the founding species or its sub-species in vanilla. You can only make that possible through mods. It's not a hard modification to do, but be careful, there is always the possibility of unforeseen and unwanted consequences.
 
One thing that makes job computations slow is the need to compute all the job modifiers for each pop every time because they are stored at the job level - so currently you have no way of knowing that the pop you evaluated as the best fit for a miner job is still the best fit a month later. By moving all job modifiers & weights to traits (they almost all are afaik) that's when you can introduce those centralized data tables. If all subspecies have uniform job weights within them, and that only changes when I change the subspecies or their living standard, then i can just compute that array of weights once and only update it when I change either of those 2 things. This works because JOB DEFINITIONS DO NOT CHANGE ONCE THE GAME IS LOADED.

The other attack vector, reducing frequency, can slingshot on this. If job weights only change when traits or living standards change... then the job allocation will only change when 1) the number of pops on a planet changes or 2) the number of jobs changes. This means that you can flag the job allocation algorithm to only run when either of those things changes. It takes 15 - 30 months to grow a pop and about a year to build a building or district, and even accounting for the new unemployed pop migration, you can take your (now much simpler) job allocation function and employ it a fraction of the time you were before.

And all we need to do to achieve this is just remove a few edge cases.

Nothing you observe would change, only the way it's handled under the hood. Class distinction are not any harder to track than job distinctions. At the end of the day you are basically just taking an array of tuples of (species_id , num_of_pops) and tallying up who goes where by referencing a table of "this species_id has a weight of X for this job_id.". Hopefully I have gotten across why this is a LOT faster than taking a list of every single individual pop on the planet and then for each job on the planet computing their weighting.
This is smart, but habitability also affects output and planet modifiers can affect that, so you probably have to calculate it for each planet.
 
  • 1Like
Reactions:
This is smart, but habitability also affects output and planet modifiers can affect that, so you probably have to calculate it for each planet.
The job allocation system works by sorting on job weight modifiers. This is distinct from job output modifiers and they only loosely track each - things that boost a job output usually have a weight modifier too, but it's not a factor of 1.15, it'll be more like 1.5-2x weighting.

Here's a snippet of the weighting factors for a Technician, for example:
Code:
weight = {
        weight = @worker_job_weight
        modifier = {
            factor = 2
            OR = {
                has_trait = trait_robot_superconductive
                has_trait = trait_ingenious
                has_trait = trait_nuumismatic_administration
            }
        }
        modifier = {
            factor = 8
            is_enslaved = yes
            can_take_servant_job = no
            NOR = {
                has_trait = trait_syncretic_proles
                has_trait = trait_nuumismatic_administration
                has_trait = trait_robot_superconductive
                has_trait = trait_ingenious
            }
        }
        modifier = {
            factor = 2
            OR = {
                is_non_sapient_robot = yes
                is_shackled_robot = yes
            }
            can_take_servant_job = no
        }
        modifier = {
            factor = 0.25
            can_take_servant_job = yes
        }
        modifier = {
            factor = 1.5
            has_trait = trait_syncretic_proles
        }
        modifier = {
            factor = 4
            species = {
                has_species_flag = racket_species_flag
            }
        }
        modifier = {
            factor = 1.2
            has_trait = trait_very_strong
        }
        modifier = {
            factor = 1.1
            has_trait = trait_strong
        }
        modifier = {
            factor = 0.9
            has_trait = trait_weak
        }
        modifier = {
            factor = 1.3
            has_trait = trait_psionic
        }
        modifier = {
            factor = 1.2
            has_trait = trait_latent_psionic
        }
        modifier = {
            factor = 1.5
            has_trait = trait_presapient_earthbound
        }
        modifier = {
            factor = 1.1
            OR = {
                has_trait = trait_robust
                has_trait = trait_robot_efficient_processors
            }
        }
        modifier = {
            factor = 1.1
            has_trait = trait_nerve_stapled
        }
        modifier = {
            factor = 1.5
            has_trait = trait_void_dweller_1
        }
I am arguing for a change that doesn't require them to actually change how the algorithm allocates, just the source of the data fed into it.
 
  • 1Like
Reactions:
I am arguing for a change that doesn't require them to actually change how the algorithm allocates, just the source of the data fed into it.

Ah, gotcha. That makes sense.

It would be nice if it were based on their actual output, since the game has to calculate it for the pops who end up in the jobs anyway, and it's hard to get the weights system to produce produce good results in some cases. But it would have to be calculated not just per species but also per planet (or combination of climate and habitability modifiers, since stability and other planet bonuses will affect everyone equally). So your proposal would have performance advantages.
 
Since there are reworks in process I think I'd like to resubmit an idea I had way back in the day which is, simply:

Districts provide jobs, buildings modify districts.

Adding an industrial district as opposed to forges/factories is a good step in this direction, I think I'd like to see it go further. I think this would really simplify things and make them easier to understand.

Looking at something like the mod UI Overhaul Dynamic, we can see that there is a list view of districts allowing for any number you want. This would mean there's no problem having districts for everything - foundry districts, commercial districts, research districts etc.

Something else this change might/could bring about is getting rid of the idea of "housing" and "jobs" being separate from each other. If a pop fits onto the planet there's something for it to do; if it doesn't fit it won't do anything. Overcrowding and unemployment do basically the same things now anyway, they could be merged into a single thing. This would mean you could get rid of the idea of a "city" district as being something you need for foundries etc, and have it just be the "commercial districts" or "government district."

You can also cut down the needed building slots because you don't need a planet to have 5 foundry buildings, you can have 5 foundry districts and a Ministry of Production modifying them.

Not final numbers aren't final so there'd need to be various balance passes to make sure it all worked together, but I think overall it would be a cleaner and easier to manage system.
 
So, I went through most of the replies, and didn't see an answer. Did Habitats get the Energy/Mineral District removed, or are they unchanged and just not included? Overall, I like pretty much all of these changes, but if they removed Mineral/Energy districts, it would cripple the Voidborn playstyle.
 
So, I went through most of the replies, and didn't see an answer. Did Habitats get the Energy/Mineral District removed, or are they unchanged and just not included? Overall, I like pretty much all of these changes, but if they removed Mineral/Energy districts, it would cripple the Voidborn playstyle.

Probably just an oversight, since nothing has changed with them they didn't feel the need to include them. I wouldn't worry about it, no way they removed them.
 
So, I went through most of the replies, and didn't see an answer. Did Habitats get the Energy/Mineral District removed, or are they unchanged and just not included? Overall, I like pretty much all of these changes, but if they removed Mineral/Energy districts, it would cripple the Voidborn playstyle.
Probably just an oversight, since nothing has changed with them they didn't feel the need to include them. I wouldn't worry about it, no way they removed them.

Just weren't included as we used a science habitat to grab the screenshot. No changes to those districts (aside from the effects of Mineral Purification Hubs/Energy Nexuses)
 
  • 10
  • 2Like
Reactions:
Just weren't included as we used a science habitat to grab the screenshot. No changes to those districts (aside from the effects of Mineral Purification Hubs/Energy Nexuses)

i read that you wanted to make planets about 2 district bigger on average. Will you expand habitat size too ? They are already cramped, so if everything is bigger by comparaison it is even worse. Maybe make one or two tiers of the habitat expantion technology add 3 more districts slot instead or 2 ? Or maybe make voidborn add both building slots AND district slots ?
 
It will not relocate non-sapient robots or slaves.

Please don't do this. I think both should be able to move since it creates way too much micro if they don't. Sure they don't move themselves but the powers that be in the empire would move them. At least make it so we can mark a planet to allow them to move or be received.
 
  • 2
Reactions:
Democracies now have a bonus encouraging their pops to seek their dreams, and Dictatorships have a bit of an easier time holding things together when they’re a bit overstretched.
I feel it should be the other way around where dictatorships tell unemployed people move to another planet and work there while the democracies that have less control over their citizens would suffer less from the lack of control. Though the chance of moving to a planet with an open job should also be affected by living standards because if you get welfare benefits when you are unemployed you are simply not as motivated to accept any bad paying job as someone who gets nothing and could possibly starve without a job.
 
The new pop resettlement scheme does the exact same thing as Greater than Ourselves does currently, except worse and with several layers of complications. Why not just save the effort and make GtOS available to everyone? If performance is a concern, reduce GtOS's checking from once a day to once a week.
 
  • 5
  • 2
Reactions:
Man, this is one of the best DD diaries in a long, long time. A massive rebalance patch was long overdue in many areas (ascensions, economy, civics, government authorities, etc), growth, and immigration rework were pressing issues, as well as late-game lag. Killing these 3 birds in one single stone is awesome news! Now, some random musings of mine:

- World designations seem much more interesting and impactful than before
- Carrying capacity would be better if it would be tied to planet size & type rather than housing per se, in order to avoid meta-gaming unnatural tricks such as building tons of housing on a recently colonized planet. Not only that, but it would allow you to give more flavour and strategic relevance to different planet types (for example, hive worlds giving massive growth bonuses in order to compensate hiveminds for their lack of ecumenopolis, or Gaia worlds having a bit more carrying capacity than regular planets in order to bring a bit of flavour to their paradisiacal biosphere, etc)
- Also, why not tie carrying capacity to empire sprawl rather than pop numbers per se? It would make empire administration and overexpansion a much more pressing issue
- Having an organic assembly brings me joy. I have waited for this for so much long
- The new democracy bonus rocks and it is quite thematically fitting! Much better than before. Not convinced about dictatorship, tho.
- Glad to see that other non-standard empire types such as Voidborne are not neglected and forgotten anymore. Now, about hiveminds...
- There's still a long, long list of things to balanced and reworked: Psi ascension, leaders, internal politics, civics... but this is a really great start!