One of the largest issues I’ve seen with games is when they come down to a formula. Sometimes, this is important, like in competitive play, but other times this is actually detrimental to the experience; a single-player game, for instance, in which every foe is exactly the same whenever the player walks a “dangerous” road between two major areas. This is the sort of thing that can be changed easily to make a more engaging experience through adding randomness.
There’s really three forms of randomness; procedural generation, environmental randomness, and mechanical randomness. All of these have the same goal of rewarding players with different experiences without requiring developers to create additional content. Primarily, these are used in video games, but tabletop gaming has almost always relied upon a certain degree of mechanical randomness, just for the sake of speed.
Procedural generation is one of the hot buzzwords in video games at the moment, and it’s basically a method of generating content based on simple parameters until eventually a fully-fledged environment is created. Exactly how it works is up to implementation, but procedural generation is not, in and of itself, random, though it’s rarely used in a non-random form. The way it works is by operating certain responses to various events. For instance, let’s procedurally generate a cave, just for example’s sake.
We’ve got a cliff face, but we think that’s boring, and putting a cave in it will give an new environment for our players to explore. We’re not going to consider the environment, we’re just going to decide if it’s going up or down. We flip a coin, and we figure out that it’s going up. We carve our cave out of the cliff face and then flip a coin again to determine whether it goes one more segment or two, and find that it goes up just the one. We flip another coin, to see whether or not there’s a bear in there. No bear. So we wind up with a cave going upwards, one segment into the cliff, and lacking a bear. In a video game we’d then procedurally generate some more stuff, or add pre-existing assets in (for instance, the trickle of water from above that shaped the cave). Warframe does something similar to this, creating random levels by placing a start and end point in space and linking them together with prebuilt modules.
As you can see, procedural generation doesn’t have to be random; we could ignore the coin toss altogether, and it can be related to each other. With increasingly powerful computing, this is more common, and it can also be used for runtime generation of art assets or the like, though the more information you feed in the less you have to generate at the point of use.
Environmental randomness, on the other hand, focuses on the creation of small elements. It’s different from what is known as “procedural generation” because typically the former relies upon creation of stuff from seed information (sometimes randomly generated), while environmental randomness is, literally, random. It may be a guided random process, but it is more simple. This is stuff like opening a chest in Dungeons and Dragons and going to roll on a loot table; it doesn’t mechanically impact the game, but it experiences the narrative and experience greatly. In video games, randomly chosen enemies and obstacles fall into this; Canabalt uses environmental randomness to create an infinitely long city for players to run through (though it does fit on the border between procedural generation and environmental randomness, since it checks for estimated validity before placing objects.
The core difference between environmental randomness and procedural generation is that the former does not necessarily interact with its surroundings; procedural generation attempts to create something while environmental randomness is simply a chance of something being a certain way, such as spawn points for various objects or certain doors being locked.
Mechanical randomness is the core of most tabletop games, and occurs rather often in video games. It’s the strict numerical types of changes such as “roll a six-sided die” or “deliver 4-10 damage”. As opposed to changing the experience or the narrative, it focuses on changing the mechanics. Potentially, this changes the outcome, but this isn’t necessarily guaranteed. It adds an element of risk and excitement, but not really surprise or exploration. It’s typically a good idea to include a little bit of mechanical randomness because it’ll make the game less predictable and keep players from planning their actions ahead twelve turns, but it’s also an added layer of complexity to a game’s design.
There are a couple major concerns with randomness; outcome and shallowness.
Whenever you do anything at random, you must consider the outcome. For the most part, this doesn’t matter too much if you can work the game’s outcomes into the narrative, but if the narrative dead-ends at certain points you should consider it. I call this “luck”, not really because luck has anything to do with it but because it’s outside the control of the player. For instance, in HeroQuest it is theoretically possible to open eight explosive barrels in a row and die horribly without anything other than a streak of bad rolls to blame. This is incredibly frustrating, and is detrimental to player exploration of their environment if there weren’t some potentially lucrative rewards from these objects.
This is why outcomes in a game with high amounts of randomness should be carefully considered; were one to play an old “find-the-pixel” style adventure game with randomly scattered objects and a love for killing people who choose the wrong item, you’d have a lot of “game over” screens interrupting players, which not only wastes their time but is annoying and will lead to fallout with critics and players in general. In addition, someone might have too easy a time, and succeed without effort, feeling robbed by the whole process.
However, another problem with randomness is that it can become incredibly shallow. This is more a concern for video games and the like, because as a developer the systems necessary for randomness to work have to be constrained or they become quite effort intensive, and breaking them down into smaller sets may cause damaging results. For instance, a game like Dwarf Fortress does randomness very well, but at the cost of world generation being a lengthy process just to generate a world’s history. Attempting to skip steps would allow for a similar feel, some of the time, but also potentially cause issues like often reported in similar games where mountains transition directly into a flat plain, with 900 foot cliffs being the norm rather than the exception.
In addition, to get a complex random system, it becomes necessary to nest randomness; look at GearHead for an example of this done well-it has random NPC’s with random inventories inside random towns with random story events determining narrative events, including the major conflicts. This is a very good way to do things, but it relies upon ASCII and pre-rendered art which allows for palette swapping because the amount of effort necessary to either dynamically create characters that fit the aesthetics or to do a similar system in three dimensions would be exorbitantly difficult.
Borderlands 2 fails at creating an enjoyable random weapon system because of its massive amount of modifications possible. While there are some interesting ones, there are just so many possible weapon combinations and the cool ones are rare enough that players will only find a couple of guns that can boast anything other than the standard shooting style and still offer the level of performance that one would reasonably expect at their level.
So, basically, random experiences are crucial to creating an engaging long-term replayable game experience that can deliver a dynamic narrative to players, but they’re also an opportunity to burden a game with unnecessary features and waste development time on a pipe-dream.