abraker wrote:
Slapping 0.75x or any constant value even for one skill is a bandaid solution that will work for maybe a year. The skill curve for agility shoots up like a damn cliff as you approach top 1000, and gets exponentially steeper as the years go by.
I've been looking to making the skills linear for a few weeks now, but it's not as easy as I thought. Full Tablet, maybe you can give a hand?
One way is looking at the Rank of each raw value instead of the raw value itself, and redefine the scale based on that. You could, for example, define that the top player has an overall value of 1000, a player in the median has an overall value of 500, and the worst player has an overall value of 0. (Basically, the overall value is just the percentile of the raw stat value of the player multiplied by 10). The problem with this approach is that it makes the values static over time.
One solution to the problem with the previous approach is storing the distribution of raw_values/scaled_values at some point of time, and then applying that same scaling to scores in the future. For example, if someone has a raw value of 600 in the 90th percentile (900 scaled value) at the start of the year 2021, and 2 years later someone has a raw value of 600 which is in the 80th percentile, they would still have a scaled value of 900.
When the values have to be interpolated (for raw values in the range of the population at the time when the scale was set), this is easy. But for extrapolating (for example, assigning a value to someone who has 2000 raw speed when the best player at the start of 2021 had only 1900), we have to have a model of the growth in the extremes of the distribution.
Now, the previous solution might become increasingly unwieldy as the algorithm changes, since new changes should try to keep the distribution of raw scores constant.
Now, with the previous solution, there is still the matter of balancing the individual skill values for each score (and that matters, because of the way the overall value of the skill is calculated). It might be better rescale the skill values of each play instead of the overall skill values. In that case, a way could be using the top 10 plays for each skill from each player, ranking all the plays, and then scaling the same way I suggested with the overall skill values.