Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I've written a fair number of games that have RPG-like "levelling up," where the player gains experience for killing monsters/enemies, and eventually, reaches a new level, where their stats increase.

How do you find a balance between player growth, monster strength, and difficulty? The extreme ends of this spectrum are:

  • Player levels up really fast and blows away monsters without much effort
  • Monsters are incredibly strong and even at low levels, are very difficult to beat

I've also tried a strange situation of making enemies relative to players, i.e. an enemy will always be at 50% or 100% or 150% of player stats (thus requiring the player to use other techniques instead of brute strength to succeeed).

But where's the balance, and how do you find it?

Edit: For example, I am expecting to hear things like:

  • Balance high instead of balance low (200 HP and 20 str is easier to balance than 20 HP and 2 str)
  • Look at easiest vs. hardest monsters, and see what you have in terms of a range
share|improve this question
    
This is a very good question. It would be nice if there was some theoretical work behind this issue. –  axel22 Apr 6 '11 at 13:14
    
That's exactly what I want to know. I'm sure there's some systematic process you can apply to get this mostly right. –  ashes999 Apr 6 '11 at 13:54
    
Imagine a scenario where all monsters are the same difficulty, same strength and the player doesn't get stronger. This solves the problems you mention. There isn't a systematic process. Realistically to keep a curve and prevent incredibly hard monsters use common sense, basic maths skills and playtesting. –  CiscoIPPhone Apr 6 '11 at 14:17
    
That's what I do already. And I'm sure that someone has found something of a better approach. –  ashes999 Apr 6 '11 at 14:23
3  
I think that there may not be a general answer to this question, but only due to the fact that a theoretical background has to be based on a very specific question. A theoretical work could define a metric of difficulty, and introduce formal definitions concerning game rules. Based on that, it could prove that for a given difficulty you have to do this and that. To give an example: One of the answers below mentions Kingdom of Loathing, which has very specific formulas about how monsters progress - these formulas apply to that particular game with its own set of rules. –  axel22 Apr 6 '11 at 15:05

10 Answers 10

up vote 15 down vote accepted

