# slow/fast/slow experience system

I am looking for an experience ladder that 'starts' off relatively quickly like a bit of geometric series, then quickly grows like an exponential curve, and then a slow exponetial curve for later levels, in the range of levels 1-5000.

How would I do this mathematically? I am assuming I might just have three sets of equations, but then what is the correct math for getting the level (based on XP), and vice-versa, XP based on level?

I.e., I am thinking something like:

lvl 1 - 10 exp lvl 2 - 12 exp lvl 3 - 15 exp lvl 4 - 18 exp lvl 5 - 22 exp (not quite fibacconi) lvl 6 - 26 exp lvl 7 - 32 exp ... then maybe around level 150 or so it starts growing quickly, like lvl 150 -1000 exp lvl 151 - 1200 exp ... lvl 3000 - 30000 exp lvl 3100 - 40000 exp lvl 4000 - 75000 exp lvl 5000 - 100000 exp

If it's been done, a link would be great (since I am not exactly sure what I am looking for, not quite sure how to find it). Or if it is easy for you to just write the math, please do that too, thanks for your help!

If you use an exponential function in the form:

XPTotal = 2 ^ (Level * some_function(Level))


Then you can play around with some_function to get different kinds of growth.

Like this makes it so you double every five levels:

some_function() = 1/5


I think what you could use here is something like this, where X, Y, and Z are constants you mess with:

some_function(Level) = X * cos(Y+Level/Z)


Then probably pass the XPTotal through some creative rounding function that gives you XP values like "225" instead of "223.1567017350735012".

Build a spline and give it as many control points as you think it'll need, my guess is only three unless you want multiple speed-up and slow-down phases. The Y axis is how much XP you're gaining, so the steeper the slope the longer it takes to move across the X axis. And the X axis will represent your 1..5000 "levels." In this you can quickly change the leveling experience just by tweaking the control points of the spline.