Population growth is central to the development of colonies. More citizens means more food, more research, more production, and more taxpayer credits to maintain the colony's infrastructures. Having a high population growth is therefore especially important in new fledgling colonies.
Population growth in Master of Orion: Conquer the Stars is dependent on food, except for lithovore races such as the Silicoids. Food surplus is turned into "life points", and once the colony accumulates enough life points, then the points are spent and a new population unit appears.
The formula for how many life points acquiring a new citizen would cost for a colony with n citizens is this:
- minimum: the minimum life point requirement. This depends on planet size, but by default, all planet sizes have this value set to 75. It is the minRequiredFood property of items in the Backend.Galaxy.PlanetSizeType collection.
- planet food requirement. This again depends on planet size, but there are two possible values here, depending on whether the planet is already half-filled or not. The relevant values in the PlanetSizeType collection are maxRequiredFoodStart and maxRequiredFoodEnd; for a planet populated by less than half its maximum population the value used is maxRequiredFoodStart, otherwise it's maxRequiredFoodEnd. In either case, minRequiredFood is subtracted.
- colony growth factor. This is a global value, set to 2 in the game, but modifiable by changing the global INCREMENTAL_GROWTH_FACTOR of Backend.Settlements.Colony. Since it is used as an exponent, using a lower value (such as 1.8 for example) would give faster growth.
- growth speed. This is equal to 1 + a value that depends on the chosen game settings. It can be set directly in advanced settings, or implied by game pace otherwise. Very slow is 0.5, slow is 0.25, normal is 0, fast is -0.25 and very fast -0.5; meaning that the final growth speed will be 1.5 for a very slow game or 0.75 for a fast game. See the Backend.Core.GameSpeed and Backend.Core.PopulationGrowthSpeed collections.
- growth multiplier. This value is inverse of the sum of one plus various population growth multipliers that can be given by colony structures (such as the cloning center), tech achievements (such as microbiotics), leaders (such as Katja), random events (the population boom event), racial traits, and potentially resources (though none exist in the game that give a population growth bonus). However, the global value MIN_POPULATION_GROWTH_MULTIPLIER in Backend.Settlements.Colony, set to 0.2, is used as a minimum, therefore the value cannot go lower than that.
Let's suppose a Large Desert planet occupied by a Sakkra colony of 8. They have the universal antidote tech achievement and have built a cloning center on this colony, and Katja is the Commissioner (level 2 leader) of the colony's system. The game pace is set to have a slow population growth. What do we get?
From the planet size:
- minRequiredFood: 75
- maxRequiredFoodStart: 150
- maxRequiredFoodEnd: 300
- maxTiles: 20
From the planet biome:
- viableFarmingFactor: 0.4
- viableIndustryFactor: 0.6
- INCREMENTAL_GROWTH_FACTOR: 2
- growth speed: for a slow population growth, the modifier is 0.25, so this value is 1.25.
Miscellaneous: A planet's maximum population is equal to half its maxTiles value multiplier by its viableFarmingFactor, and half its maxTiles value multiplied by its viableIndustryFactor, though this can be increased with advanced city planning tech achievement. So in this case, we have a maxTiles of 20, giving 10×0.4 + 10×0.6 = 10. Since there are already 8 units of citizens on the planet, it is more than 50% filled, therefore, we use the "end" value for planet food requirement: 300 - 75 = 225.
Now we need the growth multiplier as well. Sakkra traits give them a 50% bonus, Katja is a level 2 leader and so adds another 20%, the universal antidote adds another 25%, and so does the cloning center. Total: 120% bonus, adding 1.2 to the growth denominator. This means that the growth multiplier is 1/2.2, or 0.45. (Note: in this example, the overlined digits represent the repeating decimal part of a fraction. 0.45 is 0.454545454545454545... repeated into infinity.)
We now have all the values needed:
And so accumulating a bit over 586 food will result in a ninth Sakkra citizen in the colony.
For another example, let's look at when this colony was just founded. It had a single citizen and did not have a cloning center yet, and Katja was not appointed yet. Several values change:
- Since the planet isn't already half-filled, the "start" value is used (150-75 instead of 300-75).
- The growth multiplier without the leader and the cloning center is reduced by 45 percentile points, giving a growth multiplier of 0.571428.
So accumulating 196 food units was sufficient for the colony's first growth.
For Version 55.1.1 used another formula (95% accuracy):
Population Growth = ( minimum + ( (2n - max population) / (max population - 2) ) ^ colony growth factor × planet food requirement ) × growth speed × growth multiplier
Lithovore population do not grow from food. Instead, it depends simply on the planet's mineral richness. The relevant value is lithovoreLifePointProduction, defined in the Backend.Galaxy.PlanetMineralRichnessType collection.
|Mineral Richness||Life Point Production|
The formula given above work for lithovores as well, however instead of needing to accumulate food surplus to generate life points, life points are generated automatically from the planet's mineral wealth. There are no ways to increase this life point production, contrarily to food which can be boosted by reassigning workers or scientists to farming duty, and by building a number of colony structures that provide food. However, they still benefit from anything that improves their growth modifier.
If the colony features several different species, this has a few consequences on population growth.
- The food surplus is reduced if there are lithovores in the colony. This value, called turnFoodDelta in the code, corresponds to how much food is produced minus how much is consumed by the population. The proportion of this food surplus that is added to the accumulated life points is proportioned to the non-lithovore population of the colony. In other words, if everyone eats food, then 100% of the food surplus is turned into life points, but if there are, for example, one Silicoid for four other colonists, then only 80% of the food surplus is turned into life points.
- Inversely, lithovore life point production is also proportioned. An ultra-rich world with six lithovores and one other colonist will only produce 3 life points from the lithovore side.
- Once the required amount of life points is accumulated, the new population unit that appears is chosen randomly from the races present in the population. One of the existing citizens will be chosen, and the new citizen will be of the same race. There is apparently a bug where the citizen's race's population growth factor is applied negatively, meaning that for example a Sakkra, with the racial 50% population growth bonus, has only half the chance of being selected as another race would get, while a race with a population growth penalty has an increased chance of being chosen.
- Note that the growth multiplier is always that of the empire's race. So a Sakkra colony captured by another race will no longer get its 50% growth bonus, and inversely, a for example Silicoid colony captured by a Sakkra empire would start getting a 50% growth bonus.
The use of "(population - 4) squared" as a factor in the equation means that it is when a colony has a population of exactly 4 that it grows the fastest, as then it only requires the minimum required food to grow another citizen. To maximize population growth across the empire, "nursery colonies" could be created with a population of exactly 4, building a new civil transport each time they grow so as to populate another, slower-growing planet.