The procedural generation of content is a trend that has existed in game development for decades. The first example of procedural generation in a video game was with the 1984 release of space exploration/combat game Elite. It was originally intended to have 282 trillion galaxies, each containing 256 solar systems.
If you’re wondering what I am talking about, let me help define the term procedural generation with the help of my friends over at Wikipedia.
In computing, procedural generation is a method of creating data algorithmically as opposed to manually. In computer graphics it is commonly used for creating textures. In video games it is used for creating items, quests, and level geometry.
So there we have it. The term describes the creation of content, not by a game developer, an artist, a designer, but by an algorithm. Think on that while you read the rest of this post because it’s important.
Recently I was introduced to two games that both rely on procedural generation. The first is Minecraft; a game that has been praised for its game play and game design. It’s a game that’s received dozens of accolades and plenty of critical acclaim. It’s sold millions of copies and has even found uses outside of entertainment as an educational tool.
The second game is one that’s been in the spotlight for all the wrong reasons as of late. It’s the newly released No Man’s Sky. This title came out to mediocre reviews and has received a lot of flak for its lack of promised content. We don’t know how well it sold, but both Steam and PSN are offering full refunds in light of the enormous player backlash the game received.
Now I don’t want to discuss NMS and how it was marketed or sold to people here, I want to look at how procedural generation impacts the game experience.
In both games, the entire experience is in some way a result of procedural generation. The worlds, the planets, the creatures, the resources you find; all these elements are generated by an algorithm. This approach is intended to create a sense of realism in that the player never explores the same world twice. Every Minecraft world is unique just like every planet in NMS.
This feeling of realism is designed to immerse players in the universe and pull them into the game world. This in turn encourages an emotional reaction and connection to the content and the game itself.
Games can also use narrative and story-telling to elicit the same reaction of immersion. I believe this is often why you find games that rely heavily on procedural generation lack any kind of deep narrative. It’s very hard to craft a compelling narrative when you have no idea what kind of things the player is going to encounter at any given moment.
Is this a bad thing? Not in all cases, no.
Take Minecraft again, for example. The game has multiplayer functionality, so I can jump into a world with my friends and we can play together. We build, and explore, and fight together. In doing so we craft our own stories and make up our own narrative. We don’t rely on the game telling us what to do, we make it up ourselves and it’s great.
Minecraft also allows you to build what you want. People have created incredible things within the game using the systems of procedural generation to support their own creativity, and in some cases, their own narrative.
Now let’s look at No Man’s Sky. It has no multiplayer functionality, and no building mechanics. While exploring the planets and the galaxy at large, I was always alone, searching for any glimpse of alien civilization, or a hub of activity. I didn’t find much, and it led me to think about how procedural generation should be used in game development.
Procedural generation is not going away anytime soon and it’s not a bad thing. It’s an important aspect of game development. Game creators use it to govern certain systems that would otherwise be a nightmare to do manually.
The loot system and dungeon generation of Diablo 3 would be mammoth tasks for developers to do by hand. The pedestrians in big open world games like Grand Theft Auto would take developers months, if not years, to set up by hand. Procedural generation takes these tasks and makes them somewhat automated, allowing the developers to focus more on other areas.
These are great use of the power of procedural generation because these systems compliment the game world, but they don’t define it. Around these systems you still have a story, quests, locations, and characters that have all been planned, hand-crafted, and implemented in the game by a human being.
When you visit a planet in NMS, you see the alien landscape and the weird creatures. You see the resources and plant life. You see the occasional alien structure or ruin. You see all these things and you know that a computer program generated them mere moments before you arrived here.
When you load into a new world on Minecraft, you know the world is brand new, untouched by anyone else. You know it will have certain elements to it, like Creepers, ore to mine, and underground caves to explore. You can have incredible adventures within that world with your friends, or you can follow the games plot of reaching the end game and killing the final boss.
When you play a mission in The Deus Ex: Mankind Divided you know that a developer, sat down with other people and planned it out. You know that artists created the characters and animators made them move. You know that the story line was written and designed. You know the locations were planned for that specific mission. You can appreciate the work that people put in to create that content for you to play and to have a good experience with.
You know that the mission has soul, because real people put their time, energy, and passion into making it a reality for you to experience and hopefully enjoy. Sure, there might be procedural generation deciding what loot you get, or what enemies spawn during the mission, but the soul of the mission came from a team of developers and their creative energy.
Procedural generation when done right is the kind of system you don’t see operating. It works within the background, like a team of stage hands, pulling levers and moving sets, so you, the audience, can experience something magical. Minecraft really does pull you into its world, and when you’re several hundred feet below the surface mining near rivers of lava and fighting skeletons, you really do forget that this world was generated by an algorithm. I think NMS demonstrates how procedural generation can be used poorly, to try and define a game experience as opposed to supporting a crafted experience. But what it really shows is how soulless procedural generation can be when done poorly. The universe of NMS is vast and the scale of it is truly baffling and impressive, but it feels empty. It doesn’t really feel like a universe because it isn’t one. It’s not full of complex and interesting life. It lacks ecosystems and interactions. Unlike Minecraft, the entire time I spent with NMS I was very aware that I was being given content to explore that a machine had dictated.
There was no human touch to anything and I think that human touch goes a long way into making our favorite game experiences truly memorable.