Population Scaling

As of now population change in Thrive is relatively simple. Upon dying or reproducing, a species population either rises or decreases by a set number. This number remains the same regardless of the current scale of a species population, and can lead to rather small populations across the world, especially for the player as their population is currently entirely tied to them as an individual. I have decided to play around with some calculation methods for scaling population, with mixed results. The one provided here should be suitable, nothing fancy and easy to tweak.

A= Amount of Population (To ensure that the equation relates to population.)
N= Number (To make it easier to reach a population of zero.)
M= Multiplier (To introduce a scaling change.)
(AxM)+N and (A/M)-N (Originally the equation was proposed as (A+N)xM, but IceDjuro pointed out that the current arrangement would be preferable.)
Example: (Ax1.2)+50
This equation introduces a gradual curve to population, with reproduction leading to a greater change than death. This can be tested by trying (50x1.2)+50, resulting in a population of 110, and then (110/1.2)-50. This leaves the hypothetical population at 42.
The basic addition or subtraction of a number is important to this equation, for example try this simple equation a few times: (50/1.5). As you might notice it is pretty difficult to reach zero population with a flat multiplier.

A small concern of mine is how decimals will be handled by the game’s programming. The equation will spit out some decimals every now and then, and naturally you cannot have 1.5 people. I am not experienced with programming and am unaware if having the game round these decimals to a whole number could produce complications or not.
Tell me what you think!

1 Like

You said death is calculated using the equation (A-N)/M. I proposed that for reproduction as well as for death, N would be on the outside to simply calculations as adding/subtracting before multiplication/division results in multiplying/dividing N as well. So to be consistent, I believe N should be used after M in all scenarios.

1 Like

That’s actually just an error when I typed that out on my part, sorry about that. Thank’s for catching that for me.

1 Like

For handling decimals as you’ve mentioned, yes, we can manipulate the rounding however we like, always rounding up, down, or using the standard method. I see 2 main ways we could approach this. We could round the number, as an integer or a multiple of 10 if you wish, and then store that as the actual population (N) and continue calculations using that. Or, we could instead use a precise number for all calculations and just use a rounded version to be displayed to the user.

1 Like

I don’t want any non-integer populations getting to the actual PatchMap.

I suppose these equations work for now. But these will need to be reworked once the auto-evo algorithm is ready and its result will also be applied to the player.

1 Like