My program doesn't have bugs. It just develops random features.
Game balance is something which it seems a lot of developers out there, amateur and professional alike, overemphasise. What is game balance? It is the level of equality in value of all choices a player (or bot) can make. Now, game balance is important, but not in a strict way. Should a game have any lasting enjoyment to it, the choices available to a player should amount to more than a dry technical weighing. If the numbers going into damage, strength, or whatever you are working with are so important that they need to be perfect, then your player can logically come to only two conclusions:
- One item is superior and should be used whenever possible. This removes all of the interest gained through variety in your game.
- Two or more items are equally good, and the choice does not matter, so the player's choices really don't mean anything. It's pointless.
How can you avoid imbalance in your game, without making it dry and boring? Let's just say we're balancing weapons right now. The above points become demonstratable. You have three weapons:
One does 10 damage and can attack once a second.
One does 20 damage and can attack once in two seconds.
One does 50 damage and can attack once in four seconds.
The value becomes apparent in the simple math of damage / rate, coming out to 10, 10, and 12.5. You can manipulate those numbers your entire life and never get around the two problems illustrated above.
The Beginning of a Solution
The above example not only demonstrates a problem, but a solution. A player's choice needs to be able to make a difference. In the above example, you might have noticed there are times when the value of the weapons changes.
If your opponent is at 30 health, using the first and then the second weapon will result in 3 seconds rather than four to kill it, despite the better rate of damage. Likewise at 20, either the first or the second will yield half the time to kill the opponent.
I call this the beginning of a solution, however, for a reason. These are situational advantages, and are often overemphasised just like balnace in general is. The fact of the matter is, these choices can be mathmatically weighed and decided on bringing you right back to the original two problems.
Where It's At
So let's take the example into greater detail. Let's talk about a first person shooter. Let's say the first weapon hits so long as the victim is visible, the second is an instantfire weapon, and the third is a projectile weapon. Now we can say:
- The weapon does 10 damage in 1 second if you can see the victim.
- The weapon does 20 damage in 2 seconds if you are aiming directly at the victim.
- The weapon does 50 damage in 4 seconds if you are aiming at the point of intersection between the victim's eventual path and your projectile's path.
Now, the picture has changed. We're talking about conditional statements. Thus, the previous calculated values would be multiplied by a .##% probability of the condition being true. In this case, those numbers are impossible to calculate, but instead hinge, for the first time, on the specific player in control. A good player in a first person shooter is someone able to make those conditions come up true for them more often, and for their opponents less.
So now weighing these options and their worth depends on your best assessment of a player's relative skill with weapons. Hitting someone directly with an instantfire weapon is easier for most than with a projectile.
Understanding that it is these differences in skills, not the differences in power of the weapons, which creates lasting fun. A lot of people love matches with single instant-fire weapons... Avoiding that whole argument all together, I'll just point out a fact from this: This is ground down to a complete lack of balance issues... and I believe it's that which makes them so popular. Not because they're perfectly balanced, exactly, but because it's "all skill." It's a pure contest of ability, but of a smaller set of abilities. Someone is going to win, and the only variable is skill (and ping/fps but let's not get into that.)
So that's really what balance is all about. It's the technical balance itself, but the best arrangement of your variables to allow skill to show through the most. The goal in any game is to win, and your game should do its best to acknowledge who played the better game. Note that this doesn't mean an imbalanced game can let a lesser player win (never, unless the players have unequal access to items. That kind of situation has the same issues but the consequences of a bad design are just worse.) It means that an imbalanced game can make a lesser player appear as good as a slightly better player.
Example: Splash damage weapons. Say you have a simple projectile which does 40 damage to everything in the splash radius. This is a bad weapon... why? Because one player can be more accurate with the weapon, and do the same damage so long as he's within that radius. One can hit the other player directly every time (if that's what he wants) and the other can just barely hit that radius back... and their aiming skills are judged equivalent by the rules of the game. Instead you want a weapon which scales its splash damage with distance, so that it makes a better reflection of the player's performance.
The Facts of Life
In most games you cannot keep track of all the variables which contribute to a player's skill. There are a lot of them. Anything that can vary within a situation is a factor. It's near impossible to plan for them and simply futile. You shouldn't even care... because these are small. Do not expect to have a perfectly balanced game, it's a nice thought, but it's just not happening.
The truth is, as stated before, inbalances in the game distort the judgement of skill. A good game should be rigorous in its list of abilities it tests, accurate in its judgement, and at the same time favor none of them over another. Each little detail doesn't need to be perfectly situated, because the variance in skill is by and large dispersed enough that they will not come into importance.
You might never be good at this. Any good designer will be a good player, this is a hard fact. To make a good game by anything other than luck you have to understand the abilities being tested because you're the one testing. A truly good test in anything is created by an expert, and you must be an expert. This is not to say you've got to be extremely skillful, but you have to understand the skills, which will put you at least in the upper realm of players.
Okay, that was the main point of this topic right up there. I'm guessing the response would have been "duh," or it went over your head. It's really an observation of the definitions of all the things which a designer is working with. So I'd like to move on and just address some little points.
Chance, randomness... it's been used a lot in games. Of course, the reason I'm talking about it here is because of the misuse of chance.
In reality, things are not random. This goes back to causality. There is no little microchip in a gun which decides your shot will vary between some percentage of error from where you aim it. We use randomness to represent systems which are effected by so many minute variables, it would be ridiculous to try and realistically implement them. This is really what we do with computers, simulate things from life–not recreate them.
Randomness, however, does NOTHING for a game's design. Ignoring the possibility of people having oracular powers, there is nothing to do with skill in this. In fact, this is a common misconception with one of my favorite games, poker:
In poker your goal is to make the best five card hand. There are a lot of different varieties of poker, but which cards make the best hand and using 5 of them remains the same. The hand heirarchy is actually determined by the probability of them occuring. Probability plays a big part in all games of "chance" but it is not what poker is about. Poker is about bets and analysing people.
If you walk up to a slot machine and play, you are pretty much an idiot unless you are cheating. I'm sure the people around here are smart enough to know why: You can win in the short run, but the average case is you're going to lose. Beside oracles, which we are ignoring for this discussion, it is impossible for you to have any impact on this outcome. This is as exciting as watching anything else in life you cannot control, and there are places you can do this without spending your own money.
Poker, however, is different. This is for one basic fact: There are two ways to win at poker. One is to have the best hand. One is to get your opponents to fold. If it were merely the first, poker would be a pointless game where you're either just trading money around and possibly giving up a rake (money payed to the house, not the other players, on a per-hand basis.)
So the primary goal of poker, since everyone has an equal chance of having the best hand, is to deceive and read your opponents. To make them think what you want them to think, and to avoid the same from them. So long as your opponent does not have the best possible hand, it is possible to convince them you have a better hand. That's what betting is all about. It's saying "I have a better hand than you do. Think I'm lying? Put out the money and find out." This is why chance is not what makes poker an interesting game, most the time. Chance does allow the better player to lose some of the time, but this is actually a good thing (for the better player) because it tricks more people into putting their money out there. The better player wins over time.
So bringing this into other games... Chance merely makes you look at averages rather than one immediate result. It means the better choice won't always win–but it's always the better choice. It's necessary in some games (like poker) to introduce an unknown quantity which other things can be put upon... by itself, however, it's pointless.
Do not use random variables for whatever unless you have an intelligent reason to. It just uses up more resources.
Foxpaw: Plus random variables can't be simulated client-side either - so there's another reason. Anyways, I was going to post this in response to your comment on my developer journal page but it applies here too, so I'll compile what I was going to say there and what I was going to say here into one:
One of the neat things about Unreal Tournament (and UT2k3) is that the weapons are all inherently different - not just different in fire-rate and damage, there is more or less no two weapons that are used the same. In essense, each weapon requires a different skill or set of skills to use. This makes is very difficult to say that one weapon is "better" than another, though there's certainately statistical favourites. For instance, if you were to go mathematically, the "best" weapon is probrably the bio-rifle. (barring Instagib) It's fast firing, precise, and dishes out loads of damage. Given it's (considerably) greater damage per second, some might say it's the "best" weapon. However, it's still considered by many to be about the worst weapon you could have. Interestingly, some of the most preferred weapons have about the lowest "stats." The shock rifle takes like 3 whole seconds to kill a person, and the rocket launcher is not much better. (it's probrably worse, if you consider the travel time of the rockets.) Anyways, I'm getting a bit off topic.
In UT, the weapons are all pretty much different enough that numerical comparisons are difficult to apply. To take an extreme example, flak cannon versus lightning gun/sniper rifle. Arguing numbers between the two would be totally senseless - it's clear that the flak cannon does a heck of a lot more damage but has a much shorter effective range. In constrast, a game like counterstrike is easy to argue numbers over - all the weapons are pretty much the same. (Then again, they basically all have about the same stopping power anyway, the weakest handgun you can get only takes like 4 shots to kill somebody ;) )
Anyways, I think that's the key thing to keeping the variety - keeping the weapons all different. Otherwise there will certainately arise a favourite, as is noticeable in UT with the enforcer/assault rifle and minigun. This is about the only case where they have two weapons that are virtually identical, only the minigun is basically better in every way. (Technically it doesn't do as much damage as the enforcer per shot, but it shoots a lot faster and is the same style of weapon)
Now then, as for weapons on spacecraft (so the above intro doesn't need to be repeated here and on my developer journal) I agree to some extent that weapons in space are a bit more limited. However, with some creativity there are some things that can make it seem like there's more options. (There isn't really, but stuff that hasn't really been done in ground based FPSs anyway) Also, you can make use of stuff that would just be considered "cheap" on the ground, but may take skillful flying to use in space, thus making a weapon that's too cheap to see the light of day on the ground be a real "skill" weapon in space. Anyways, I'll throw out a few ideas that I had:
- Fast moving projectile weapons - pretty straightforward.
- Energy draining weapons - weapons, projectile or otherwise, that prevent the target from firing or makes them lose energy or whatever. Also, they'd do some damage. The fact that the enemy can't fire back would make this more effective than a more basic weapon, but since it doesn't do that much damage it would take longer to kill an enemy, leaving more time for enemy reinforcements to arrive, or for them to get away in CTF or something. (risk vs reward, sort of)
- Basic instant hit and continuous beam type weapons.
- Area effect type weapons, IE everything near the shooter gets damaged. This would be super cheap on the ground, but in space it's probrably much more difficult to stay close to an enemy that's avoiding you, introducing some skill.
- Persistant damage weapons, like acid or something like that.
- A glue sprayer kind of thing. I was thinking kind of like how the biorifle when charged up splatters - anyways, the main chunk hits something and then if a splatter hits something else than the two things (the thing the main chunk hit and the thing the splatter hit) would be stuck together. (maybe somewhat elastically)
- A projectile that kind of "zig-zags" along a straight path. This would take a fair bit of skill to hit with because you would need the target to be a multiple of a certain distance to hit them with it. (IE the projectile would have to be crossing over it's center point as it approached them) Kind of hard to explain, but I'm sure you see what I mean.
- A projectile that you sort of "charge up" - basically holding the fire button sets a timer on it, so you'd hold the fire button for say a half a second and then release it, the projectile fires out and detonates two seconds after. Or something. Basically the flight time is dictated by the time spent holding down the fire button. THe projectile could do virtually no damage if it impacted something, but the explosion would do lots.
- Kind of like the above, only harder to do and maybe more effective - primary fire launches the projectile, which travels through things without hitting them. Alt-fire makes a sort of "force cage" around the projectile. The projectile would move pretty fast, so you'd have to have good timing to make the cage coalsce while the projectile was very near the target.
- A delayed-fire weapon of some kind - basically you fire the weapon, then the location and rotation of the shot are locked in (maybe the ship could launch some kind of a gun-drone or something to justify the location and rotation of the shot not following the ship that fired it) and a short time afterward the gun fires. This would require something sort of like leading the target, but maybe different. It could be a relatively easy weapon to hit with (like maybe a really fat beam or something) so would primarily serve to force the target to change course to avoid getting hit. It could also work well in concert with the glue weapon above.
- A two-part projectile.. firing drops a mine kind of thing and shoots a projectile, then alt-fire makes an instant-fire shot between the mine and the projectile. (This might be kind of hard to hit people with)
- An "instant hit" weapon that just creates a small explosion a certain distance ahead of the ship, with some accompanying beam effect or something to make it plausable. This would require good depth perception and range estimation ability.
Anyways, just thought I'd throw out some ideas to help you come up with weapons.
Haral: No doubt and no doubt. Having more than one weapon that acts the same way, for the reasons I pretty much detailed already, is pointless. I didn't really go into that as it was more on the subject of balancing what you have rather than introducing new items.
As for coming up with weapons, I don't have too much trouble with that. A lot of "different" effects can be introduced, it's just hard coming up with simple variety. I've grown to the philosophy that no single thing in a game should ever be complicated, although the end result might be. In my mod I'm currently not too satisfied with many of the weapons I've made because they're too awkward or specialised... I think I only really like one of them so far, and I've made 8 so far. – That is, weapons like your "zig-zag" ones are of a good variety, but ones that involve shooting out multiple projectiles, etc are a bit too complicated.
Tarquin: Interesting page. Mind if I move it out to the main space, so other people can contribute?
Haral: Not at all. Go for it.
Tarquin: Done. Need somewhere to link it from though :) Do we have a page on general mod concepts?
Dirk Fist: My view of game balance is that the game should be fun, for people of differing skill levels (within reason) and differing play styles. Basically someone can't come in and dominate unless they are SUBSTANTIALLY better. In my opinion FACE(UT) is an example of an unbalanced map.
darktoad: Game balance for weapons is a very tricky subject. I've seen a number of approaches for handling this, here are a couple:
- Make specialized weapons: Weapons that have unique purposes force players to use weapons that are ideal for the given situation, instead of relying on a single do-it-all weapon. Examples: A weapon that freezes opponents. A weapon that makes your opponents drop all their inventory. A weapon that swaps your location with your opponent's. OR Make weapons that affect only certain attributes. Make a weapon that strips armor or one that bypasses armor, but does little damage...
- Balance weapons by their attributes: Ammo Capacity, Firing Rate, Effective Range, Time to target, Damage, Area of Effect, and Accuracy.
These all relate into a simple system of Effective Damage Over Time. When comparing weapons that just deal damage, you're balancing two tangible things: Effectiveness in hitting target and damage inflicted when the target is hit. Obviously a game with weapons that always hit and kill with one hit is not a challenging game but it is very balanced. On the other hand, a game with a weapon that kills a target in four hits compared to another weapon that kills in one hit...the balancing factors here are clear (how reliable are the weapons in hitting their target, and how long does it take to fire subsquent shots?).