blog

Aritcle

digg 0

Experience Formula

Category: 9Dragons Game: 9Dragons(US) Posted on Feb 21, 2008 10:19 pm


margeman2k3:
okay, over the past 36 hours, ive tried to find the function that describes how much experience you need per level.

after leveling a new character on nirvana to level 7 or so, i think i might have it (or at least be reasonably close)

the function that describes the experience needed to level is:


f(x) = 0.05*x^4 + 1.2*x^3+8*x^2+25*x+80 where x >= 1


What does this mean?

when you are on level x, it will take approximately f(x) xp to gain a level.

How did I do it?
I started a character on the Nirvana server and went to the wutang base.
I killed a fox and earned 20%, and did a quest that earned 1xp, which was 2%. this gives the fox an xp value of 10.
After gaining a level, I moved on to scamps and rascals. I used the fox's 10xp and % earned to determine how much xp i needed per level,
and i used the % earned to find the xp value of the scamps and rascals, which i used at later levels to find the xp for that level.
Also, I ignored level 0 because it doesnt fit anywhere. the experience for lvl 1 is more than double the experience for lvl 0.

after that i took the data, plugged it into excel and got an equation.
this equation took a bit of editing before it would work, so i edited it a bit, and now it fits the experience curve.
(and yes, i did test it several times to make sure it works)

Some interesting finds
im not sure if anyone else knew this, but the colour of the monster determines experience bonuses and penalties.
(i took this into accound when i did the calculations)

Red:1.2*(exp)
Orange:1.1*(exp)
Yellow: (no bonus)
White: (no bonus)
Green: (no bonus)
Light Blue: 0.7*(exp)
Dark Blue*: 0.4*(exp)

*This applies for the character's level - 6. anything below that (as far as i know) yields 0 xp.

Experience from various monsters:
Fox: 10
Timid Scamp: 20
Arrogant Scamp: 24
Timid Rascal: 31
Arrogant Rascal: 36
Wicked Rascal: 42

essenceoff:
This is quite an interesting formula. However, you should keep in mind that most MMORPGs have an exponential increase of required EXP per level, not a polynomial. That being said, an exponential can be expanded into an infinite series like so:

f(x) = a*e^(bx) + c = a*(1 + bx + b^2 * x^2/2! + b^3 * x^3/3! + b^4 * x^4/4! + ... + b^n * x^n/n!) + c
where n approaches infinity. Of course, 3! = 1*2*3 = 6 , 4! = 1*2*3*4 = 24 and so on.

Hence, taking the first 4 terms of the exponential expansion and match terms to your equation, we have:
Code:
f(x) = a+c + abx + [(ab^2)/2] * x^2 + [(ab^3)/6]* x^3 + [(ab^4)/24]* x^4
f(x) = 80  +25*x +      8*x^2       +      1.2*x^3    +     0.05*x^4

So from this, we get
1. a+c = 80
2. [(ab^4)/24] = 0.05
3. [(ab^3)/6] = 1.2

Divide #2 by #3 and you get:
b/4 = 0.05/1.2 ==> b = 0.2/1.2 = 1/6
substitute the newly discovered value of b in #3: [(1/6)^3]*a/6=1.2 ==> a = 1.2 * 6 * 6^3 = 1555.2
Substitute the newly discovered value of a in #1: 1555.2+c = 80 ==> c = -1475.2

So the formula based on these parameters would be:
Code:
f(x) = -1475.2 + 1555.2 * e^(x/6)

Of course, in my above findings, I ignored your linear and quadratic terms (because they are the least significant for higher levels). So let's plug in our new values and see how close we get...
25*x = abx ==> a*b = 25. But my a is 1555.2 and my b is 1/6 so our a*b = 259.2...a pretty large difference there
8*x^2 = [(ab^2)/2] * x^2 ==> 16 = a*(b^2) but with my a*b^2 yields 43.2. Again a pretty high difference...
So my formula will not maps yours well at all Razz But here is why ^_^

My formula was based on the 2 most important (higher power of x) components of your equation. From what you said, you came up with this formula mainly on lower levels, so any inaccuracies may be due to this. To be specific, high exponents become more important for high levels, but are not quite as important for low levels. For small values of x, the constants 1.2 and 0.05 "eat" up those values compared to the contants 8 and 25 that the lower exponents get. For example, for x=2, 25*x = 25*2 = 50 and 8*x^2 = 8*2^2 = 32. These values are a lot more important than 1.2*2^3 = 9.6 and 0.05*2^4 = 0.8...
But as the x becomes large, such as x=80: 25*80 = 2000, whereas 0.05*80^4 = 2,048,000!
Your formula was based on level growth for small level chars where the lower powers of x are most important. I based my formula on the higher powers of x that are most important in the long-term. Hence, my formula may be really wrong...but I similarly expect that your formula will yield very bad results for high level characters. If you adjust yours as you level up and match it to those higher levels, I can come up with a more accurate exponential formula for you Wink

Also, do keep in mind that even if acclaim used an exponential advancement like in most RPGs, they may have have modified it based on their mobs. That is, the true plot of the exp required may not be exactly an exponential curve but may have various flat areas adjusting the growth (using different equations within various level ranges). And of course...there is always a possibility that I'm totally wrong in my assumption of exponential growth and that your formula will work well in all levels ^_^

Anyhow, I look forward to an update of your formula, mapped for higher level chars Smile Meanwhile, people are welcome to try my derivation and see how bad it gets and what level ranges cause its worst behavior Wink



I found this from offcial forum,though the two formulas were proved donot work either  ,but  i  did  admire  their  work ,very interesting indeed.hope they find the correct one later.thanks!

comments ( 0 )