Many games generate their levels and environments randomly to enhance the replay value and make the gameplay more unique for every person. Quest, characters, treasures, items… Nothing ever stays at the same place. Random generation and procedural generation seem to be often used interchangeably but they are in fact not one and the same even though they are closely related to each other. Lets take a look at the difference between random vs procedural generation and why people are often confused by them.
Random Does Not Always Mean Random
While random generation will always be procedural, procedural generation isn’t always random. So what exactly does that mean?
Procedural generation is a technique where certain content is generated by using various algorithms instead of being handcrafted. It can be rather constrained but also… completely random.
Random means something happens totally by chance. No plan, no reason, no pattern. It’s unpredictable. Anything could happen, and everything has the same chance like flipping a coin or rolling a dice. You’ll never know the results… And this is the biggest problem of it all.
The Danger Of Random Generation
If you would design a game to be purely randomly generated, everything would be possible. Which literally means… EVERYTHING… Is possible. From amazing adventures, nobody had ever thought of… To game-breaking problems that keep you from progressing.
Let’s pretend we’re playing a completely random generated survival game with the goal of collecting four elemental gems to go back through a portal you came from. You need food, tools and a shelter to survive and of course, what would a survival game be without enemies? Sounds simple enough, right?
If the game is purely random, this means you can spawn EVERYWHERE. In a deep hole without a way out, in the middle of a pack of wolves with no weapons or maybe you spawn directly in a pool of lava and die. So, you would have to start over and over again. While this can have its charm for hardcore players, things can get frustrating pretty quickly.
The first gem could be stuck behind a wall that only can be broken after you collect the second gem.. Which you can only pick up after you carry the first. Maybe the portal at the end of the game is unreachable? The generation can take ages and even then, maybe there never is a way to get from A to B. But the worst thing of it all is that random generation can create scenarios that crash or even break the game in the process.
So even if random generation can create wonderful and unexpected results, the outcome might not be what you’re looking for. So, how can we fix that?
Controlling The Chaos
Every game that seems randomly generated has its own laws written into them. Let’s take Minecraft for example. While it feels completely randomly generated, every biome, every structure, every creature has its own rules in place. The jungle and deserts spawn rather close together because they are both considered a warm biome while snowy slopes and snowy taiga stay on the colder end of the spectrum. The same goes for structures. You’ll never find an ocean temple stranded on land or an end city in the nether.
This is all to keep Minecraft believable and immersive. Back in the day, it was more than possible that a desert could spawn right next to a snow biome which didn’t make much sense for a lot of people so over the years, they have worked further and further on their algorithm to make it less faulty and more believable.
So designing a game that gets randomly generated means to also come up with rules to keep it from spiraling out of control. So, if you know what you want, you have to define it closely. Take matters into your own hands and guide the algorithm in the way you want it to work. You don’t want your players to spawn in a lava pool? Then write it down. Do you only want chests to appear in dungeons? Write it down. Control the chaos… Or it controls you.
Make People Believe It’s Still Random
Now we know that the biggest difference between random vs procedural generation is, that one of them has set rules while the other doesn’t. When you start defining your set of rules for your own game, make sure not to overdo it. If you constrict your algorithm too much it will feel repetitive and bland. Look at games like The Binding Of Issac. While it isn’t as open and random as Minecraft, it still does a good job of making you feel the randomness. Every run feels unique with new challenges and a new set of difficulties. So how can we do that?
Make A Huge Asset Pool To Pull From
Every algorithm pulls from a pool made out of various different things. Items, tiles, monsters… Whatever your game needs to run. The bigger the pool is, the more variety and possibilities your generator will come up with. It will feel less repetitive and also less obvious that your game is constantly built out of the same things over and over again. You can even change the colors and flavor of your assets to diversify them even more.
Create different pools for different occasions and fill them up with a variety of things to make the world around them more lively and believable.
Come Up With Creative Solutions
So, what if you come across a problem that you can’t fix with your algorithm or if changing one thing would ruin another? Then it’s time to think a bit outside the box.
If you’re for example programming a game where your character has to navigate through narrow cave systems like Spelunky or Notia… Then you might run into the problem that you might run into dead ends. You could adjust your algorithm in a way so it would never happen again but you could also give the player a tool to dig themselves out like bombs or shovels.
If you make a problem part of the gameplay, then it makes a fun and challenging obstacle for the players… If you give them the tools to overcome it. It makes them feel satisfied and good about themselves if they can push through it on their own terms.
Not only does it make your gameplay more unique and fun but it also makes it appear less controlled and forced.
Structure Your Game Properly
A lot of randomly generated games are structured in a way that stops players from wondering why there are certain patterns. In Hades, you have to go through four main dungeons: Tartarus, Asphodel, Elysium, and the Temple of Styx… And the order always stays the same even though everything else is randomly generated. Why? Because Zagreus, the main protagonist, wants to climb out of the Underworld. To reach the surface, he has to climb through those different layers.
While those always stay the same, it still doesn’t feel repetitive because the rooms and level-ups you encounter inside those dungeons are purely up to chance. So if you want your game to be randomly generated and yet feel structured, make sure everything makes sense to your players.
Balance Randomness & Intention
When designing a procedurally generated game, it is important to balance randomness & intention behind it. What I mean by that is, that you don’t want random encounters to feel completely out of context. If you create a very realistic game it doesn’t make much sense for a snowman to spawn in the middle of the desert. But if you create a game that doesn’t take itself seriously, this could be a fun and welcome twist!
While the snowman was a rather obvious example, not everything has to be. Let’s look at items for example. If you want loot to be randomly generated, it means you want to give the player the chance to get an overpowered weapon and fight his way through hordes of monsters. But you also don’t want it to become too easy. So, maybe limit the pool of weapons and gradually expand the pool the more the player progresses in your game.
Maybe the randomly generated environment lets your players skip certain parts of the stories or make complete areas unavailable to them. If it’s intentional that the player can do those things, then you better double down on it! Make the player aware of the consequences. If you don’t want the player to slip by certain milestones of your world, then make sure to implement bottlenecks to guide players to the next point of interest.
If we look at the comparison of random vs procedural generation, it is no wonder people constantly mix them up and use those terms interchangeably. But if you know how to differentiate between randomness and intention, you can bring your game design to a whole new level and use that knowledge to your advantage! And remember: No game is truly random. They all follow some set of rules in order to function and so should yours!
Since you’re curious about the difference between random vs procedural generation you might want to look into level design as well:
Leave a Reply