Just yesterday, MOP’s Justin ran down the various features that the long-canceled EverQuest Next promised before its demise – including the promise of all sorts of procedurally generated content. Procgen has long been a buzzword in video games, although these days it’s often glossed over by people on Twitter with .eth in their username who are talking about how AI can produce whole dungeons on demand. But it’s the same thing. It’s the dream of putting in an endless set of generative content that doesn’t cost a studio much money and generates player enjoyment and longevity.
That is, however, a myth.
I don’t mean that in the sense that procedural generation doesn’t exist or doesn’t work. It does exist, and in terms of producing a strictly endless series of random layouts, it broadly does indeed work. (It’s not quite infinite simply because of the boundary conditions of the universe, but functionally you can repeat it endlessly and never see the same thing twice.) But I think people also misunderstand how it works, and there’s a reason procedural generation does not – and cannot – actually replace bespoke content.
At the core, procedural generation is a complicated-sounding term for what is in fact a pretty simple concept, which is rolling the dice and then putting the parts together. The simplest form is pretty easy to experience: flip a coin. If it’s heads, the treasure chest contains a rotten tomato, and if it’s tails, it contains 400 gold. Keep track of how long it takes you to get to 4,000 gold. There, you’ve created procedural content.
Obviously most products use a more robust engine than that. Many games use some degree of procedural generation for content, which is a bit more than just “randomness” but comes down to making several parts and then mashing them together. City of Heroes’ radio missions were a form of procedural generation by placing [ENEMY GROUP] in [LOCATION] and asking you to [OBJECTIVE]. Warframe’s mission maps are procedurally generated. Old games like Rogue and all similar derivatives are procedurally generated. You have a list of things, and you put them together in a somewhat random fashion.
How random they can be varies, of course. Remnant II doesn’t really advertise itself as being procedurally generated, but in broad strokes it is; you get random maps in a random order, parts that can appear or not, and so forth. You will, however, always have the same final map with the same components, and ditto for the second map. And certain things will always show up in certain places. You’re never going to get a certain weapon unless you start Losomn in one of its Bloodborne-esque cities, for example. Some things are random and some things are fixed.
And there’s a good reason for that: because procedural generation kind of sucks.
The thing about truly random and all-encompassing procedural generation is that it is completely unbounded, and that causes problems. You can see this in, for example, randomizer runs done in games like Super Metroid. The base game has its rooms and challenges designed organically so that you will need to get certain things in order to even reach some rooms, but it is possible in a randomizer run to get rooms where you can just fall into the wrong place and then be entirely unable to get out. Or have to navigate obstacles you can’t.
That speaks to the fundamental problem with procedural generation: In a truly random environment, you lose any kind of bespoke experience. You can’t have a tricky sequence of jumps or a set of enemies that stack together in an interesting way because they aren’t placed there intentionally. There’s no way of ensuring that you don’t get three maps covered in enemies in City of Heroes who are resistant to your character’s elemental damage, and there’s no balance of “these enemies are strong against fire but there are ways around that for players who specialize in fire.”
Obviously, safeguards are usually put in place to help mitigate this. Warframe, for example, has various map parts that can be combined in different ways, but it’s set up so that you can’t actually get those map parts assembled in such a way that prevents progress. This is an obvious solution, right? You can ensure, for example, that your fight against a specific pair of tough enemies takes place in a map that will provide interesting gameplay. This is the area where you have a long-ranged enemy and a melee enemy, and the long-ranged one can be fought by charging across an open area or by ducking through cover in an area with the melee enemy.
But this safeguard, as nice as it is, also points out the major problem with the seemingly endless content: Just because it’s endlessly variable does not actually make it endlessly interesting.
You might have noticed this with my little treasure chest example in the start of the column. Theoretically, one run could go tomato, gold, tomato, tomato, gold, tomato. Another run could go tomato, tomato, tomato, gold, gold, tomato. Those two runs are strictly different! They’re unique! A change has occurred!
But you do not care. And you shouldn’t because those strictly unique outcomes are emotionally identical. You got more rotten tomatoes than gold and you end with the same number, and there’s nothing really all that interesting about the change.
In a bespoke environment, everything is added with intent and a reason for the change in engagement. A World of Warcraft dungeon has specific trash pulls between bosses, and while you could argue that these pulls are generally not tremendously interesting, they would not become more interesting if the map segments you moved between randomized their order somehow. And heck, we know this because the game actually did that with Torghast, which people didn’t like very much because it all looked largely identical and was just a steady pattern of chewing through enemies in nondescript corridors.
Oh, sure, Minecraft can generate a new world every time, and it’s not one that you’ve seen before, but the emotional difference between “this forest also has a mountain with some lava flowing over the side to the east” and “this forest has a desert to the south” is functionally nil. It’s not going to wildly alter your means of engaging with the game. All it does is ensure that you aren’t going to a predictable, specific point in order to get the stuff you want.
None of this is to say that procedural generation is bad. I love the radio missions in CoH, for example, even if I recognize what pieces are being slapped together every time I load into one. But they’re mostly good for filler content. They’re things I do to level up when I feel like low-impact content, not something that stirs the emotions.
Procedural generation is a great tool that allows you to fill out some space, but the problem is that it is created without intent and thus has no emotional heft. It’s the same up and down the ladder. A random generator can produce some interesting noise, but it’s never going to produce something that has much emotional meaning or impact because that requires intentional design and thought. No thought going in means little more than filler coming out.