Playtest. No, really, just playtest your balance until you get it right, or rather mostly right (there's no such thing as perfect balance).

Write automated tests and run them hundreds of times. Even very simple automated tests, like "level 2 player always hits with shortsword, goblin always hits with club, player should win" can really help, if you run these tests often (generally, whenever you change anything). Also, test balance by playing. Whenever you find some new potentially balance-changing tactic, write an automated test for it.

share|improve this answer
    
Writing automated tests to test that the game is balanced is brilliant. Cheers. –  ashes999 Apr 14 '11 at 14:17

One problem with making enemies strength relative to players is that it can make the player feel like they aren't making progress. "What's the point of getting stronger if all the monsters also get stronger at the same rate?"

I tend to prefer that enemies have static strength instead of being relative to the player for the following reasons:

  • Players will notice the effect of getting stronger (and believe they have progressed).
  • Players will be defeated by strong monsters, and this will give them something to aspire to and achieve.

Of course there are negatives also:

  • Areas containing weak monsters can become redundant
  • Some players may find that the time they need to invest to beat a particular monster is too long

Player levels up really fast and blows away monsters without much effort

You can prevent this by decreasing the exp received from a monster the higher the players level is over the monsters level - in essence removing the motivation that player has to fight easily blown away monsters.

Monsters are incredibly strong and even at low levels, are very difficult to beat

This should never happen due to play-testing.

See also: How to implement an experience system?

share|improve this answer

To a certain extent, you can use math to manage this process. This is the approach Wizards of the Coast used with D&D 3.x and 4. Figure out how many battles you want between levels, and base how much XP battles give you based on that. Do you want it to be easy to level by fighting lower-level monsters? Then choose a flatter XP curve to make that a feasible strategy. On the other hand, you can discourage grinding by making lower-level monsters give much less XP than the player needs to level.

If you've got random encounters, make sure to take into account the average frequency of battles. You don't want to force players to grind for hours to progress the main storyline. Conversely, if your encounters are all manually placed, make sure there are enough of them to level the PC(s) appropriately.

I second the dislike of auto-leveling monsters to match the player level. You want to give the player a feeling of progress, which means they should always be able to see monsters too powerful for them and monsters too low-level to be challenging. As an aside, try and make it so that higher-level monsters have something special and advanced about them that goes beyond sheer statistical advantage. There's no difference between fighting a plain 100hp monster and a plain 1000hp monster if your attacks at the time do 10 damage and 100 damage respectively.

share|improve this answer
    
+1 Let the outcome determine the numbers, not the other way around. –  corsiKa Apr 6 '11 at 22:25

Experience curve balance is a game design choice. Only you know the way you want your combat system to work, the amount of time you want someone to spend on one level, the number of combats you expect a player to take between levels, the proportion of battles a player is expected to win, the magnitude of the numbers you want to display to a player, whether you want the experience-per-level to go up each time or not, whether any or all of these factors should change over the course of play (and in which direction), etc. Choose the experience you want, then do the mathematics to work out how to get that.

share|improve this answer

Group monster difficulty by region. Allow the player to select the region.

E.g.: Level 10-12 monsters go in zone A, level 12-15 monsters go in zone B, level 15-18 monsters go in zone C. The player is level 11. Lock zone C away from the player. If the player tries zone B and it is too difficult, allow the player to leave zone B and try zone A instead.

Player strength and player skill both affect how difficult the monsters are for the player to kill. By allowing the player to implicitly choose which monsters to fight, you take both into account.

If your game is linear (the player cannot choose a path or physical region), then spawn weaker monsters up to some lower bound if the player is killing the monsters more slowly than you expect.

share|improve this answer
    
That sounds very much a strategy for static maps. What if my game is 90%+ procedural, like a rogue-like? –  ashes999 Apr 6 '11 at 13:52
1  
Then do as I suggested for linear games. Hand the player more a couple more difficult monsters, if he doesn't perform well, then reduce the monster level, until some lower bound. The player will still have a sense of progression, because the worst players will still always hit the lower bound of monster level spawning. –  Olhovsky Apr 6 '11 at 16:57

The following two links show how this is implemented in Kingdom of Loathing (a web-based MMO). Each monster has a given level, and in general the monsters in a single area are all close to each other.

http://kol.coldfront.net/thekolwiki/index.php/Monsters

http://kol.coldfront.net/thekolwiki/index.php/Advancement

share|improve this answer

The absolute best balance is to combine the two standard methods used in most games for determining monster strength. That is essentially a level range is selected for perhaps a region, or a monster type, and then the system attempts to auto balance using the relative strength of the player.

The benefit to this is that it allows you or your designers in the future to retain some form of control over where the player should find the best rewards for the difficulty put in, while still not being as easily gamed by simple grinding, though obviously it should be mentioned that setting the possible level ranges should be refined through playtesting to find an appropriate range.

The only other thing that is very important when using a system like this, that generates monster difficulty on the fly, is that you save those difficulty settings once they are generated. This is very important, or otherwise you end up with a situation like Bethesda ran into with Oblivion. That game used an almost entirely systematic approach to monster difficulty, and as a result a number of players expressed concerns that they did not feel like they were leveling up at all, since every time they visited a new area (or even returned to an old area previously explored in which they knew how difficult the monsters were when they were there the first time) they found that the encounters were of very similar if not identical difficulty.

Finally the last thing to remember, there is no "best balance". If you want to make your game incredibly difficult, then feel free to increase the average monster strength, if you want it to be easier smooth out the player leveling curve. The exact balance of your games difficulty is not nearly as important as it's consistency, nothing is more frustrating than a game with a difficulty curve that flies all over the landscape.

share|improve this answer
    
Can you give me a numerical example of the range + auto-balance? –  ashes999 Apr 6 '11 at 13:53

Your percentage idea looks great to me, let your player choose if 40% or 180%. This way more people will like your game, casual player and pro, everyone will find his 'ideal' difficulty.
Of course, score, bonuses and other difficulty related values should be based on this percentage.

share|improve this answer
    
I think you misunderstood. Individual monsters have their own difficulties. Eg. an Uber Dragon would have a difficulty of 180%, while a Small Slime would have 10%. –  ashes999 Apr 6 '11 at 14:25
    
@ashes999: oh.. sorry then :) –  BlackBear Apr 6 '11 at 18:00
    
No worries. I upvoted because I still like your idea. –  ashes999 Apr 6 '11 at 18:05

My game balance is as follows:

I reduce points to simple offensive/defensive points (instead of a slew of attributes - STR, INT, DEX, etc... that only cause game devs headaches trying to balance throughout the game experience -- not everything has to be D&D peeps!) and add a Proficiency Modifier that increases proficiency (per character level) of the offensive "weapon" / defensive "shield" that the player chooses to mostly use based on the personality of the character they wish to play (keeping ROLE-PLAYING king, keeping game balance intact).

