# Talk:Plan for customized experience-to-next-level

The Mad Cacti 10:25, 20 July 2011 (PDT): I don't think an exponential experience formula is necessarily bad, and some games have approximately exponential curves, for example Diablo 2 (where past level ~40 the XP requirement increases ~10% per level (not counting extra penalties as you near level 99). I've seen them in other MMORPGs too. It depends totally on how enemy experience changes throughout the game.

I suggest allowing both exponential and polynomial terms (say, cubic), and using a to-next-level formula. Capping the slope (XP = min{formula(LEVEL), formula(LEVEL-1)+CONSTANT}) is probably more useful than setting a hard cap like the current formula.

Note that if the experience per level is a degree d polynomial, then the total experience to a level is just a degree d+1 polynomial. However they are not completely equivalent once you take caps and rounding into account.

But at the end of the day there are far too many possibilities, and most of them should be left to scripting. So I vote for keeping things simple.

Bob the Hamster 16:53, 20 July 2011 (PDT): I discovered that I could get a pretty close approximation of the FF6 experience curve using 2.71 * level^3 and that I could get a pretty close approximation of FF5's experience curve using 0.101 * level^4

Then I went looking for a new curve for Wandering Hamster, and I struck upon 0.04*level^4 + 0.77*level^3 + -2*level^2 + 40*level + -8 which is nice because it very closely resembles the OHR's old formula for the low levels, then it resembles the FF6 curve through the middle levels, and ends a little bit steeper in the high levels.

Does a fourth degree polynomial seem like overkill? It doesn't really to me. I don't think it would be difficult to implement, and the only downside I see is that four floats would take up 20 bytes in gen which is more than we have left free in the GEN lump without digging into the old scattertable. (actually, 18 bytes, I guess, since the last term has no reason not to be an integer)

I know scripted formulas would be better, but we don't have floating point support yet, and I hate to make people myself spin their own redundant level-up and spells-learned notifications.

I believe an exponential formula isn't necessarily bad (as do some people above). Therefore, please add a "previous level" term so that the formula now looks like: min(A*x^4+B*x^3+C*x^2+D*x+E+F*prev,G*prev+H) This way exponential curves are possible and you can emulate the old way using the same formula (you could also remove the F*prev term if you don't need to combine exponentials with polynomials). This allows doing a lot of things without having to add even more options. (The initial value of prev also needs to be specified as part of the formula; other than that, this formula is probably sufficient. You do not even need a option to turn on/off the capped slope, since you can just enter sufficiently big numbers for G and H if you don't want one (since the level is already capped anyways, this works)). However, other than that it seems like a global bitset to disable all experience might help a bit. The old formula would be (if I haven't made a messy mistake): E=5; F=1.2; H=1000000; prev=20.8333; all others are zero. --Zzo38 (talk) 17:10, 21 December 2014 (PST)