I will try and explain why I proposed the table proposal for reducing empire production/research point generation.
The curve of production/research points over time is exponential. The difference in quality of initial starts is exponentially magnified by the end of the game. In the endgame the difference in two empire's production is measured in orders of magnitude. There is a long mop up phase where the outcome is certain and uninteresting enough that most players just quit.
Changing the shape of the curve will improve the endgame experience more than reducing the boni.
Here are two arguments that the curve is exponential. The first is simply to measure the curve, in game. This doesn't give insight into why adjusting the boni will not fix the problem. The second derives a definition that shows that per population factors are in the exponent and reducing them will not create the desired outcome.
First, measuring the curve is simple. At game start all empires have 10 production/research points on turn 0 and can reach 100 points by turn 100, 1000 by turn 200 and 10000 by turn 300. This means that the measured curve is:
Code:
Prod_measured(t) = 10 * 10 ^(t/100)
, which is exponential.
How can we relate that to the game mechanics and the boni?
The production points on turn t can be written as:
Code:
Prod(t) = k_per_colony(t) * N_num_colony(t) + k_per_pop(t) * N_pop(t)
In the endgame the first term is much smaller than the second, so ignore the first term.
Code:
Prod(t) = k_per_pop(t) * N_pop(t)
Assume that all the change factors can be lumped into one factor, N_effective_pop(t), so that if k_per_pop(t) changes we instead increase the population. This avoids dealing in partial derivatives and simplifies this derivation.
Code:
Prod(t) = k_fixed * N_effective_pop(t)
How does N_effective_pop(t) change at time t?
Assume that an empire invests a fraction f_invest of production/research in increasing the types of planets colonized, increasing the max population, and increasing the bonus per pop. f_invest is controlled by the player by creating more colonies etc. Then
Code:
d( N_effective_pop(t) )/dt = f_invest * Prod(t)
, which implies that
Code:
t
/
N_effective_pop(t) = f_invest * | Prod(t)
/
0
Substituting for Prod(t) gives
Code:
t
/
N_effective_pop(t) = f_invest * | k_fixed * N_effective_pop(t) dt
/
0
which from the definition of the integral of exp(at) means
Code:
N_effective_pop(t) = exp (f_invest * k_fixed * t)
Therefore
Code:
Prod(t) = k_fixed * exp (f_invest * k_fixed * t)
,which agrees with the measured results.
So if we want to linearize/stabilize the growth of production/research points then we need to introduce a non-linearity large enough to overwhelm the exponential term.
In the final equation it is interesting that the player controlled behavior is in the exponent.
The equation suggests it is possible to lower the k_fixed enough so that under all play conditions the exponential term is never larger than 1. However, I suspect that would mean removing elements of play that are expected, like being able to colonize multiple planets at the same time.
This why I proposed my table solution to the growth quandary.