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.

Suppose a player can construct a robot built from various parts and each part costs money. How would you balance the cost of a weapon against its capabilities? What about balancing weapons against other parts?

The base case seems pretty easy: imagine the player can only buy weapons and everything else on the robot is the same. A machine gun that fires 1 bullet per second costs $100. A super machine gun that fires twice as fast could cost twice as much. But what about an ultra machine gun that has four times the range?

Now imagine the player can add other capabilities to the robot like better speed or armor. How do you relate the cost of a machine gun against the ability to move very quickly, or to be stealthed against radar?

I understand that there's a later stage of experimentation where costs and capabilities are adjusted, but where do you start from?

share|improve this question
add comment

4 Answers

up vote 7 down vote accepted

Here's a rough strategy I've used to balance similar systems in the past:

Decide on a base metric of balance value. A good first pass if you don't have a better idea is "damage done to others". So a power that only does 10 points of damage is worth 10 "balance points". Now, you need to compare armor to damage in usefuless, so see if you can come up with a good metric to convert it. For instance, let's say that the average robot does 10 damage per second and has a total of 100 hit points. So each robot can last an average of 10 seconds under direct fire. An ability that increases your survivability from 10 to 12 seconds is then worth 2 seconds of damage, or 20 "balance points". You then modify these balance points based on the cost it takes to execute, so for instance an ability that does 10 damage with a 5 second recharge can be worth 1/5 as much as an ability that does 10 damage with a 1 second recharge. You can create similar conversions for abilities such as movement (which increases damage given and reduces damage taken) and stealth (that can reduce damage taken) and make up some initial factors.

An important thing to remember is that all of these initial conversions WILL be thrown away eventually. It's very unlikely that 2 seconds of survivability is ACTUALLY worth 2 seconds worth of average damage, and your testing will show which of your base assumptions are incorrect. But, this gives you a system for creating initial values and one for evaluating the results that fall outside your expected balance.

share|improve this answer
add comment

I'd set up a few automated test.

  1. Two robots, exactly the same. The win/lose ration should be exactly 50/50. Then give the new item to one of them and see how much the ratio changes.
  2. Two robots, one slightly better than the other to guarantee that it always wins, generally taking X seconds to win. Give the item to the better robot and see how much faster (if any) the average kill takes.
  3. Same as 2, but giving the item to the weaker robot, see how much longer it lives and/or if it starts winning now.

You now know how much of an improvement an item is in various conditions (even matched opponent, better matched opponent, weaker opponent) and can price the item accordingly based on your intuition. These tests should be run many times (possibly overnight) and the results averaged together for best results.

share|improve this answer
This is actually quite brilliant, cheers. +1 albeit the first line could be a comment on the accepted answer. –  ashes999 Feb 24 '12 at 0:55
add comment

Pick arbitrary figures and follow a tight test/iterate loop.

Sure you can do some initial math (like you suggested for pure damage based items), but at the end of the day the best thing you can do is put it in front of people constantly and tweak them after the fact.

share|improve this answer
Even with tight test/iterate loop, no value whatsoever should just be pick arbitrarily. That is just bad design IMO –  paan Jul 22 '10 at 8:54
add comment

For very obscure properties, like sprinting or limited stealth, you may have to try random numbers or rough guesses that you tweak.

I'd highly recommend setting up a way to repeat tests with robots of various configurations under AI control. Run numerous trials with a configuration to find out how powerful it compares to some baseline robot, and then you can improve the baseline along established upgrade paths (higher damage, higher fire rate) until the match becomes more even. That helps you figure out the equivalence of stranger abilities that are harder to quantify.

A similar trial set-up with a human player going up against AI could be helpful, by repeating with increasingly improved AI robots. The performance curve will shed some light on the impact of a given upgrade.

share|improve this answer
add comment

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.