Question #ee1c5

1 Answer
Sep 29, 2015

We started with a simple function, but then manually tweaked some values to get the right shaped curve. In that process, we ended up with big jumps in karma from level 10-11, and 14-15.

Explanation:

At the core, the function is:

# "points" = "base" * ("level"^"factor") #, or

# "level" = ("points"/"base") ^ (1 / "factor") #

where "base" and "factor" are constants of our choosing.

This function comes from a game development question/answer on StackExchange.

We started with that, then fiddled with some numbers to adjust the curve based on specific needs, e.g. the first level should be easy to unlock, the second level should be unlocked if someone thanks you for your contribution, etc.

Creating one system that worked for early users as well as frequent, long-term contributors, without having to go up to really high level numbers (as is common in role-playing games where this formula comes from), motivated us to insert a few breaks in the formula where the base inputs (e.g. "factor") are changed. This happens at 6000 karma and 15,000 karma, hence the jump that you noticed.

When the levels are plotted against the total karma required, the graph looks reasonable:

socratic.org

But, when levels are plotted against additional points required, it looks a bit funny:

socratic.org

So, yes, it's a little odd.

Now, the questions are (a) should we leave the system as is, with its quirks, or should we modify it, and (b) if we modify it, how will users be affected, and what do we do about the strange scenarios users find themselves in (e.g. suddenly jumping up two levels, etc.)