I'm currently writing a small game that is based on earning experience when killing enemies. As usual, each level requires more experience gain than the level before, and on higher levels, killing enemies awards more experience.

But I have a problem balancing this system. Are there any prebuilt algorithms that help to calculate how the experience curve required for each level should look like? And how much experience an average enemy on a specific level should provide?


You would want some kind of exponential curve, probably something like:

base_xp * (level_to_get ^ factor)

base_xp is a constant that decides how much xp you need to go up a level.
level_to_get is the level you are aiming for; at level 1, this will be level 2.
factor is another constant that decides how much of an increase of xp you need for each level.

Having a base_xp of 200 and a factor of, say, 2 gives something like this:

enter image description here

Whereas a base_xp of 50 and a factor of 2.6 gives:

enter image description here

The second has a much lower starting xp rate, but you need more xp very quickly.

As for monster xp, this is something you want to test. Try out various values. You want something that is not too high (you'll quickly become overpowered) yet not too low (players don't want to grind). Think about how many 'standard' enemies you would want the player to kill for level 10->11, for example.

  • 3
    \$\begingroup\$ You might want a sharper curve than the ones here. RuneScape, for example, has a very steep curve, almost resembling a logarithmic curve (flipped/rotated of course); see it here. At least in my personal experience, it seems to work VERY well to give you lots of quick rewards in the beginning, and by the time you get to higher levels you are adjusted to longer playtimes until the last few levels take FOREVER but the player somehow tolerates it. 99s are fairly frequent, despite the STEEP!! curve to get there. \$\endgroup\$
    – Ricket
    Feb 24 '11 at 14:58
  • \$\begingroup\$ I would certainly say the curves here would be shallow. \$\endgroup\$ Feb 24 '11 at 15:43
  • \$\begingroup\$ please no exp. curve =,( - leveling takes soooo long with it and even longer the closer you're to your goal, plssss no =.( \$\endgroup\$
    – Dave O.
    Feb 25 '11 at 0:03
  • \$\begingroup\$ A linear line wouldn't work. If you need 1000xp more per level, then as you get stronger you'll find it takes less and less time to level. \$\endgroup\$ Feb 25 '11 at 10:36
  • 1
    \$\begingroup\$ The function shown ( base_xp * (level_to_get ^ factor) ) is actually a quadratic function since level_to_get is the x value and not the factor, and if I'm not mistaken, base_xp should be added and not multiplied, in order to translate the function up? Sorry if this is just me being picky about semantics, I just want to make sure of this because charting that function definitely doesn't give you any old exponential. \$\endgroup\$
    – chockie
    Sep 28 '15 at 10:39

There is no right answer for the question of how much experience an enemy should give, or how steep the experience curve should be. It may help to think about the playing time required to level up for each level and then base the experience required per level, and average experience rewarded per enemy on this.

This article is a detailed breakdown of levelling mathematics in Lineage II. http://web.archive.org/web/20100303164314/http://www.tstonramp.com/~mykel/lineage/

  • 1
    \$\begingroup\$ I can't upvote this answer enough. For example, there is no reason why there needs to be an any actual curve for the different amounts of exp per level because you can scale down the amount of experience an enemy gives you relative to your own level for the same effect but more manageable numbers. There's no real substitute for understanding your own combat system and how you want the game to play, and then fitting the experience system to that. \$\endgroup\$
    – Kylotan
    Feb 26 '11 at 19:22
  • 4
    \$\begingroup\$ This link doesn't exist. Here's an old link that works: web.archive.org/web/20100303164314/http://www.tstonramp.com/… \$\endgroup\$ Aug 28 '13 at 2:11
  • \$\begingroup\$ This is exactly why we don't link to pages; you cannot guarantee that they will always exist. I downvoted and flagged your answer. \$\endgroup\$
    – Krythic
    Oct 19 '15 at 18:52
  • \$\begingroup\$ @Krythic I updated the link. \$\endgroup\$ Nov 13 '15 at 18:18

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .