When we think of game balance we often think of "Rock-paper-scissor". It has become short hand for a perfect balanced game where each move have a perfect counter. The problem with Rock-paper-scissor is not that it is a unbalanced game, but that it isn't fun. The more I develop games, I realize that this definition of balance breads a bad mindset that creates less fun games because its a form of balance that precludes strategy. If i select paper you dont have to think very long what you would do to counter me. All the strategy is embedded in the rules instead of letting the player be the one who provides them.
In chess the different pawns have radically different powers, yet any pawn can be the one that puts the opponent in check matte. In the chess community there is a ongoing debate how to rate the value of the different peaces, yet their true value in a game of chess is always in the end determined by how the player chooses to use their peaces. The power of a chess peace is chiefly decided by its position on the board. In the hands of the right player any pieces can take any pieces. This is a radically different view of balance where the game doesn't become unbalanced just because the queen can do more then a pawn.
In my opinion the goal of balance is to make everything overpowered occasionally, but make nothing overpowered all of the time. The goal for any player in any game should be to try to get in to a situation where the tools available to the player becomes overpowered. If nothing is ever overpowered the game becomes pointless because no strategy is better then any one else. Just like in Rock-paper-scissors.
The strategic element of game should always encourage the player to be creative and reward innovation and knowledge by empowering the player when he or she does something smart and creative. When designers create units, weapons, abilities or mechanics they too often have a play style in mind. A tank, medic, sniper or spy have by their very classification taken away freedom from the player by telling the player how the classes or units are meant to be played. Instead i advocate making units with an interesting collection of abilities and stats that do not point to a specific play style. If you give a unit a sniper rifle then put a big bayonet on it, to break up the assumption that the only way the unit can be effective is on a very long range. Often when designers find that new play styles emerges that don't fit their intentions, they nerf the away the creativity of their players in the name of balance instead of embracing it as a part of the game and balance it in order to keep the innovation.
When developing LOVE I was originally very concerned with the potential for any ability to break the game, but now I'm more concerned with things that aren't occasionally overpowered. The trick is to just make sure that each mechanic is only overpowered in a very limited time frame and situation. When i created the pod system with 20 different pods I gave the players a range of very overpowered tools, and to balance them I just made them scarce. As I have developed the character upgrade system I made it possible to to get any pod type the player wants instantly, encouraging a player to be able to see an opportunity and then instantly make use of it. Once the pod is used it has a cooldown period, forcing the player to find a creative use for another pod type. If the player has enough possibilities just thinking of using the right one at the right time can be enough of a challenge that you don't need to worry about any of them are overpowered.
Imagine all the numerous settings that goes in to designing a gun. A few obvious ones comes to mind, like damage, rate of fire, clip size and bullet spread. These are usually not very good if you are trying to make an interesting game that promote different play styles. If you put these in to a spreadsheet it quickly becomes clear what guns are best and players will naturally gravitate towards these guns. But then if you start to actually implement a weapon system you realize that there are huge amount of very different properties a gun can be given. Is it quiet? Does it have a mussel flash? Does it set things on fire? Can it nail things to a wall? Does it give off an electric shock? Is the shock delayed? These kinds of properties are much harder to compare and their usefulness depends much more on play style and opportunities. They are far more primed for player discovery and creativity. Damage per second and other under the hood numerical settings should only be used for fine tuning not to set options apart. This is especially true when you can combine elements. Making a near sighted artillery unit, may not be as asinine as you think if it means that players can experiment with using other units as spotters.
Another common problem is that game designers think that they need to give all options drawbacks in order to balance them. Team fortress is a great example of a game where rather then choosing what abilities I want, I feel like i have to decide what disability I can live with. Do I want to be slow? Not be able to turn while I shoot? Not be able so shoot without scoping? Only be able to shoot 3 shots before i need to reload? Ten people with different superpowers can be just as balanced as ten people with different disabilities, its just much more fun to play a super hero. If something is fun and overpowered, maybe you should make everything else as fun and overpowered too rather then try to nerf away the fun?
The reason we want to make games fair, is because unfair games aren't fun, but if our method making the game fair is to take away the fun then what is the point?