Sign up ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I'm currently writing a small game that is based on earning experiences 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 problem balancing this system. Are there any prebuild algorithms that help to caculate how the experience curve required for each level should look like? And how much experience an average enemy on a specific level should provide?

share|improve this question
possible duplicate of How to determine the amount of experience needed for leveling up. –  user744 Feb 24 '11 at 11:16

2 Answers 2

up vote 13 down vote accepted

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.

share|improve this answer
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. –  Ricket Feb 24 '11 at 14:58
I would certainly say the curves here would be shallow. –  The Communist Duck Feb 24 '11 at 15:43
please no exp. curve =,( - leveling takes soooo long with it and even longer the closer you're to your goal, plssss no =.( –  Dave O. Feb 25 '11 at 0:03
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. –  The Communist Duck Feb 25 '11 at 10:36
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. –  chockie Sep 28 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.

share|improve this answer
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. –  Kylotan Feb 26 '11 at 19:22
This link doesn't exist. Here's an old link that works:… –  Daniel Kaplan Aug 28 '13 at 2:11

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.