Ask a Game Dev 2023-05-26 19:01:35

This particular topic can be a real rabbit hole, but let’s try to keep it to the basics for today. At its core, a leveling system is a series of goals and rewards for the player. The player plays the game, reaches certain pre-determined requirements, and obtains discrete new rewards for doing so. Because this is a system that dispenses rewards to the player, it needs to meet a few criteria:

1. The rewards must be meaningful


There has to be some sort of tangible benefit to rising in level - the authorization to use better equipment, a new power or more currency to buy/improve powers, etc. This builds anticipation - leveling up should be something that the player looks forward to doing, and that isn’t possible if leveling up doesn’t actually do anything. A good leveling system will excite players and encourage them to keep playing - they want to get one more level, because they get something good at level N+1. 

Consider Dungeons and Dragons, the tabletop game. Each character level is a really big deal in D&D - you get significant choices to make at each level that will (usually) greatly affect your character’s power. On the opposite side of the spectrum, Castlevania: Symphony of the Night for the PSX had an almost-useless leveling system. The primary methods of gaining power in that game stemmed from collecting useful items from defeated foes, while leveling up provided small incremental amounts of HP and magic power. The character level in that game was practically vestigial. Nobody who played that game looked forward to leveling or cared what level they were.

One of the biggest things that a system designer has to do when creating a leveling system is to come up with a variety of rewards for the player to look forward to. Stat improvements, authorization for new equipment, new or improved powers, new visual effects, and opening up new areas to explore are the most common rewards for leveling, and it makes sense because the player should naturally be interested in obtaining these things. Furthermore, there has to be a good variety of rewards to leveling up, or else the player will get bored. More HP and MP at each level without any other benefit stops being appealing really quickly. If you vary the rewards and keep them interesting enough that the player will look forward to them, you can keep interest for a lot longer.

2. Rewards must arrive in a timely fashion


A good leveling system must take timing into account. Earning a level should be a fairly uncommon experience - players need time for the anticipation of the next level to build or it won’t feel meaningful. If a player gains a new level every few seconds, that player will quickly grow indifferent toward leveling because of how often it happens. On the opposite end of the spectrum, we designers also cannot let the player go for too long without a reward either. If a task seems too difficult, troublesome (especially if it lacks a reward befitting the effort), or like it takes too long, players will tune out and won’t bother with or pay attention to it. The reward must be delivered somewhere in that sweet spot between, where the player feels like they have accomplished something, but not so far away that they feel it isn’t achievable. This time length is informed by a number of factors - the type of game (e.g. leveling a champion in League of Legends vs leveling a character in WoW), the platform (mobile vs console vs pc), and even the length of the game.

3. Rewards must be earned by player action


Rewards exist to encourage players to do things actively in the game. Experience points are just smaller rewards that build up to earn larger ones (levels). The designer uses these smaller rewards for completing in-game tasks, like defeating enemies, completing objectives, winning matches, and so on. The nature of experience point rewards does two things - it provides a sense of scale for the value of each action/objective relative to others, and gives the player a sense of progress towards the bigger goal of leveling up. If the player just passively earns experience by standing around or is disproportionately rewarded for completing repetitive tasks (e.g. grinding), it can short-circuit the sense of accomplishment that they would get by playing the game as intended. It’s important to keep this in mind - a good leveling system preserves the sense of player accomplishment by rewarding different player actions.

So how do we actually bring all of these concepts together practically?


Design principles are all well and good, but how does this actually translate to designing an actual leveling system? This is where system design’s mathematical nature kicks in. We start by asking ourselves questions and choosing answers for them. As we start answering them, we can start building up a mathematical system to generate the specifics. Here are some of the questions we need to ask ourselves:

  • How many levels do we want at maximum? 

This decides how many different level rewards we have to create or assign.

  • How long should it take to reach maximum level, on average? 
  • If this is a single player game, at what point in the game do we expect the player to reach maximum level? How many hours do we expect that to be?

These questions combined with the other question above determine how long we expect each level to take. If we have 30 levels distributed over 60 hours of gameplay, then we expect each level to take two hours on average to earn. That might feel a bit long, so perhaps we can make 40 levels and a new level every hour and a half instead, assuming we have enough rewards. This gives us a target levels per hour (or LPH) value to earn X levels in Y hours. 

  • How many LPH should the various activities provide?

Remember, we have a specific target value of LPH in order to reach maximum level by the end of the game. We can decide that breakdown here. Maybe killing things is the most efficient means of leveling. Maybe it’s completing quests. Maybe it’s exploring. What factors might affect this? In World of Warcraft, for example, grouping up will split the experience earned from kills among group members, lowering the LPH from killing things. We have to make sure that we tune the LPH of the various activities in aggregate to match the target LPH for the full game. We can then break down the components for the activities… traveling, interacting/talking with NPCs, fighting, etc. as well. Having a target LPH can also be used to check for efficiency - if an activity has a higher LPH than average, it can potentially be used to advance faster than we expected.


Let’s assume we have a 40 hour game with 40 level rewards to distribute, we can expect one new level roughly every hour. This means that our level-appropriate activities should add 1 LPH. If we want a quest-centric game, we could make quests provide +0.75 LPH and the mob killing associated with it provide +0.35 LPH (and have most of the quests require killing stuff), so the player can do both at the same time. If we wanted to emphasize the killing, we could make quests only +0.2 LPH and the killing 0.9 LPH. We can adjust these ratios as we like in order to direct the gameplay experience that we want for the player. You might have noticed that I had these examples add up to over 1 LPH at perfect efficiency. That’s intentional - we don’t expect players to be perfectly efficient, so we build in a bit of buffer for them. 

If we decide we want 1000 experience to gain a level, this means that we’d want quests in a quest-heavy game to provide 750 experience per hour and killing things 350 experience per hour. If we then extrapolate that to mean that we expect the player to complete 10 quests per hour and kill 70 things per hour, then we can figure that one quest should reward 750 / 10 = 75 exp per quest, and killing 10 things should yield 350 / 70 = 5 exp per kill. We can then try these values to start with for our playtests and see how they feel.


You may have realized that what we’re basically doing here is working backwards from our goal to calculate what the exp reward values should be. That’s no coincidence; it’s the core of systems design. We’re starting with the sort of play experience we want the players to have on a macro level, and breaking it down into systems and formula by using math. This is what systems designers do - they look at the large scale goals and the experience that they want the player to have, and break it down into a bunch of numbers and formulas that will take the players to the goal. Unsurprisingly, this means that there’s often a lot of spreadsheet work involved with these calculations. The actual math here isn’t particularly difficult, but it can be very fiddly because of all of the potential factors involved. The math also is not the end-all and be-all of it. It gives us a point to start with - tools with which to work. Once we’ve built the foundation with it, we can then play with and tune them until the experience feels fun and engaging. That’s a critical part to it too. It’s like constructing a cyborg - you need both the mathematical robot aspects of it as well as the human feeling parts to make it really live.

Got a burning question you want answered?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *