Balancing races and classes
If you don't know how to use a spreadsheet to it's fullest potential (e.g., functions and equations), then learn how, it is a very valuable ability.
The general idea seems to be to spread your classes/races, attributes/statistics, abilities/resistances, etc. out in some cohesive way. Then start with each class/race equally matched (all values equal). As you make changes to one number, related numbers should be changing automatically (based on some function or equation).
A very simple example would be 2 classes, 2 attributes: Strength and Speed.
Popular culture dictates that the higher Strength is, the lower Speed is, and vice versa. So as you increase the Strength attribute, the Speed attribute needs to be decreasing in some way that "makes sense". (e.g.) You could have a "brute" class that is very strong but very slow, and a "swift" class that is relatively weak by very fast.
Obviously this all depends on exactly how your game mechanics work. If there's no advantage to 'being fast but weak' or 'slow but strong', then the above example doesn't really 'make sense' any more.
Now expand on that example and add the attribute Intelligence. This has to factor in somehow with Strength and Speed. Again, popular culture dictates that in most cases, as Strength increases, Intelligence decreases and vice versa. So the 'brute' class becomes 'dumb brute' and the 'swift' class becomes 'swift mage'.
The above example only describes the 'local' balance of each class.
There is also a 'global' balance that must be addressed. For example, if you give one class god-like Strength, the other class better have god-like Speed or some powerful combination of Strength/Speed/Intelligence.
Hope this helped.
[Edited by - swordfish on February 28, 2007 2:07:10 AM]
This way you can see if there's any outstanding potential-advantages, such as a certain race/class combo with the 'perfect' combination of stats being able to exploit a certain weapon or ability unfairly.
My advice would be to try and develop some sort of way of estimating how useful each skill is, so that you can measure the power available to each class.
Next, ignore that, and work out what the game 'could be' played. Take a look at your incentives, and what powers you grant. Try to figure out the most abusive combinations of abilities. See if you can generate combinations that are significantly better than they 'should be'.
Note that the lifetime and intercommunication of your players impacts how important imbalance is. If the game is novel enough, not all players will figure out game breaking strategies, and if there isn't a community, it won't be communicated that fast.
1) attack speed
2) hit %
3) damage rate
Over the course of a long term (whatever the longest attack speed is would be the minimum) this should be equal for all classes.
Additionally, you have to consider the damage that they can take over that same period. This gives you a "risk/reward" curve. A mage can't take much damage, for example, but taking that risk will reward you by packing a powerful punch.
From a logistical standpoint, one way of balancing things automatically, is to write a simulation that selects and tweaks these parameters, pit them against each other, and throw the whole thing into a genetic algorithm. The longer and more balanced the battle, the closer you are to the optimally balanced solution. But that whole thing is a bitch to do, so you use a spreadsheet for starters and then tweak in beta with playtesting.
Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit
Author of the book, Behavioral Mathematics for Game AI
Blogs I write:
IA News - What's happening at IA | IA on AI - AI news and notes | Post-Play'em - Observations on AI of games I play
"Reducing the world to mathematical equations!"
why do all the work yourself? Some of the fun of playing a rpg is costumizing your character. If you balance the advantages and disadvantages of talents and attributes then leave the rest to the player. It will most likely even out from there...
well I hoped I somewhat helped
Take the classic examples of Warcraft/Starcraft. I Warcraft, the humans and orcs had a 1:1 correlation between units. HumanA had OrcA on the other side. Really, the only difference was the artwork.
In Starcraft, when they had 3 races, they designed it so that there was no correlation between units. In fact, the races' build styles, unit styles and, therefore, play styles differed significantly. However, all other things being equal (i.e. player skill), the 3 were fully balanced. No one had an advantage. Sure, Humans and Protoss had no equivalent to a Zergling rush, but there were advantages for the others as well. THAT was masterful game balancing. If that had not been done, all the players would have eventually gravitated toward whatever race had the advantage. This is what you are trying to avoid.
Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit
Author of the book, Behavioral Mathematics for Game AI
Blogs I write:
IA News - What's happening at IA | IA on AI - AI news and notes | Post-Play'em - Observations on AI of games I play
"Reducing the world to mathematical equations!"
What this means is that you have to balance the concepts of each class in the game. This is very dependant on the type of game you are making.
In a Team based game, where the player(s) control a group of characters, then the conceptual balance is that each character must have something to do.
What each class has to do is also dependant on your game. Take a Cyberpunk genera game for example: You would have characters that would be good at combat, soldiers and such, but you would also need a Netrunner to hack security systems and such. And you might also need a character that would have all sorts of contacts to get your group the jobs in the first place.
If you wanted, a single character could do this, but then you are getting out of the Team based gameplay.
Now, for single character games, the character conceptual balance is quite different from the team based games. With single character games, the player only has access to the limited skills of a single character. And as the game must be able to be completed by using any character classes, they must be equally capable of dealing with the same situations in the game.
This does not mean that the characters have to be identical, but they must have their own ways of dealing with the exact same situations.
For example (using the cyberpunk genera again), there might be a guard station that is checking IDs at the entrance gate of a compound. The soldier character should be able to fight their way in (where as the other classes would have difficulty), the Netrunner could forge some IDs, and the class that has a lot of contacts might be able to purchase a valid ID.
In a team based game, you might still offer the same options, but you are under no obligation to make all classes have the same change to get through. In a team based game you might remove (or not include) ways for certain classes to get through the gate (like the gate house might be well staffed by other soldiers and would be difficult even for a team of soldiers to get through).
As you can see, this kind of balance does not just rely on crunching stats and using spread sheets (that is all system balance - necessary, but not the only form of balance).
So, before you can really start system balancing, you must first balance the class concepts. And to do that you need to know if it is a team based game, or a single character game.
If it is a team based game, it make sit a bit easier to balance the concepts as each class concept only needs to have a few things in common with any other class and the more unique you make each class the better it is.
With a single character game, concept balance is harder as each character must be equally capable as any other character, which means that each situation (enemy, puzzle, etc) must have a way for each class to solve it (or avoid it).
Only once you have this sorted out can you really make progress on system balancing.