This is a suggestion for one of our games. You may comment on and rate the suggestion here.
The Suggestion...
You should have preset experience checkpoints, which would make for much more realistic gameplay.
Roadmapped by ♪ (done), steve
Child Suggestions
(later versions of this idea)Levelling up Sequence Ver 2 | Rating: 5.00
Comments
I agree with this. It could be tricky to implement without changing MR3 as well but let me worry about that.
Or perhaps I should go back and change MR3 too, what do you think?
Or perhaps I should go back and change MR3 too, what do you think?
i'd say keep MR3 the same
Well I never beat 13...
me likey :)
Hey, why don't you use the fibonacci sequence for xp needed to level?
(1) 1 2 3 5 8 13 21 34 55 etc etc
Okay, so maybe not the best idea; depending on the xp gained from monsters, you'd either zoom through the early levels and more normal on the later ones, or progress through the early ones as normal, and take forver on the later ones.
Unless monsters had radically different xp gains, e.g. goblins 1, golems 200.
(1) 1 2 3 5 8 13 21 34 55 etc etc
Okay, so maybe not the best idea; depending on the xp gained from monsters, you'd either zoom through the early levels and more normal on the later ones, or progress through the early ones as normal, and take forver on the later ones.
Unless monsters had radically different xp gains, e.g. goblins 1, golems 200.
funnily enough that's what I had to do under the current system. The later enemies are worth thousands of xp, whereas the earliest are worth single digits.
Is it too much work to make most enemies give similar EXP? Assuming they're the same lvl.
And THAT's where it went wrong.
Maybe in MR4 you could have a smaller difference? Goblins are 1, Golems are 20. That should be fine.
And the fibonacci sequece seem fit fore me. Multiply it by 5 for everything, and we've got the Merlininian Sequence.
Maybe in MR4 you could have a smaller difference? Goblins are 1, Golems are 20. That should be fine.
And the fibonacci sequece seem fit fore me. Multiply it by 5 for everything, and we've got the Merlininian Sequence.
The fibonacci sequence is nearly as bad as doubling each time. Here's a more complete sequence.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811…
That takes us to level 29. You can see that we would still need monsters worth thousands of xp to get to the higher levels.
What about just adding a set number to amount of xp required for the next level eg 100?
100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 etc. With the enemies worth between say 10xp and 50xp I think this might work quite well.
You're xp bar would show how much more you need to get the next level, and wold reset to 0 when each level is reached.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811…
That takes us to level 29. You can see that we would still need monsters worth thousands of xp to get to the higher levels.
What about just adding a set number to amount of xp required for the next level eg 100?
100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 etc. With the enemies worth between say 10xp and 50xp I think this might work quite well.
You're xp bar would show how much more you need to get the next level, and wold reset to 0 when each level is reached.
Steve's right. Much better at a set rise.
And if you want to make levelling harder the higher you go then you could always do the opposite of previous suggestions: make further-in enemies give less xp.
And if you want to make levelling harder the higher you go then you could always do the opposite of previous suggestions: make further-in enemies give less xp.
Yeah, but if we take doubling (powers of 2) and fibonnaci sequence both up to level 32, the fibonnaci sequence is nowhere near as bad.
Powers of 2:
2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, 2147483648, 4294967296.
Fibonnaci Sequence:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578.
As we can see, achieving level 32 under the fibonnaci sequence requires 4291442718 less experience than under the current method.
If, however, the current method starts with 1 xp required for the first level (despite 1 being 2^0 and the first level achieved being level 1), then the fibonnaci sequence still requires 2143959070 less experience.
(I did all of that in my head, except copying what steve posted of the fibonnaci sequence, so it may not be 100% accurate, but it should be pretty close).
Powers of 2:
2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, 2147483648, 4294967296.
Fibonnaci Sequence:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578.
As we can see, achieving level 32 under the fibonnaci sequence requires 4291442718 less experience than under the current method.
If, however, the current method starts with 1 xp required for the first level (despite 1 being 2^0 and the first level achieved being level 1), then the fibonnaci sequence still requires 2143959070 less experience.
(I did all of that in my head, except copying what steve posted of the fibonnaci sequence, so it may not be 100% accurate, but it should be pretty close).
Ok, not as bad, but still the numbers get too high don't you think?
Depends what you set the experience values of the monsters to, and how high level you expect merlin to achieve in the course of hte game. I mean, when getting from level 14 to 15 required you to achieve level 14 all over again essentially, it was kinda daunting. I don't think I ever reached level 15 anyway, possibly 14.
If we take it to level 15, fibbonaci requires just under 1000 xp, doubling requires 32k or 16k depending where you start (does level 1 require 1 xp or 2 xp currently?).
Or, you could use some other sequence, or pluck numbers at random.
If we take it to level 15, fibbonaci requires just under 1000 xp, doubling requires 32k or 16k depending where you start (does level 1 require 1 xp or 2 xp currently?).
Or, you could use some other sequence, or pluck numbers at random.
i agree with 100 200 300 and so forth...
I prefer steve's method.
I would like him to be able to get to level 50 or something equally ridiculous.
lol
how about this
1,2,4,7,11,16... each time you get higher you add 1 more than you did to get the previous number so it's like this +1,+2,+3,+4,+5,+6 and so on.
1,2,4,7,11,16... each time you get higher you add 1 more than you did to get the previous number so it's like this +1,+2,+3,+4,+5,+6 and so on.
Though to make it more chalenging you could add 2 more each time instead.
We're learning that in class. I really hate those equations. Can they even be equations?
Hmm. Or you could add like...half every time.
Then it would go up nice and slowly.
Then it would go up nice and slowly.
Steve,are comments that suggest something considered to be put in the game? And if so, will they written down as a suggestion?
Steve's not here any more.
I like steve's but with one change. start with 50 then 100, 200, 300, and so on just so the first level is really easy.
Adding half every time would require way to many decimals.
Where's steve?
...Steve's got RSI in his hand and had to stop running the site or making the games. They'll never be finished unless Lokey can get together a team of programmers or by some miracle Steve makes a complete recovery.
Lol, Sketch, you've sort-of just been compared to a miracle. O.o
:P
how about triangle numbers?
1 3 6 10 15 21 28 36 45 55 66 78 91 105
or the square root of 2 times larger for each level?
1 1.41 2 2.82 4 5.64 8 11.28 16
1 3 6 10 15 21 28 36 45 55 66 78 91 105
or the square root of 2 times larger for each level?
1 1.41 2 2.82 4 5.64 8 11.28 16
Level^2/7+(Level*4)
Level 1 4.14285714285714
Level 2 8.57142857142857
Level 3 13.2857142857143
Level 4 18.2857142857143
Level 5 23.5714285714286
Level 6 29.1428571428571
Level 7 35
Level 8 41.1428571428571
Level 9 47.5714285714286
Level 10 54.2857142857143
Level 11 61.2857142857143
Level 12 68.5714285714286
Level 13 76.1428571428571
Level 14 84
Level 15 92.1428571428571
Level 16 100.571428571429
Level 17 109.285714285714
Level 18 118.285714285714
Level 19 127.571428571429
Level 20 137.142857142857
Level 21 147
Level 22 157.142857142857
Level 23 167.571428571429
Level 24 178.285714285714
Level 25 189.285714285714
Level 26 200.571428571429
Level 27 212.142857142857
Level 28 224
Level 29 236.142857142857
Level 30 248.571428571429
Level 31 261.285714285714
Level 32 274.285714285714
Level 33 287.571428571429
Level 34 301.142857142857
Level 35 315
Level 36 329.142857142857
Level 37 343.571428571429
Level 38 358.285714285714
Level 39 373.285714285714
Level 40 388.571428571429
Level 41 404.142857142857
Level 42 420
Level 43 436.142857142857
Level 44 452.571428571429
Level 45 469.285714285714
Level 46 486.285714285714
Level 47 503.571428571429
Level 48 521.142857142857
Level 49 539
this should work with 1 xp per kill
Level 1 4.14285714285714
Level 2 8.57142857142857
Level 3 13.2857142857143
Level 4 18.2857142857143
Level 5 23.5714285714286
Level 6 29.1428571428571
Level 7 35
Level 8 41.1428571428571
Level 9 47.5714285714286
Level 10 54.2857142857143
Level 11 61.2857142857143
Level 12 68.5714285714286
Level 13 76.1428571428571
Level 14 84
Level 15 92.1428571428571
Level 16 100.571428571429
Level 17 109.285714285714
Level 18 118.285714285714
Level 19 127.571428571429
Level 20 137.142857142857
Level 21 147
Level 22 157.142857142857
Level 23 167.571428571429
Level 24 178.285714285714
Level 25 189.285714285714
Level 26 200.571428571429
Level 27 212.142857142857
Level 28 224
Level 29 236.142857142857
Level 30 248.571428571429
Level 31 261.285714285714
Level 32 274.285714285714
Level 33 287.571428571429
Level 34 301.142857142857
Level 35 315
Level 36 329.142857142857
Level 37 343.571428571429
Level 38 358.285714285714
Level 39 373.285714285714
Level 40 388.571428571429
Level 41 404.142857142857
Level 42 420
Level 43 436.142857142857
Level 44 452.571428571429
Level 45 469.285714285714
Level 46 486.285714285714
Level 47 503.571428571429
Level 48 521.142857142857
Level 49 539
this should work with 1 xp per kill
I think 10 ln(1/2*level + 1) works pretty nicely?
at least that's what I'm going to try, and if anyone doesn't like it, they can implement a better one. (just takes one place, I'll point it out if anyone wants)
at least that's what I'm going to try, and if anyone doesn't like it, they can implement a better one. (just takes one place, I'll point it out if anyone wants)
Point it out then.
I thought about this, and came to the conclusion of the best exp system ever to be:
(last level exp*1,21)²/7+5*(last level exp-(10*the exp you got five levels ago(for first five levels, it's 10)), where the exp limit starts from 100 pts.
Another good system is that you need 1000 exp for each level, but you (only) get 5/level amount of exp from the monsters, which makes it necessary to big monsters give more exp, but not thousand and thousands each. The divident can, of course, be adjusted to make it more challenging or easier.
I thought about this, and came to the conclusion of the best exp system ever to be:
(last level exp*1,21)²/7+5*(last level exp-(10*the exp you got five levels ago(for first five levels, it's 10)), where the exp limit starts from 100 pts.
Another good system is that you need 1000 exp for each level, but you (only) get 5/level amount of exp from the monsters, which makes it necessary to big monsters give more exp, but not thousand and thousands each. The divident can, of course, be adjusted to make it more challenging or easier.
The first system looks absolutely terrible. It would be a power curve, which is the exact opposite of the intended effect! (of having it start with the required experience going up quickly, then evening out once it gets sufficiently high. Ideally, I think something with a square or cube root would be best, but I have a feeling that logarithms are faster to find. It would be particularly easy using bit logic, and base 2...
I need to make some more graphs though, such that I might find the best solution.
I need to make some more graphs though, such that I might find the best solution.
The second one: Divide by zero.
Yeah, I just threw the first one there for lulz.
I don't think your level is zero in this game? Fine, how about 5/(level+1) then?
I actually thought about level², but mixed it up with the talk about 2^level so I didn't post it. It should not be too rough, though. Maybe multiply it by 5 or 10.
1²=1, 2²=4, 3²=9, 4²=16... etc.
I don't think your level is zero in this game? Fine, how about 5/(level+1) then?
I actually thought about level², but mixed it up with the talk about 2^level so I didn't post it. It should not be too rough, though. Maybe multiply it by 5 or 10.
1²=1, 2²=4, 3²=9, 4²=16... etc.
I hate my math teacher...
Why's that? Because you don't get to make any provings which you probably couldn't do anyway?
No, really, what was the reason again?
Oh, and note, since you're so good in math, could you explain why 2^(n+2)*3^n+5n-4 is dividable with 25 with any positive.. is it integer? Anyway, with any positive non-decimal number? Prove it, or sorts? It's this one problem I've pondered for a week or so, but I can't really figure how to prove it.
No, really, what was the reason again?
Oh, and note, since you're so good in math, could you explain why 2^(n+2)*3^n+5n-4 is dividable with 25 with any positive.. is it integer? Anyway, with any positive non-decimal number? Prove it, or sorts? It's this one problem I've pondered for a week or so, but I can't really figure how to prove it.
With regards to the comment regarding squares, the original method was 2^level, so level^2 would be a pretty good improvement. I'll try it.
Of course, it'll be faster to find a good algorithm if there are many people testing at once.
If you want to try, the function where this is calculated is attemptToLevelUp in modExperience.
pExperienceLevel is the unit's level
pExperienceAmountForNextLevel is running total experience that it took to get to the last level, to which you assign the next total amount needed. If you want the experience bar to be updated as well, you will need to change the line under levelled = true to: pLevelData[#expToNxtLvl] = pExperienceAmountForNextLevel - pExperienceAmountForLastLevel
(make sure there aren't any spelling mistakes on my part there)(I'm looking at one laptop while typing in another)
Of course, it'll be faster to find a good algorithm if there are many people testing at once.
If you want to try, the function where this is calculated is attemptToLevelUp in modExperience.
pExperienceLevel is the unit's level
pExperienceAmountForNextLevel is running total experience that it took to get to the last level, to which you assign the next total amount needed. If you want the experience bar to be updated as well, you will need to change the line under levelled = true to: pLevelData[#expToNxtLvl] = pExperienceAmountForNextLevel - pExperienceAmountForLastLevel
(make sure there aren't any spelling mistakes on my part there)(I'm looking at one laptop while typing in another)
Actually, a power curve dependent on the level might be the best bet!
To your proof question, I don't have any basis in set theory/discrete math thus, I wouldn't be able to prove something for integers only. (as far as I know)I can simplify that for you though:
25x = 4*6^n + 5n - 4
To your proof question, I don't have any basis in set theory/discrete math thus, I wouldn't be able to prove something for integers only. (as far as I know)I can simplify that for you though:
25x = 4*6^n + 5n - 4
... and we have a winner!
(as far as I've checked, this gives very reasonable results)
level^3 + level^2 + last amount/(level + 1)+ 5
eventually, of course, it will start to act like the old system, which is to say, limiting the reasonable max level you can obtain, however, if this is a problem, the term involving the last amount can be divided by level^2 instead.
(as far as I've checked, this gives very reasonable results)
level^3 + level^2 + last amount/(level + 1)+ 5
eventually, of course, it will start to act like the old system, which is to say, limiting the reasonable max level you can obtain, however, if this is a problem, the term involving the last amount can be divided by level^2 instead.
So it gets leveling to be difficult after level 50 or even earlier? (even on my maps?)
Would that mean that the huge speedgain problem is somewhat eliminated? Atleast, more eliminated?
Would that mean that the huge speedgain problem is somewhat eliminated? Atleast, more eliminated?
I got a new math teacher, she is so....boring!
i got 2 new math teachers
one loves music
the others a mega geek
one loves music
the others a mega geek
I guess I can understand the boring part - one of our school's history teachers has such a boring voice, sometimes people even take pillows with them in the class to sleep better with =O
hmm... a common theme in my last mech class was the teacher waking everyone up for a couple minutes at a time, telling them the important information, then letting them go back to sleep.
Very well taught class, I must say. (With fairly difficult course material, I might add)
Very well taught class, I must say. (With fairly difficult course material, I might add)
I hate math...
I don't! It's crucial for many tasks, and I find it fun to learn it.
Is that because of the teacher or.. Actually, I won't make guesses, why do you hate it?
Is that because of the teacher or.. Actually, I won't make guesses, why do you hate it?
I just...hate it. So boring.
I like cool math. Stuff that makes you think, "That's neat!".
I'm just starting Algebra this year, and I think I'll like it.
And if anyone's wondering how we're having school after the whole fire, we have some trailers that were donated. We have about 20 or so, and their divided into sets of six throughout town. 6 at the Primary, 6 at the Intermediate, and 6 at the High School. Since 8th Grade's at the high school, I get to be a high schooler a year early! I also see my dad and sister. She's a Senior, and my dad's a World History teacher.
So, it's not ideal, but hey, we'll get through.
I'm just starting Algebra this year, and I think I'll like it.
And if anyone's wondering how we're having school after the whole fire, we have some trailers that were donated. We have about 20 or so, and their divided into sets of six throughout town. 6 at the Primary, 6 at the Intermediate, and 6 at the High School. Since 8th Grade's at the high school, I get to be a high schooler a year early! I also see my dad and sister. She's a Senior, and my dad's a World History teacher.
So, it's not ideal, but hey, we'll get through.
To me math is very boring and it takes forever for me to learn because it's not interesting enough (because it's so consistent). I however love anything that isn't always the same has different answers and bendable rules, like people they are so different and no two are alike. I love philosophical questions, debates and anything without a definitive right answer.
I am bad at math (in my opinion) because I get bored with it.
I am bad at math (in my opinion) because I get bored with it.
Personally, I like algebra the most. Trying to defeat those oh so difficultly twisted polynoms and equasions... Challenging my logical intuition more and more every time... Even memorizing, as annoying it is sometimes, is nice, and you can always try proving what you are memorizing, forcing you to study the equation at hand, learning the deep meaning inside it better as you unravel the mysteries behind the digits and variables... Ah, such lovely usage of time~
Yeah, I was obviously exaggerating it a little, but it's still true.
Yeah, I was obviously exaggerating it a little, but it's still true.
That's definitely what calculus is all about.
Gnorthan loves math.
♪, you have a Mech class!? I've been missing out!
I used to have a math teacher who spoke in monotone.
He wasn't really engaging.
I used to have a math teacher who spoke in monotone.
He wasn't really engaging.
Considering that I'm majoring in mechanical engineering... :P
The funniest class that I can think of might be vampire studies... which unfortunately I don't think I'll ever be allowed to take.
The funniest class that I can think of might be vampire studies... which unfortunately I don't think I'll ever be allowed to take.
Vampire studies???? I didn't know that was an official class.
Hehe, I know. I'm just taking the abbreviation literally.
Actually, there's a 4th year mech class (well, its actually an interdisciplinary thing) that could qualify as mech making...
I can't wait t'll 9th grade. I get to choose my own classes. Which is AWESOME!
Same here!
Lol, we could choose some of our classes already on 7th grade(technically on the lower grades as well, since we could choose to start or not start a language... But that's crossing the line already).
With the 1st grade of upper secondary though, I'm free to do ANYTHING with my timetable. We have this huge list of courses, and we may choose to take anything that's being held on the next period's timetable. Its a little more complicated, but very versatile.
With the 1st grade of upper secondary though, I'm free to do ANYTHING with my timetable. We have this huge list of courses, and we may choose to take anything that's being held on the next period's timetable. Its a little more complicated, but very versatile.
We have one choice. Band (WOOT!), Choir, or Art. Actually, if you weren't already doing Band or Choir, you got plopped in art. So, our elective was chosen in 6th grade really.
So can't wait for High School!
So can't wait for High School!
Oh boy! I think I get an elective in 3rd year!
In elementary, everyone took art and everyone took a generic music class, kind of to help you find if you like it or not. At fifth grade, you can decide whether to do band or choir, but you still take art. In high school, you could do all three if you wanted along with other electives, but you weren't forced to anything either. Then in my new highschool, you could pick practically anything you wanted (there was even an animation class!). And in college, well... :)
I just wish that our HS had some programming classes.
This would be my dream job. Working at Google.
This would be my dream job. Working at Google.
Cool! What part do you want to do there?
I did a CAD course in high school, along with some electronics... I was going to take com sci, but I really didn't have time. Same thing with philosophy (which it seems was more of a philosophology)
Android...
Javascript is not fun after you've used something with some real power! I'm just more a systems programmer, it seems.
Javascript is not fun after you've used something with some real power! I'm just more a systems programmer, it seems.
For me, in elementary, we only got to choose whether we didn't want to start a couple of languages there(Swedish, German end Spanish), on the 7th grade we could pick art or music, going through two courses of the picked one and a generic course of the another.
Then on 8th/9th grade, during each period, in addition to the standard courses, we had to pick one out of five different courses, so there was at least one course you liked each period(unless all five sucked, which happened once to me due having to take programming on 9th grade's fourth course since I had to take math on the third period(math school) and thus my other choices were pushed away, making the second and fifth period's [..electables?] something I didn't like).
And, well, now, I already sorta explained the system already. A huge list of courses, we pick anything we want and go any course at any point we want.
Then on 8th/9th grade, during each period, in addition to the standard courses, we had to pick one out of five different courses, so there was at least one course you liked each period(unless all five sucked, which happened once to me due having to take programming on 9th grade's fourth course since I had to take math on the third period(math school) and thus my other choices were pushed away, making the second and fifth period's [..electables?] something I didn't like).
And, well, now, I already sorta explained the system already. A huge list of courses, we pick anything we want and go any course at any point we want.
I think that this might be *done* as well.
It is? I did not notice.
Sort of. I think I changed the sequence to be an extra 10% of the previous one.
from what I did?
Er, nope. Er, maybe. I don't think so. Maybe you altered after me? I did that aaaages ago.
I changed it pretty recently.(and it seems to work pretty nicely, as far as I can tell)
Wait so if Steve did 10% then how much did you add?
I think what I did is somewhere upwards from here.
Well I don't mind either way - the end result is good!
After playing MR Evo, I've come to a differing conclusion on this part. Even the polynomial-difficulty on leveling is perhaps a tad too much; after level 20, it starts taking ages to get one level-up. I'm not saying the difficulty for leveling should be constant by any means, but it should probably get only around (level+12)/(level+1)% more difficult compared to the last level. Difficulty here meaning the time it takes, or the amount of screens, or some other similar more-or-less-fixed-lenght variable.
Having studied roleplaying mechanisms for a while and levelling up in video games at one point when I was making a game myself, I reached the following conclusion:
In games where you gain power in relative to your opponents on level ups, since you get stronger a constant amount of experience required results in less time spent per level up. That much should be obvious. The assumption here is that monsters give experience close to a linear relation between their difficulty.
Well, we don't want leveling to get easier. The time spent on getting the next level up is power/xp required, where power is the speed you're capable of getting more xp at. On each level up, your power increases by a certain amount; usually this is constant or slightly relative to increase it more on later levels - an example of former being power = level +5 and of latter power = 0.1*level^1,6 + level + 10.
So, if we'd want the player to use the same time and effort for each level up (time = a), we could try to balance it out so that the earlier mentioned power/xpreq is close to a constant regardless of either variable; for example, if power = level + 5, xpreq = a*(level + 5). However, we don't want the effort to be the same unless the increase of power is diminishing in relation to the power in the beginning and making one strong character is as good as having more weaker ones. If the efforts for each level up was the same in MR, pretty much everyone would go Merlin solo. Dividing out XP would be a bad thing since all your troops will get one level in the same time as you could get as many levels as you have troops. Additionally, tough enemies are easier to take on with a few tough units rather than many weak ones; of course it depends on the surroundings but generally anyway.
So, we want time to increase when level does. How can we accomplish this? Easily; we multiply the previous xpreq by something which is dependent on level. For example like so:
xpreq = a*(power)^1,1, or
xpreq = a*(power)*((level/2 + 12)/ 3).
The latter one is similar to what I proposed in the beginning - it makes the difficulty increase compared to the previous level to decrease, but that's alright since the increase in time consumption from previous levels is still there.
The last thing to figure out are the exact modifiers. In MR's case, the enemy rewards are most definitely not directly linear with their difficulty. The time constant a is also unknown - perhaps something around 2 would be alright. It's also recommended to add a near-constant value of XP to the equation, but that's done already (I'll explain that in a bit). The clear problem is the exact value of the level curve modifier. In order to actually give out properly diminishing difficulty increase while actually increasing the difficulty, we can't have a variable in the divident. I suppose that level/2 is a good pace; with the two constants ((level + b) / c) it's possible to create upper limits to leveling easily dependent on map size and the like. It could also be more complex; (0.5*level^1.2+0.8*level+20)/4 or the like might be considered.
In order to take into account the nonlinearity of enemy rewards, we could create another curve multiplier. Seeing how MR Evo is all the rage, however, that would have to be constantly updated and it would be a pain. Adding higher powers of level to the modifier should be sufficient (such as (0.004*level^2.8+0.08*level^2+0.3*level^1.3+0.6*level+10) / 3). The reason why the higher level polynomials are multiplied with smaller numbers is that we don't want them to get out of control but make the increase much larger later on when enemies start dishing thousands of xp.
The problem is in finding out the value of power on each level. It's highly changing due to potion consumption and the such as well. We could write an evaluator for Merlin's current battle strenght and base it on data gathered by it - it could even make it easier to level if the player dies too much or something like that. However, merlin's initial strength is huge and level-ups don't really contribute much after a few, especially with GMG and beam/mines. It could be something as simple as 0.2*level^1.1+100, for example. When all is multiplied out, the constants of the power and the modifier form the desired initial constant xp requirement as well.
So, what do we have so far?
xpreq(level) = a*(power)*modifier(level)
= a*(0.2*level^1.1+100)*modifier(level)
Of course, the exact values need fiddling around depending on how far we'd like Merlin to get. However, a near-constant amount of time for each level compared to last would be optimal in my opinion; that way eventually the time used would still be higher than in the first levels but still not overwhelming. This allows you to more effectively choose between who to focus on since getting level 24->25 on Merlin wouldn't take eons and not be worth it.
What went wrong with my earlier idea and Note's curve? Nothing per-se, but it's not really suited for changing environments and is sort of limiting on the player with larger or more difficult maps. Besides, who doesn't want to see tons of stars on your guys?
The old equation is xpreq = level^3 + level^2 + last amount/(level + 1)+ 5. It's a polynomial curve all right, but the multipliers are too high. After a few levels the level^3 completely shadows out the others. The constant is there to be shadowed out, but it creates a bad effect and the others make it worse. If we want it to start taking effect later, a simple multiplier will suffice, for example xpreq = 0.4*level^3 + 0.8*level^2 + 2*last amount/(level + 1)+ 5, which is heavier in the very beginning but allows to level up further more easily - the time used later might actually have decreased in relation to early levels with such a big change. If we want the effect - and time, later on - to be reduced and the overall curve more balanced, we could simply tone down the exponents and increase the multipliers, such as 1.2*level^2 + 2*level^1.5 + 1.3*last amount/(level + 1) + 8.
I'd believe that a formula with the basis that I laid out earlier would be much more effective, especially if enemy xp gains were fiddled with. However, figuring out the exact numbers for the modifiers in an already complete game is daunting. Note has done some testing on the old formula already, so I believe that something similar should be sufficient and work finely as-is.
That said, here is what I got with some research and adjustment. It's a little more difficult in the first ten levels than the current formula, but easens out gradually with the gains. It requires about a fifth of the xp to advance the level 24->25 with this than in Note's curve, and a smaller portion futher on. This is logical since the power increase isn't that big but the monsters don't keep getting tougher forever. With some differential calculus, I got that by the time you reach level 30 in note's curve, you'd be around level 60-65 with this. I also removed the term with the last xpreq being divided; there was little point in it further on and I find it to be unnecessarily confusing. If someone disagrees, I'd love to hear why it would be good to have here.
Final equation proposion:
0.45*level^2.3 + 1.2*level^2 + 2.2*level^1.5 + 5*level + 8 + 26/(2*level+3).
Thank you for reading.
Having studied roleplaying mechanisms for a while and levelling up in video games at one point when I was making a game myself, I reached the following conclusion:
In games where you gain power in relative to your opponents on level ups, since you get stronger a constant amount of experience required results in less time spent per level up. That much should be obvious. The assumption here is that monsters give experience close to a linear relation between their difficulty.
Well, we don't want leveling to get easier. The time spent on getting the next level up is power/xp required, where power is the speed you're capable of getting more xp at. On each level up, your power increases by a certain amount; usually this is constant or slightly relative to increase it more on later levels - an example of former being power = level +5 and of latter power = 0.1*level^1,6 + level + 10.
So, if we'd want the player to use the same time and effort for each level up (time = a), we could try to balance it out so that the earlier mentioned power/xpreq is close to a constant regardless of either variable; for example, if power = level + 5, xpreq = a*(level + 5). However, we don't want the effort to be the same unless the increase of power is diminishing in relation to the power in the beginning and making one strong character is as good as having more weaker ones. If the efforts for each level up was the same in MR, pretty much everyone would go Merlin solo. Dividing out XP would be a bad thing since all your troops will get one level in the same time as you could get as many levels as you have troops. Additionally, tough enemies are easier to take on with a few tough units rather than many weak ones; of course it depends on the surroundings but generally anyway.
So, we want time to increase when level does. How can we accomplish this? Easily; we multiply the previous xpreq by something which is dependent on level. For example like so:
xpreq = a*(power)^1,1, or
xpreq = a*(power)*((level/2 + 12)/ 3).
The latter one is similar to what I proposed in the beginning - it makes the difficulty increase compared to the previous level to decrease, but that's alright since the increase in time consumption from previous levels is still there.
The last thing to figure out are the exact modifiers. In MR's case, the enemy rewards are most definitely not directly linear with their difficulty. The time constant a is also unknown - perhaps something around 2 would be alright. It's also recommended to add a near-constant value of XP to the equation, but that's done already (I'll explain that in a bit). The clear problem is the exact value of the level curve modifier. In order to actually give out properly diminishing difficulty increase while actually increasing the difficulty, we can't have a variable in the divident. I suppose that level/2 is a good pace; with the two constants ((level + b) / c) it's possible to create upper limits to leveling easily dependent on map size and the like. It could also be more complex; (0.5*level^1.2+0.8*level+20)/4 or the like might be considered.
In order to take into account the nonlinearity of enemy rewards, we could create another curve multiplier. Seeing how MR Evo is all the rage, however, that would have to be constantly updated and it would be a pain. Adding higher powers of level to the modifier should be sufficient (such as (0.004*level^2.8+0.08*level^2+0.3*level^1.3+0.6*level+10) / 3). The reason why the higher level polynomials are multiplied with smaller numbers is that we don't want them to get out of control but make the increase much larger later on when enemies start dishing thousands of xp.
The problem is in finding out the value of power on each level. It's highly changing due to potion consumption and the such as well. We could write an evaluator for Merlin's current battle strenght and base it on data gathered by it - it could even make it easier to level if the player dies too much or something like that. However, merlin's initial strength is huge and level-ups don't really contribute much after a few, especially with GMG and beam/mines. It could be something as simple as 0.2*level^1.1+100, for example. When all is multiplied out, the constants of the power and the modifier form the desired initial constant xp requirement as well.
So, what do we have so far?
xpreq(level) = a*(power)*modifier(level)
= a*(0.2*level^1.1+100)*modifier(level)
Of course, the exact values need fiddling around depending on how far we'd like Merlin to get. However, a near-constant amount of time for each level compared to last would be optimal in my opinion; that way eventually the time used would still be higher than in the first levels but still not overwhelming. This allows you to more effectively choose between who to focus on since getting level 24->25 on Merlin wouldn't take eons and not be worth it.
What went wrong with my earlier idea and Note's curve? Nothing per-se, but it's not really suited for changing environments and is sort of limiting on the player with larger or more difficult maps. Besides, who doesn't want to see tons of stars on your guys?
The old equation is xpreq = level^3 + level^2 + last amount/(level + 1)+ 5. It's a polynomial curve all right, but the multipliers are too high. After a few levels the level^3 completely shadows out the others. The constant is there to be shadowed out, but it creates a bad effect and the others make it worse. If we want it to start taking effect later, a simple multiplier will suffice, for example xpreq = 0.4*level^3 + 0.8*level^2 + 2*last amount/(level + 1)+ 5, which is heavier in the very beginning but allows to level up further more easily - the time used later might actually have decreased in relation to early levels with such a big change. If we want the effect - and time, later on - to be reduced and the overall curve more balanced, we could simply tone down the exponents and increase the multipliers, such as 1.2*level^2 + 2*level^1.5 + 1.3*last amount/(level + 1) + 8.
I'd believe that a formula with the basis that I laid out earlier would be much more effective, especially if enemy xp gains were fiddled with. However, figuring out the exact numbers for the modifiers in an already complete game is daunting. Note has done some testing on the old formula already, so I believe that something similar should be sufficient and work finely as-is.
That said, here is what I got with some research and adjustment. It's a little more difficult in the first ten levels than the current formula, but easens out gradually with the gains. It requires about a fifth of the xp to advance the level 24->25 with this than in Note's curve, and a smaller portion futher on. This is logical since the power increase isn't that big but the monsters don't keep getting tougher forever. With some differential calculus, I got that by the time you reach level 30 in note's curve, you'd be around level 60-65 with this. I also removed the term with the last xpreq being divided; there was little point in it further on and I find it to be unnecessarily confusing. If someone disagrees, I'd love to hear why it would be good to have here.
Final equation proposion:
0.45*level^2.3 + 1.2*level^2 + 2.2*level^1.5 + 5*level + 8 + 26/(2*level+3).
Thank you for reading.
A humongous wall of text.. Of which only the very end is actually meaningful. In hindsight, the language is high-level and very shattered; the thing is difficult to grasp by reading it.
Summarized.. First I tackled the very basis of good experience curve development, after which I focused on explaining different scenarios and the math in making curves for them. Then I shifted onto MR and made some examples, but figured out that without proper and extensive testing creating a very detailed equation for such a specific case would be difficult.
So, I started analysing the current formula and piece by piece showcasing the problems in it and some solutions. Then I proceeded to create a reiteration of it with some adjustments to make it better fitting and more flexible. Finally, after all that theorycrafting, I ended up with something fairly similar to Note's solution and it's right there in the end of the post. I haven't tested it out but I feel that it should work fine - at least for me. It doesn't take into account playing styles well.
Summarized.. First I tackled the very basis of good experience curve development, after which I focused on explaining different scenarios and the math in making curves for them. Then I shifted onto MR and made some examples, but figured out that without proper and extensive testing creating a very detailed equation for such a specific case would be difficult.
So, I started analysing the current formula and piece by piece showcasing the problems in it and some solutions. Then I proceeded to create a reiteration of it with some adjustments to make it better fitting and more flexible. Finally, after all that theorycrafting, I ended up with something fairly similar to Note's solution and it's right there in the end of the post. I haven't tested it out but I feel that it should work fine - at least for me. It doesn't take into account playing styles well.
Wow. I didn't really understand it, maths is not my strong point, but the original levelling system I implemented was really just a wild stab in the dark. Looks like note improved it, but I'm not sure whether that improved version is actually in mr evo. It's based on a version of MR4 from about Oct 2011.
Anyway I am happy to try to implement this as it's better than anything I could do. :)
Any thoughts on how much benefit each level should bring to the stats? If I recall correctly the following are boosted by levelling (may have changed since)
- walk speed (always)
- hit points (always)
then one of
- start charge
- max charge
- charge speed
Anyway I am happy to try to implement this as it's better than anything I could do. :)
Any thoughts on how much benefit each level should bring to the stats? If I recall correctly the following are boosted by levelling (may have changed since)
- walk speed (always)
- hit points (always)
then one of
- start charge
- max charge
- charge speed
I'd have to know exact numbers. Merlin's initial stats and the amounts of increase, specifically. It would also be helpful to have the stats and xp of two enemies for comparison; maybe a Skeleton and a normal Golem?
I'm not sure whether note's version is in MR Evo - if MR Evo is still using your system, then my curve is obviously far too low. Perhaps it could still be tested, but it's ways lower than a high exponential growth curve. If the system in Evo is indeed unchanged, Note's curve probably will work finely. However, I recall that he did the change already around MR Open 20-25, which would be at least one whole engine before this.
I'm not sure whether note's version is in MR Evo - if MR Evo is still using your system, then my curve is obviously far too low. Perhaps it could still be tested, but it's ways lower than a high exponential growth curve. If the system in Evo is indeed unchanged, Note's curve probably will work finely. However, I recall that he did the change already around MR Open 20-25, which would be at least one whole engine before this.
for all characters these are the defaults
i[#agility] = 1
i[#dexterity] = 1
i[#eyestrain] = 0
i[#mana_burst] = 1
i[#mana_burstIncLevel] = 0.1
i[#mana_capacity] = 10
i[#mana_capacityIncLevel] = 1
i[#mana_flow] = 1
i[#mana_flowIncLevel] = 0.1
i[#mana_regeneration] = 1
i[#mana_regenerationIncLevel] = 0.1
i[#stallSpeedIncLevel] = 0
i[#strength] = 1
i[#strengthIncLevel] = 0.1
explanation for what they do
Then each character can modify the defaults
merlin
#energy: 100,
#walkSpeed: 4
original skeleton warrior
#damageSpeed: 3,
#dexterity: 3,
#energy: 100,
#experienceImWorth: 6,
#eyestrain: 30,
#inertia: 60,
#strength: 12,
#walkSpeed: 5,
boulder monster
#damageSpeed: 3,
#dexterity: 10,
#dieSound: "boulder_die",
#energy: 400,
#experienceImWorth: 50,
#eyestrain: 25,
#frictionReel: point(40,40),
#inertia: 50,
#startingLevel: 0,
#strength: 12,
#team: #monsters,
#name: "boulderMonster",
#walkSpeed: 1,
#weaponTechnique: 0
i[#agility] = 1
i[#dexterity] = 1
i[#eyestrain] = 0
i[#mana_burst] = 1
i[#mana_burstIncLevel] = 0.1
i[#mana_capacity] = 10
i[#mana_capacityIncLevel] = 1
i[#mana_flow] = 1
i[#mana_flowIncLevel] = 0.1
i[#mana_regeneration] = 1
i[#mana_regenerationIncLevel] = 0.1
i[#stallSpeedIncLevel] = 0
i[#strength] = 1
i[#strengthIncLevel] = 0.1
explanation for what they do
property pAgility -- modifies attack.cooldown on #melee
property pDexterity -- modifies attack.cooldown on #ranged
property pEyestrain -- multiplier of attack.inaccuracy on #ranged and #magic
property pManaBurst -- added to attack.chargeStart
property pManaBurstInc -- amount added to manaBurst when a potion is collected
property pManaBurstIncLevel -- amount added to manaBurst when levelling
property pManaCapacity -- sets the maximum a spell can be charged to
property pManaCapacityInc -- amount added to manaCapacity when a potion is collected
property pManaCapacityIncLevel -- amount added to manaBurst when levelling
property pManaFlow -- multiplier of attack.chargeSpeed
property pManaFlowInc -- amount added to manaFlow when a potion is collected
property pManaFlowIncLevel -- amount added to manaFlow when levelling
property pManaRegeneration -- modifies attack.cooldown on #magic
property pManaRegenerationIncLevel -- amount added to manaRegeneration when levelling
property pStallSpeedIncLevel -- amount to increase stall speed by when levelling (stall speed is a property of objMoveXY which is kept by objGameObject)
property pStrength -- multiplies attack.power on #melee and attack.range on #ranged
property pStrengthIncLevel -- amount added to strength on levelup (always)
Then each character can modify the defaults
merlin
#energy: 100,
#walkSpeed: 4
original skeleton warrior
#damageSpeed: 3,
#dexterity: 3,
#energy: 100,
#experienceImWorth: 6,
#eyestrain: 30,
#inertia: 60,
#strength: 12,
#walkSpeed: 5,
boulder monster
#damageSpeed: 3,
#dexterity: 10,
#dieSound: "boulder_die",
#energy: 400,
#experienceImWorth: 50,
#eyestrain: 25,
#frictionReel: point(40,40),
#inertia: 50,
#startingLevel: 0,
#strength: 12,
#team: #monsters,
#name: "boulderMonster",
#walkSpeed: 1,
#weaponTechnique: 0
Perhaps we should lower the increases of stats on level-up for Merlin and the friendly units to 0.75 (or just all units if it's easier, but enemies don't usually get as high in levels). The ManaFlowIncLevel property specifically should be toned down to 0.5 per level though, if it affects the GMG. I've been fairly outdated on enemy stats - in the MR3 demo era, to be specific. It also seems that Note's values are used currently. Mine will make the characters feel more powerful in the players' hands, hopefully. And add a lot more of glittering stars on top of your head. :)
I think my curve should be all right, judging from those values - it should be tested a bit though; but I don't think it's a bad thing if it's tested out in the public. If you'd rather test it out yourself, here's what to do: if it's later on too easy to get levels with Merlin solo just change the first term's multiplier from 0.45 to 0.55 and the second one's from 1.2 to 1.1. If the problem persists, do a similar adjustment again. If the first levels are too difficult but the later ones are alright, decrase the last term's constant from 26 to around 15 and the constant from 8 to 5 or so. If too difficult later or too easy early, do reverse adjustments.
I think my curve should be all right, judging from those values - it should be tested a bit though; but I don't think it's a bad thing if it's tested out in the public. If you'd rather test it out yourself, here's what to do: if it's later on too easy to get levels with Merlin solo just change the first term's multiplier from 0.45 to 0.55 and the second one's from 1.2 to 1.1. If the problem persists, do a similar adjustment again. If the first levels are too difficult but the later ones are alright, decrase the last term's constant from 26 to around 15 and the constant from 8 to 5 or so. If too difficult later or too easy early, do reverse adjustments.
Ok sounds good.
Something ive een people do which seems really effective is plot out some points of how much experience you should need for various levels, then generate a quadratic or cubic spline to interpolate all the other levels.
It gives great flexibility, and the points could be part of the map file
It gives great flexibility, and the points could be part of the map file
That's... Actually a very good idea! I wonder why it has never crossed my mind in creating curves; I've used it for analysis after all.
The problem is that they have to be carefully chosen as to not create inconsistent or unbalanced results, but interpolation especially at higher degrees does cope with sparse values well.
The problem is that they have to be carefully chosen as to not create inconsistent or unbalanced results, but interpolation especially at higher degrees does cope with sparse values well.
You must be logged in to add a comment.
Rating: 5.00 in 4 votes
Status: rate | *In Roadmap*
Levelling up Sequence