This means that no matter what weapons/armor a PC wishes to use at the start of their new level, they ALL have the same effect, averaging out damage per turn (therefore the choice is simply a role-playing aesthetic), until you actually use one more often than the other.

However, the more damage done by a certain weapon choice, or the more defense done by a certain defensive, will receive behind the scenes Proficiency Points that increase their favorite weapon/defense's proficiency during that character level.

At each level, the character can choose to abandon their particular off/def strategy, or keep it in tact. This is, again, a role-playing choice, with NO advantage/disadvantage upon arriving at the new level until the player decides to use one tactic (OFF vs. DEF) over another, at which point they will accumulate (behind the scenes) Proficiency Points for using their favorite weapon/defense.

The caveat here is that once you level up, your now under-levelled weapons and defense still hit as hard/protect as much as your level demands, but they also become less effective (until they don't work at all -- weapons/shields break, magic loses it's off/def oomph), on an exponentially descending scale, forcing the player to reevaluate it's use of under-levelled weapons/defense tactics, over upgrading their favs to the current level (for a price, of course), or finding weapons they would rather have that's copacetic with their current level.

This allows for players to upgrade their favorite weapons/defensive measures (for a price) to their current level or journey (quest or explore) to find better weapons that suit their current level (once again, keeping the game balance intact).

The overriding point is, Role-Playing should not be forced into classes, My toga wearing, staff-wielding monk should be able to do as much damage per level as a steel-armoring wearing, sword-slashing tank. (this whole idea, btw is relegated to a single player CRPG so that comparisons between what IS and what COULD BE is eliminated). You simply play AS YOU WISH TO PLAY, and no harm is done by choosing a "class" over another "class" based on a bevy of stats.

It all falls apart, I think, when playing pen-and-paper. :)

share|improve this answer

Difficulty is perceived as a combination of time, risk, and meaningful choice. RPGs usually start off with small encounters that are very quick, have little risk, and little meaningful choice. This continues while the player is learning the game and the character they are playing. As new abilities are introduced, more meaningful choice is introduced. Do you use poison at the start of the fight or just go for direct attack. Along with this comes longer fights and more risk. If a player can kill a creature in 2 basic attacks or 2 special attacks, there isn't much choice. You need more granularity to have more meaningful choices.

To get to this sort of growth, you need to control the length of encounters. In large scale development, this is done with formulas, which are much later fine tuned after extensive play-testing.

Formulas are written only after requirements are established, and are generally used as a baseline for fights. You can create variations of the baseline after you have established the baseline.

Answer some basic questions such as

  • What are the level ranges you are dealing with
  • How long should a fight last (seconds for an action game, rounds for turn based)
  • What comparative range of enemy levels should be considered a normal encounter
  • Should this balance change at higher levels?

Lets take a simple example using only damage and health, with a level cap of 20. The base enemy has 10+5/level health and the average damage per round of the player is 8+2/level. You can put those equations into Excel and you come out with something like this:

 LVL    HP  DMG TTK
    1   15  8   1.9
    2   20  9   2.2
    3   25  10  2.5
    4   30  11  2.7
    5   35  12  2.9
    6   40  13  3.1
    7   45  14  3.2
    8   50  15  3.3
    9   55  16  3.4
    10  60  17  3.5
    11  65  18  3.6
    12  70  19  3.7
    13  75  20  3.8
    14  80  21  3.8
    15  85  22  3.9
    16  90  23  3.9
    17  95  24  4.0
    18  100 25  4.0
    19  105 26  4.0
    20  110 27  4.1

If you want to increase the time to kill (TTK) for later levels, you could either increase enemy health scaling or decrease player damage scaling.

Of course this is only one dimension of the combat. You would have to create another set of formulas for player health and enemy damage. The TTK for the creature vs the player should be higher (it should take longer for a creature to kill the player than visa versa), but the closer you get to 20, the closer the numbers should get, for increasing difficulty.

Add in avoidance and mitigation requires you to combine the damage formulas with the mitigation % or miss chance to determine the actual average expected damage. The damage values above would be the target numbers for each level that you try to balance around.

Once you have squared away your baseline creature, then you can create variations, such as glass cannons that do high damage but have lower health. If you put in the work at the start to build a good baseline enemy for all level ranges, then creating new enemies that are near balanced is actually fairly simple.

share|improve this answer

Your Answer

 
discard

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.