“Procedural generation” is a phrase I’m seeing in gaming press releases increasingly often. Character names are procedurally generated. Loot and equipment is procedurally generated. Levels are procedurally generated. Entire games are becoming procedurally generated1. Procedural generation has become shorthand for any game content that isn’t designed and constructed ahead of time by a human being, but which is instead created on the fly by an algorithm or two inside the game program itself. It’s hardly a new concept in computer games – even the earliest roguelikes incorporated it to a significant degree, for example – but it’s one which is getting more and more traction in today’s gaming market, especially on the indie scene. It seems that many of today’s developers look at procedural generation as a kind of holy grail of game development; because the algorithm outputs and the content they generate is pseudo-random it means in theory that you can provide a player with a potentially limitless amount of content for a game and in effect give it infinite replayability, as every time they load the game up they’ll be practically guaranteed to see something different.
In practice, it doesn’t quite work like that. In fact I’d argue that unless used sparingly and in very specific contexts procedural generation can end up achieving exactly the opposite, and I’d really like developers to stop trying to jam it in where it doesn’t fit – or, even worse, letting it stand in as a substitute for something they should really be doing themselves Let’s look at some case studies.
The Civilization games have been relying on procedural generation to create world maps ever since the first iteration in the series back in 1990. The player can pick what general shape or outline the map will have by selecting which world generation algorithm to use at game start, as well as fine tuning variables such as the planet age to determine the frequency with which certain specific tiles appear scattered over this broad outline. So you pick Continents if you want a game with two large, equally-sized landmasses separated by an ocean; Archipeligo for a set of small, scattered islands; Pangaea for a single enormous continent that guarantees plenty of conflict etc. The small detail of the maps is different but the broad structure is the same every time depending on which algorithm you’ve picked; the actual procedural generation part is only really relevant when considering the nearby terrain features and special resources of a potential city site. While this random aspect of the game is crucial for providing a spur to exploration and city development in the early epochs, Civilization’s map generation mostly does what it says on the tin and produces predictable, samey map shapes. As a long term Civ player I don’t think I’ve ever encountered a map feature that was unexpected or out of the ordinary. For Civilization this is fine. That is what the algorithms are supposed to do and the procedural generation meshes well with the overall game design. For other games, though, it’s not such an ideal solution.
Minecraft’s world generation is something that has undergone repeated overhauls since I started playing back in the autumn of 2010. Minecraft is a game built around the twin elements of exploration and construction, each of which feeds into the other. You explore the world to gather new resources for construction, and exploration can often present you with a striking building site upon which to build a nice new house/castle/terrifying skull fortress. As a result Minecraft would be nothing without a decent method of procedurally generating the world map as the player moves through it, and after years of refinement Minecraft’s worldgen is for my money one the best in the business, often recreating unusual real-world phenomena such as rock spikes, isolated mesas and pirate coves. (It also helps that if a player finds a particular area to be deficient in some way they can just slap down some blocks to remodel the landscape into something more to their liking.) However, one of Minecraft’s boasts is that it has a theoretically infinite overworld, and the sad fact of the matter is that as good as Minecraft’s worldgen is now and despite the number of biomes on offer, stretching even its excellent procedural generation over the massive worlds it creates results in an awful lot of repetition on a macro scale. Again, the small details are different but the broad strokes are the same; in the typical grass biome there’s always going to be a mountain less than sixty seconds away because that’s the way that biome is set up. Minecraft’s use of procedural generation is woven into the very essence of what the game is and it’s as good as it can be, but even here it the urge to wander over the horizon to see what’s there is somewhat diminished when you realise that nine times out of ten it’s going to be largely the same as what’s over here.
I love Dungeons of Dredmor to bits, but I have to admit that its level generation is somewhat lacking. The weakness here is that it assembles dungeon levels out of prefabricated rooms and corridors, each of which is memorable enough that you notice when it gets recycled for the second time, let alone the hundredth time. The actual dungeon layout is winding and labyrinthine just like any self-respecting roguelike should be, but Dredmor’s unusual level of graphical fidelity means that small details that might go unnoticed in your typical ASCII game are brought into sharp relief by the game’s cartoon art style. A room with teleportation levels taking you round in a circle. A room with a magic item in the middle surrounded by water. A large room with lots of items and crates and statues punctuated by a water feature near the top. The thing is these can often come up a couple of times per level, and while the game tries to cover up its copy and pasting with different tilesets it’s possibly not the best way to put a roguelike together.
Pineapple Smash Crew. I still feel bad about putting the boot into this as harshly as I did, so I’ll just say that it was a collection of twenty-odd procedurally generated levels each of which felt and played exactly the same, and that it would have been far better off with twenty levels designed by a human being. PSC was a game that really wasn’t suited to random level design but which crammed it in nonetheless, and which ended up being the poster child for what happens when procedural generation goes wrong.
Did Diablo 3 have bad procedural generation? It was an odd mixture of random map features and fixed landmarks, with many map areas and dungeon levels having essentially the same layout each time. It was bracing to encounter a special event in the middle of an area where there was none before, but ultimately Diablo 3’s maps are static entities with a small random factor attached which determines exactly where you’re going to find the door to a given dungeon. More interesting is its generation of loot items from a table of the various properties they can have, along with other games such as Borderlands and every single roguelike in the history of the universe. Also of note here is Dwarf Fortress and its procedurally generated worlds and monsters, which only occasionally impact on the gameplay (because you spend most of it digging into solid rock) but which provide a wealth of background flavour and nightmarish mental images. This is the sort of thing procedural generation can excel at, in my opinion; it’s good at creating the details of a world and less good at creating the structure of a world, and that still applies when the detail comes in the form of text and not graphics. Procedural generation is great at papering over gaps in a game’s background or generating databases far too large for a human being to handle; the results tend to be slightly less fun than if a human had written them (I’ll take Baldur’s Gate and its item descriptions any day over picking up my seventeenth Slaying Axe Of Slaying in Diablo) but they wouldn’t exist at all otherwise and occasionally the computer can throw out some idiosyncrasies that a human would never come out with (again, Dwarf Fortress).
Most of these examples ended up being decent, proportionate uses of procedurally generated content. Civ uses it to arrange terrain and resources on its map; Minecraft’s is largely successful if still slightly bland; Dredmor’s weakness is that it relies on procedurally generated levels stitched together out of content made by a human. There’s nothing wrong with the concept of procedural generation in and of itself, and if it’s used correctly it can end up adding a great deal of flavour to a game. The problems come when it’s used incorrectly, and by “incorrectly” I mean I’m seeing more and more games where procedural generation isn’t being used to achieve a particular design goal, but rather simply for the sake of using procedural generation. FTL and Pineapple Smash Crew are two of the major culprits which spring to mind here, while Frozen Synapse used procedurally generated maps for its tactical battles that utterly destroyed any gameplay value it might have had for me, as it was all too easy for one player to spawn in the open while their opponent started in a fortified position. Done badly procedural generation can end up killing a game, producing levels and encounters that are superficially different but otherwise identical in terms of tone and content and which end up boring the player (i.e. me) to tears.
This is why I get a little shiver down my spine every time procedural generation is heralded as the next big thing in gaming, or whenever I see people clamouring for the next Bethesda game to use “procedural generation” like Minecraft2. These people are missing two points. The first is that Bethesda games such as Skyrim already use large chunks of procedurally generated content that are then tweaked and adjusted by a human being in order to iron out any kinks, which is honestly the best approach for a game world as big and detailed as Skyrim’s. The second is that Minecraft largely gets away with procedurally generating its worlds because it’s an unreal landscape constructed out of square blocks that nevertheless has a crude kind of beauty to it, and which a computer is very well suited to put together. If you tried to generate a landscape that had any sort of realism you’d end up with the kind of abominations I last saw in Spore, where the planets were so ugly and bland I wanted to hit them with another giant space rock to erase them from existence. Games should be made by people with the computers filling in the bits they can’t, not the other way around. Procedural generation supplements well, and in rare cases it even creates well, but it’s no substitute for the human touch.
- This is fascinating and worthwhile research, and as long as he doesn’t actually try to sell the games ANGELINA spits out for money I won’t have to smother him to death with a fake Santa beard.
- I know these people exist because I keep seeing them in internet comment threads. Perhaps if I stopped reading them, they’d stop existing.