I have started working on the variant games: the environmentalist bias and the industrialist bias. I have already set up the data structures for these. For every coefficient used in the game, I provide an initial value, a minimum value, and a maximum value. There’s also a single datum specifying whether the environmentalist bias prefers the minimum value or the maximum value. The industrialist bias uses the opposite of what the environmentalist bias uses.
These two values, minimum and maximum, also provide the basis for setting up the sliders in the Geek scenario, where the player is free to mess with the coefficients. The minimum and maximum set the range covered by the slider.
This double usage turns out to create a conflict that has me in a bind just now. For the Geek scenario, I want minimax values that cover the entire plausible range of possibilities, so I want tiny minima and huge maxima. But when the environmentalist scenario uses those huge values, the system goes psychotic and we end up with trillions of people being poisoned by pollution and climate change getting the temperature up to 64,000ºF. Similarly, the industrialist scenario produces results that make Pollyanna look like a pessimist. So for the biased games, I need to narrow the range of possibilities, but for the Geek game, I need to widen the range.
I think that the solution is to scale the range somehow. Suppose that I leave the values where they are now: very wide ranges. But for the biased scenarios, I scale down the extrema by some factor related to the relationship between the three values (initial, minimum, and maximum). Since the relationships between these three values are not the same across all coefficients, I’ll have to use geometric rather than arithmetic blending. I am tempted to use this algorithm:
new extremum = ([SQRT((old extremum - initial value)/initial value)]*initial value)+initial value
I’ll try it out and see how well it works.