Want a free year on Tuts+ (worth $180)? Start an InMotion Hosting plan for $3.49/mo.
The luck vs. skill aspect of games is one which is fairly central to good design—indeed, it's something we've covered before. But before we worry about trying to balance luck and skill, we really need to ask: what is chance, and to what extent is it necessary in a game? Furthermore, how can we implement chance in a way that feels rewarding rather than punishing, and use it to improve rather than detract from the overall playing experience?
Is Chance Required?
It's nearly impossible to create a game without luck. A game without luck isn't really a game—something like "who's the tallest" or "who has the most fingers" doesn't really involve any sort of challenge. These are simply measurements that the players are unable to change, and so are unlikely to provide much entertainment. A game must have an element of uncertainty—something like "who can balance on one leg the longest", while not terribly in depth, is at least not predetermined. Even when one player is better, their success is not always guaranteed.
For many games, we use cards, dice, or a random number generator to create this unpredictability. But not all games use randomisation tools, and a serious strategy game like chess still requires an element of randomness: this element comes from the players themselves. Players are unpredictable, and will often adjust strategies and tactics on the fly, based on what they consider the best probable outcome. This is why, despite being a fairly static game, chess games can vary wildly: no two players approach the game the same way.
The reason humans can provide chance to chess is because chess is incredibly complex – in fact, we can describe chess as a complex game. Unfortuntely, unlike concepts such as "flow" or "zero sum game", the term "complex game" isn't a recognised term. Since we'll be talking about complexity a lot, we should probably define what we mean by it.
So what is a complex game?
If we look at Tic-tac-toe, we can see a game with fairly simple rules. There are nine spaces, players place an X or an O, trying to make a straight line, and the game is always over in nine moves or fewer. It's fairly easy to predict the results of a Tic-tac-toe game, even before the first move is made—assuming the two players play "correctly", then the game will always end in a draw.
We can say then, that tic-tac-toe is hard to justify as a complex game. In fact, Tic-tac-toe has been solved, which is to say that we've calculated every set of possible moves, and essentially proven the best moveset. To make matters worse, humans are capable of "solving" a tic-tac-toe game without much mental agility.
Compare this to chess, which has 64 pieces and six different types of piece, each with their own moveset, special moves such as castling and en passant, and a ruleset that means a game could (technically) last forever. Given these conditions, it's perhaps unsurprising that chess has never been solved, even by the most powerful computers.
So, essentially, a complex game is one which has not been solved, or that cannot be solved by the players.
This addendum "cannot be solved by the players" is important. It means that games can continue to be fun, assuming the players are incapable of solving them. This is why Four-in-a-row (also known as Connect 4) remains a fairly popular game; although computers have solved it, when players sit down they are unlikely to be capable of calculating the perfect game in their heads, so they play non-optimally. Tic-tac-toe, while trivial for most players, is still a good game for young children who are unable to plot out every move in their head. Complexity is subjective.
So why is this important? Because a non-complex game (a simple game) is a boring game. If the game is not complex, then it is solvable. If it is solvable, then the outcome is predetermined; all the player is required to do is work out the best moveset, and they've won. And at that point, they may as well go back to playing "who has the most fingers".
A small sidenote here, a solvable game can be better described as a puzzle. And while puzzles are popular (many newspaper print daily crossword puzzles), a puzzle is only fun up until it's been solved – which is why crossword enthusiasts generally don't sit and solve the same crossword over and over. Theres certainly nothing wrong in deciding to make a puzzle game, but be aware of what it is you're aiming for, and how that will impact replayability.
Tools of Fate
So, when we look at games like chess or Tic-tac-toe, we can see they are all strategy games with no inbuilt randomisation: basic strategy games. There are, however, many games which do use dice, cards or other tools as an inbuilt mechanic, like snakes and ladders or poker. As most of these games can't be considered complex, the inclusion of these dice or cards is necessary to prevent the game from being solvable. If, in the game of Snakes and Ladders, rather than rolling, players chose a number between one and six spaces to move every turn, then even children would quickly work out that "always choose six unless you land on a snake" is an optimal strategy.
Of course, adding randomness does not automatically make a solvable game good. In fact, you simply change the aim from "find the solution" to "find the best probable outcome". You still essentially have a puzzle game, except that the win condition is not guaranteed. Too much randomness is just as bad as none; here again Snakes and Ladders is an obvious example. Almost no-one other than children plays the game, as it lacks any sort of interactive challenge and, therefore, people see it as ultimately pointless.
So why does a game like poker continue to work? Poker is, essentially, a series of mini puzzles. You are given a hand, and you have to "solve" how probable it is for you to win. You can then bet on your hand, based on how likely you are to win the game.
This is an oversimplified view of poker, and if this was all there was to the game, it would be fairly boring. It would be trivial to write a program to calculate the odds (although people do that anyway), and simply run it to maximise your wins.
The fun of poker comes from player interaction: from bluffing and confidence. You are not required to bet on a good hand, and you are able to bet on junk. In fact, this is arguably what the game of poker is truly about; the cards are simply there to facilitate this, and to provide a fresh round of lying every few minutes. By adding the random element, we've eliminated player knowledge, which means that we can use uncertainty as a game mechanic. Players are required to perform based on what they know, and it is the combination of calculating winning odds and outfoxing other players that lets poker maintain its fanbase.
Bored of Boards
So, although we've been talking about about traditional gaming, computer games use exactly the same principles of design. Games like Tetris or Bejewelled can be considered simple (with added randomness), and games like Starcraft or Team Fortress can be considered complex.
In almost all games, there is a certain puzzle-like quality. Even in an RTS or FPS, players are constantly making decisions based on optimal play: should I build tanks or planes? Should I choose the machine gun or grenade launcher? Should I turn left or right? Like in chess, the player attempts to make decisions based on what they think will result in the best outcome. The randomness isn't (generally) provided by computer dice, but by the choices of the players in the game. Players are trying to outwit each other, as well as outskill them.
In fact, its possible to argue that the only randomness in a PvP game (like an FPS or RTS) should come from the players themselves. As we've talked about before, crits in TF2 are a subject of much contention in the playerbase—to summarise, any shot in TF2 has the possibility of being a crit shot. Crit shots require nothing more than the roll of a dice, and any damage dealt by a critical bullet will be twice or three times as much normal, which causes crits to be frequently lethal. While new players may enjoy the thrill of randomly getting a kill, "pro" players will see the crit mechanic as unnecessarily spoiling their skills.
The range of numbers we use for randomness also play a large effect on how things pan out. If a rifle deals 90-110 damage a shot, then if we have 150 health the random element is really a flavour effect: no matter what happens, we need to be shot twice to die. However, if we have 100 health, than a rifle will randomly kill us in one shot half of the time. Despite there only being a small range in randomness, the numbers used matter a great deal.
The Effects of Randomness
So why is it that "pro" players bemoan crit systems (and improperly implemented damage ranges) whereas "casual" players don't? The answer, simply, is player expectation.
A pro player will have played their game of choice a lot. They will know it inside and out. They will know what damage they can take, what they can deal out, and what the outcome of any situation should be. And while they may sometimes judge things poorly, it is generally due to underestimating the opponent's skill level, or making bad split-second decisions.
So when a pro player enters a battle, and they are instantly gibbed by a bullet for no reason other than luck, they might feel cheated. They knew what they wanted to happen, but because of an electronic dice roll, they were instantly killed instead.
New players will generally not feel this sting as sharply; they don't know the game as well, they have fewer expectations of what should happen, and so they can enter a battle not really expecting to win. To them, battles are as much a learning experience as a test of skill.
This randomisation destroying expectation is something that can happen in almost any game with randomness. When you're waiting for a line block in Tetris, and the computer instead gives you six S blocks in a row, the player might feel a little cheated. The popular game Puzzle Quest (essentially a bejewelled clone with RPG elements) received many player complaints about "cheating AI"; there are enough forum threads about it that the developers had to specifically come out and say that the AI doesn't cheat.
So why does it feel this way? Why are so many players upset over randomly falling jewel colours? Because the randomness is subverting player expectations. When a player goes into a game, they are (generally) expecting to be challenged, but they're also expecting that if they play well, they can win. When the game randomly throws some bad numbers at you, and you immediately lose, then you can feel cheated. You had an idea of how the game was going to play, and despite your best efforts, you were defeated—not by your own lack of skill, or superior opponent strategy, but by electronic dice. This, for most players, is incredibly infuriating.
This "luck subverting player expectation" extends into all sorts of game. In fact, the more luck involved in a game, the more likely it is to be frustrating. RPGs are a notable example, especially because of crit systems. Crits systems often seem like a fun little addition, but by the numbers they will almost always punish the players. This is because:
- Players are, generally, expected to defeat most enemies.
- Crits add randomness to battles.
- Randomness in battle means unpredictable results.
- Therefore, players will (occasionally) win battles they should have lost, but more often:
- Players will lose battles they should have won.
This is, of course, assuming that the encounters are designed or tailored towards the player. Some RPGs simply throw the player at giant monster and be done with it; however, as professional designers, we should be looking to ensure that the game is tailored towards our players, rather than just throwing some dragons in and calling it a day.
The other problem then, assuming we have designed our combats carefully, is that a crit system over-favours the player. Imagine if, after a harrowing journey through time and space, the hero of our game walks up to the ancient demon terrorising the planet and kills him in one (critical) blow. Its not quite the epic battle of legend, and is likely to leave the player feeling underwhelmed and unsatisfied. A player wants a challenge, and denying them that challenge because of randomness is unlikely to provide satisfaction.
In the case of Puzzle Quest, whether or not the AI actually was cheating isn't actually important: what is important is that to some players, it felt like the AI was cheating. The lucky streaks gotten by the player are likely to be ignored (due to their expectation of winning anyway), but having your victory snatched away by a series of unfortunate dice rolls may seem unfair and punishing.
So how do we fix things? It might seem like so far all we've really said is "randomness is bad". And essentially, that's true. We're professional games designers; we shouldn't be doing things randomly. Every decision the player makes should be the result of a carefully crafted experience, and putting in randomness can endanger that.
When we look more closely at it, we realise that randomness can be added for two primary reasons:
- To make the outcome unpredictable, or
- to generate content.
Let's examine these:
As we talked about in our previous article, players enjoy winning.
As we talked about here, randomness somewhat replaces the need for skill.
Therefore, adding randomness to a game allows (in some sense) bad players to win against good players. In a game with no randomness, a good player will always win against a bad player.
Because of this, having this unpredictability can be an important part of a game: it allows bad players to influence the game, and (hopefully) become better. If a player is constantly matched up against superior opponents and is losing, chances are they will quickly lose interest.
However, good players will often dislike this randomness, and will often be put off by a game which "punishes" their skill.
So how can we fix this?
Well, one option is to have an Elo rating system. This essentially gives players a number based on their skill level: beat a grandmaster, and your Elo rating goes up; lose games to newbies, and your score will probably go down. It originated as a way for chess players to measure their skill, but many MOBAs (Multiplayer Online Battle Arenas, such as League of Legends and Defense of the Ancients) do this, so that when you enter a battle you are (theoretically) placed with people around the same skill level. Some first-person shooters have also attempted this, allowing players to rebalance the teams if one side is continually getting crushed.
Another option would be to have a handicap system. Not too dissimilar to an Elo system, a handicap system allows players to give themselves an artificial advantage based on their skill level. Fighting games will often do this, giving the weaker player a variable health and damage output bonus. Although a handicap system might not solve all skill imbalance issues (it's easy to imagine online players abusing a system like this), it's a good way to allow casual players to compete more equally with their hardcore friends.
In both these cases, you can reduce the randomness of innate game elements, leaving the players as the only randomness generators.
The problem with generating content randomly (or gameplay elements, like in the game of Tetris's falling blocks) isn't so much that we're generating unpredictable content; it's that, often, certain sequences of random elements are extremely punishing to the player.
If, in Tetris, the player is waiting for a line block, but we only generate S blocks for the rest of the game, then the player will have every right to be annoyed. And, while it's improbable, it can happen.
In other games, such as a dungeon crawl RPG, we might have a 1% chance of generating a boss every time a monster spawns. If, by chance, we generate three bosses in a row, then the player might find themselves in an unwinnable battle.
By the same token, we might go through the game and never generate a boss. This could make the game incredibly easy, or (if the bosses drop equipment upgrades) incredibly hard. In either case, randomness has essentially destroyed our players' enjoyment of the game.
In certain cases, randomness can completely remove a player from the game. In the popular collectible card game Magic: The Gathering, players build decks that require a combination of lands (power sources) and spells to defeat their opponents. The use of lands is an important balancing mechanism: a simple goblin might require one land in play, while a mighty dragon might require ten. However, if the player happens to draw no land cards, then they are unable to play anything; they are essentially forced to sit there with zero options until their opponent defeats them. While it's possible to mitigate this to some extent, it's a serious design flaw that a non-insignificant number of game losses are the result of bad luck, rather than being outplayed.
People feel loss more strongly than they feel gain. It's an interesting psychological phenomenon; consider these two scenarios:
- You are given $1,000. I ask if you want to gamble on a coin toss: heads you win an extra $1,000, tails you don't. Alternatively, you can just have an extra $500 (no coin toss required).
- You are given $2,000. I ask if you want to gamble on a coin toss: tails you lose $1,000, heads you don't. Alternatively, you can just give back $500 (no coin toss required).
In general, people tend to take the guaranteed extra $500 in the first case, but gamble on the coin toss in the second... even though the outcomes for gambling are the same in each scenario! (Do the maths: whether you choose to flip the coin or not, and whether the coin comes up heads or not, the amount of money you end up with in the end is the same regardless of whether we're talking about Option 1 or Option 2.)
This means that, if you have a mechanic in game which randomly rewards or punishes they players, the losses will, psychologically, outweigh the gains. If the gamble is optional then it opens up extra avenues of gameplay, but a forced gamble will mostly feel like punishment.
A final problem with generating content randomly is that it can be very difficult to generate content which is interesting. A great example of this is MMOs; World of Warcraft has dozens upon dozens of dungeons, each of which can take hours to complete, and weeks to successfully master. However, once the dungeons are mastered, they (arguably) offer few variations and little replayability, save for the obvious grind for equipment. In Anarchy Online, the number of designed dungeons was tiny: however, players could enter randomised dungeons. In theory, no two dungeons the players encountered would ever be the same: however, in practise, every dungeon felt the same. Because dungeons were randomised, they had no narrative structure or overall design concept. Instead of feeling unique, every dungeon felt the same.
A lot of this is down to how many rules are put in place and how the generation is implemented: Nethack and Spelunky both use randomly generated levels, and have massive fan bases. The generation of rules for interesting map design is, however, a slightly different issue from randomly generating gameplay elements, and is probably best left for another discussion; it suffices to say that a good designer should be aware of the limitations of generating maps. We can still apply much of this randomness discussion to the generation of these maps, however.
A More Serious Solution
So where does this leave us? Well, sometimes we can actually just remove randomness from a game entirely. In the case of an RPG, instead of spawning a boss 1% of a time, we can spawn them after every 100 kills. In the case of collectible card games, one of Magic's competitors (Versus system) solved the issue of players needing land by making every card playable, face-down, as a land instead of a spell; this meant that you would never find yourself "stuck", while maintaining the momentum that lands crucially provided.
However, a total removal of randomness can often be an overzealous case of throwing the baby out with the bath water. In the example of the RPG, making a boss spawn every 100 kills exactly is likely to make them too predictable, and when a game gets too predictable, it becomes a puzzle. A better option would be making a boss spawn somewhere between every 50 and 150 kills. This means that bosses are still within a random range (making them hard to predict), but aren't so random you can get attacked by three at once.
This use of carefully controlled numbers is pseudorandom generation. There are many ways to do it: in Tetris, if we spawn an L block, then for the next three blocks we "re-roll the dice" once if an L block is spawned again. Normally, the L block has a one-in-seven chance of spawning, but giving it a re-roll makes it a 1/49 chance for those threee turns. It can still happen, but is much less likely.
This isn't the best way, of course: there are many ways to generate numbers randomly, ranging from simple re-rolls to weighted random numbers; plus, sometimes, in a case like Tetris, just leaving it as a one-in-seven chance to generate any block might be the best option.
If we do use randomness, we also have the opportunity to introduce seeds. This simply means that the random numbers we use in our game aren't actually random; the "random" sequence is entirely defined by a number called a seed. In Tetris, it appears that we can't predict what blocks are going to fall; however, if we seed a tetris game with the number 42, and we start off with square, L block, T block, square, then every game that uses the 42 seed will begin with those blocks. Seeds aren't used often in gaming (Minecraft and FreeCell being two notable examples), but can be a nice addition.
The ability to seed randomness comes from the fact that computers aren't actually capable of generating random numbers: often, they simply take a base number (such as the time in milliseconds), and then perform a calculation to get a "random" number. By ensuring the base number is the same every time, the calculations will give us the same "random" numbers.
The alternative to removing randomness is to use more of it. This might seem crazy initially, but can actually be extremely effective: roll two dice, add them together, and you have a one in six chance of getting a seven. Roll 2,000 dice, add them together, divide by 1,000 (and round), and you will almost always get a seven. In this case, using so much randomness has almost entirely removed randomness.
At the end of the day, randomness isn't inherently evil; it all comes down to perception. Players want to be be challenged, or to have an interesting experience, and there's nothing challenging or interesting about throwing a bunch of random monsters at a player, with little regard to whether they live or die. By tempering the randomness, we can craft the results we want, and hopefully make a game which interacts with the player, rather than ignoring them.
A Few Final Notes About Randomness
Randomness is generally a bad way to solve conflict, because (by its very nature) it creates unpredictable results. Randomness can also be a poor way to generate content, but is often the only sensible way to approach it; imagine designing a Tetris game which had a list of every block that should drop, in order.
When randomness does occur, it should generally favour the player (which is hard to achieve in a player vs player environment). If game elements are generated randomly, they should allow the player to react to a worst case scenario in a way that still allows a reasonable chance of success.
However, we have to accept that sometimes randomness is necessary. RPGs would be a lot less exciting without dice to determine combat. Board games, in particular, are unlikely to resolve the issue anytime soon: throwing 1,000 dice and averaging out just isn't practical for a game of Snakes and Ladders.
And of course, the final big caveat: if we remove randomness entirely, are we making a game, or a puzzle?