http://feeds.feedburner.com/~r/mudreading/~3/189668005/balance
Balancing games is hard. This article is dense and math heavy, but it demonstrates a way to make balancing work, because although it’s hard, it isn’t impossible.
Experimental balancing (And why it’s bad)
Here is the classic scenario. You’re playing your favorite character, and you find something interesting: your Ice Bullet spell kills Fire Imps in one hit, so you can defeat them with no damage or risk. Fire Imps have Fire Gems which sell for 200 gold. There is a cave with 5 Fire Imps that respawn every 5 minutes. Woohoo! You found a way to make 200 gold per minute.
Then someone who works on this MUD notices and decides that 200 gold per minute is way too much. So they do something to fix it, such as:
Nerf the class. Take away the Ice Bullet spell.
Buff the Fire Imps. Make them more dangerous.
Reduce the Reward. Make Fire Gems worthless.
This probably fixes the situation. However, here are the problems with this approach:
- The damage is done. Somebody made a killing and has more gold than they should.
- The player is pissed. They feel they should be rewarded for their clever find. Sometimes admins will think the player is cheating or abusing the system, but really, there should be cases where players find cool ways to get money, how do they know the difference between the intended and unintended ones? They don’t. Don’t be mad at the player; be mad at your unbalanced game!
- The fix may not work. The admin’s intuition may under-balance or over-balance, making it still too easy to get money, or even too hard.
- Unintended side effects. This is a big one. If you take away the ice bullet spell, other enemies may suddenly be too hard. If you buff the fire imps, other classes may have too much trouble with them. And so on.
Quantitative balancing (And why it’s good)
You might not like this, but it involves math. If you don’t know a spreadsheet program, it’s time to learn. I really like Google Docs.
First things first. You need goals. One problem with experimental balancing is that there is an idea of “all classes should be equally powerful” and “all ways of spending time should be equally cost-effective” and so on. That’s not specific enough. Here are some example goals that you can probably come up with for your MUD:
- A player should be able to make 300 gold per day
- A player should be able to kill enemies their own level fairly easily
- A player should gain 1 level per day.
This is a good starting point, but from here things need to get drilled down on.
300 gold per day is good, but since players don’t play 24 hours a day, you need to figure out how many hours they do play. Take a look at your logs, take a poll, or whatever you can manage. Let’s say your players play on average 3 hours a day. Therefore, they should be able to make 100 gold per hour. Players who play more will make more and players who play less will make less. Let’s assume that’s OK, because it would take a fairly unconventional approach to do otherwise.
An hour is still too big a unit of time to compare to how long most tasks take, so let’s go with 1.6 gold per minute (GPM). Now, for your game to work, all tasks should provide, on average, 1.6 GPM. Allowing for random fluctuation of course.
Let’s say you have a foraging system. It takes 15 seconds to forage an item, and you get one of 3 items. One item costs 24 gold, one costs 12, and one costs 36. They’re all equally likely to be found. Is this balanced? Yup! On average, the player makes 1.6 gold per second.
What about killing fire imps? Let’s say it takes 30 seconds to kill one on average (How do we get 30 seconds? Hold that thought.). The fire gem should cost 30 times 1.6, or 48 gold. Congratulations! You just balanced combat with crafting. Your high-level goal of 1.6 GPM made it possible to balance things that have nothing to do with one another.
Not only did we balance unrelated systems, we also had none of the issues that arise when fixing problems after the symptoms emerge.
Let’s do this with Combat
Of course, it only gets more complicated, but I’m going to chase around some common complications to show that everything can be quantified. Let’s talk about the 30 seconds it took to defeat that fire imp.
DPS vs. HP is the name of the game. DPS is Damage Per Second, and HP is your usual Hit Points or Health Points or whatever-you-call-them. All combat can be boiled down to whose HP hits 0 first given their opponent’s DPS.
But it’s complicated. Armor, weapons, strength, skills, all play into it. Is it too complicated though? No! Make a list of everything that can play into combat. In my example game, here is my list:
- Armor resilience
- Weapon power
- Strength of attacker
- Constitution of defender
- Swords Skill
- Extra Skills like ‘Kick’
Its easy to get inundated with these factors, so get back to the high level. Let’s decide what a player’s DPS should be on average. Let’s say it’s 5.
What if my sword does 1d6, and imp armor reduces damage by 3, and my strength increases my damage by 1d2, and the imp’s constitution reduces damage by 1, and my extra “kick” skill does 1d6 damage with a cooldown of 20 seconds.
1d6 is 3.5 on average, reduce by 3 is .5, increase by 1.5 is 2, reduce by 1 is 1. The sword does 1 damage on average. In our combat system you get an attack every .5 seconds. Your DPS is 2. You have to add the kick skill onto that, though. 3.5 damage every 20 seconds is 1.75 DPS. So your total DPS is 3.75.
Ugh, that was a lot of math! But we got somewhere. If we want the imp to die in 30 seconds, we need to give them 3.75 * 30 HP, or 105 HP. Score.
But all for what? We figured out one imp’s HP. We can’t do that for every enemy in the game! Well don’t! Figure out the intended result first.
Just like you want players to make 1.6 GPM, pick a value that makes sense for your DPS and make everything conform to that. Let’s stick with 3.75. Now we know players will usually have 3.75 DPS, so when we design that imp, it’s easy to figure out how many HP they should have without doing much work.
The reason I listed the factors that played into the DPS is simple: this only works for a preset list of things that factor into DPS. If players can wear an infinite number of Fire Gems that increase damage by 1, you’ll never balance things out. If usually bracers don’t increase damage, but there is one pair that does, all else being equal that pair is unbalanced, because it increases your average DPS without taking anything away.
Next time you can work backwards. Take your 3.75 DPS and split it among your various combat factors: Weapons do on average 2 DPS, armor reduces 1 on average, and have it balance out.
OK, I know you’ve been thinking about this already, so here it is: players need to improve with time. Choosing 3.75 DPS for everybody is not possible. Instead, choose a range. Say 1 DPS is for totally fresh new characters, and 10 DPS is for the most powerful characters possible. Everyone else should be somewhere between. Same goes for GPM: Say that skilled characters should make 100 GPM, and unskilled ones only make 10. For your forage skill, make the items you get appropriate to your skill, in that they result in a GPM that reflects your place in the range. For enemies, make their HP such that they can only be killed by someone of a specific skill level, then make the loot appropriate for someone of that skill level.
Summary of what we’ve done so far (You still with me?)
Things are still being oversimplified, but I can’t describe a whole game engine in this article. I think I’ve demonstrated enough of my process to get the point across. The summary is:
- Create goals, which are generally of the form “something per unit of time.” I used damage per second and gold per minute, but it can be anything, such as experience per minute. Make these goals into a range for inexperienced to experienced characters.
- Break down the factors that result in a player’s value for these goals. Strength and weapon power are factors that eventually result in DPS. Create a finite number of these factors. Create an individual value for each factor. 2 DPS for weapon, 1 DPS for strength, and so on. Again, they should be ranges over experience. Make it so they add up to your goals.
- Make sure every factor matches its expected value. Make sure all swords for experienced players do about 2 DPS.
Let’s do this with experience and rarity
Mix in some other factors. Rare weapons might do more damage than your allotted DPS for weapons. Rarity might seem like something that you can’t manage as a balance factor, but you sure can. Let’s say fire imps have a 1% chance to drop a fire sword. Fire swords do an astounding 1d2, or 1.5 DPS! If your average DPS for an inexperienced player is 2, and your average DPS for a sword is 1, then your inexperienced player just got 2.5 DPS. This effectively, and instantly, made them better than a typical inexperienced player.
If you can defeat a fire imp every 30 seconds, and they have a 1% chance to drop a fire sword, it takes, on average, 50 minutes to get a fire sword. Using experimental balancing, you might be tempted to drop the chance to .001% or something, but resist the urge. Think about your goals again.
Here we need an experience rate goal. Let’s say you want it to take a year to create a fully-experienced character. Break down that goal. If a newbie does 1 DPS and a master does 10 DPS, you need characters to be able to improve their DPS by .83 every month. There are 30.4 days in a month on average, so that’s .027 DPS per day. And our average player plays 3 hours a day, so that’s .009 DPS per hour. Phew, that’s not much!
So, back to our fire sword. At 30 seconds per imp, you can defeat 2520 per week. Yes, no player would ever do this, but since everything is balanced, we can assume anything they do is no better or worse than killing 2520 imps. That may be a bit of a leap of faith, but its mathematically sound. If we make a fire sword drop .04% of the time, that means you’ll get one roughly once a week at this rate. The player spent 21 hours, so 21 * .009 DPS per hour experience rate gives us .19 DPS. If the sword does 1.19 DPS, up from the 1 DPS it would do if it was normally balanced, then the sword’s being unusually powerful lines up with the expected rate of improvement for a character.
What about experience points? Again, you need to break down your rate-of-experience into factors. Experience points, rare drops, skills bought from trainers, and so on should all have their own expected rate-of-experience values.
What else? (We’re not done yet?)
I’m not going to go through these, but this system could be applied to:
- Hunger. How much food should you be able to get in a day? How much do you need?
- Crafting. What did the source material cost? How long did it take to get it? What is the cost of the item I created?
- Class balance. You cast magic. I use swords. We both need the same DPS in the end.
- Elements. Fire does extra damage to ice. Earth is strong against wind. Add ranges for “when elements are against you” and “when elements are in your favor” for combat balancing.
This is too hard (You can’t expect me to do all this)
Then make your game do it for you. A coded check to label a weapon as “balanced for newbies” or “balanced for experienced players” based on the weapon’s damage rating is doable. Then you only have to do all this math once, and as long as builders respect the balance info, you’re good to go. You can even go in reverse, and have a flag on weapons that label them as “expert” or “newbie” weapons, maybe “rare” or “common”, and calculate damage values as appropriate. This is usually more intuitive for builders anyway. Micromanagers won’t like it: usually when I suggest this, builders want a way to override the results. “Override” means “bypass the carefully thought out automatic balancing and try to do balancing by experimentation.” But it’s hard to convince people of that. Maybe they’ll read this article!
Keep your big picture in a spreadsheet. The high-level values such as DPS for newbies, GPM for experts, and the breakdowns into factors such as stats, skills, for each.
What about my existing MUD? (Since it rules)
It would be really hard to make a MUD work this way if it doesn’t already. It is a good goal to work toward though. Here are a few suggestions:
- Collaborate with your staff to make your big picture. Everyone can probably figure out what they generally agree someone should make in a day.
- Avoid complicated math. 3d6 seems innocent, but it actually creates the need to do statistical math during balancing and that’s not fun. Do you really need 3d6 instead of just 3 through 18 with equal likelihood?
- Choose simple over complex unless complex is truly adding value.
- Avoid special items or abilities that don’t fit into your balance goals. If you want to add them, work out exactly what they will do and rework your goals if needed.
- Why increase armor by 5 for 15 seconds when you can decrease damage done by 1.2 for 15 seconds? Its much easier to balance if you have a DPS goal.
Conclusion
In the end, I know no MUD has ever been made from the ground up with this approach, and while it’s certainly possible, it’s hard to say for sure how it’d turn out. I’m too busy with other things to pursue it right now, but I’d really like to. However, some of these ideas do often work their way into how I run the MUD I work on, so hopefully you picked up some food for thought or even helpful ideas on improving some other MUDs.


