Michael Colombo - July 1, 2020 - Read time: 11 min
Gamers and Gaming Needs
As reality looks more dystopian every day and people’s relationships grow more virtual and less physical, the demand for development of games that make it possible for people to pass quality time together continues to increase. Creating game programs has never been as easy as it is today and thanks to that, for the past two decades, many original concepts have managed to see the light of the day, replacing standards and creating new ones.
At least half of the people under 20 who had access to the internet in the past 10 years must have heard about, or played, popular games like Minecraft. Although the game concepts that Minecraft uses were already existing before, it was only when those concepts were put together and presented to the masses that many developers realized how useful and important they will be in the development of future game programs. Many games that were inspired by Minecraft came out in recent years and more similar games keep coming out every month, but none of them has managed to replace their ancestor. What does a game like Minecraft have that people like so much? Many say it’s about the novelty and creativity but for me, it always was all about freedom of exploration.
As someone who lived and keeps living an average and depressing life, the virtual worlds were always my favorite form of escapism. Massive, multiplayer, online, role-playing games, they are the kind of games where I spent many hours every day and night ever since I gained access to the internet. However, although those games were immersive, social, and generally very fun to play, something was always lacking.
Drawbacks of Today’s MMOs
The perfect example is World of Warcraft, a game whose name speaks for itself. My playtime could be counted not in hours or days but months, I’ll never forget how enjoyable it was exploring such a large world for the first time, it didn’t take long before I was able to draw a map of every single game area by memory alone. What was wrong with this game? It took only around 2 years after the game’s debut for the first world expansion to come out, and after that every 2-3 years new expansions continued to be released and the number of active players can be counted in the millions even today. This success could only be achieved through the release of the world expansions and thanks to the nostalgia of millions of the original players who didn’t want to quit the game, even when they thought it was stale and aged.
From a business standpoint, the regular release of paid updates means constant income, but from my player’s point of view, it looks like this MMORPG needs regular world expansions to not be boring and to keep its players online. Why is that so? It’s clear that the combination of lore, world design, and combat system helped the success of this game, but at the end of the day, if there isn’t enough world content, the game will be enjoyable only for a predictable number of hours or days. There is no doubt that a fantasy-based game like this has a lot of re-playability, there are many playable classes and races after all, but even that will eventually lead to a stale point.
It requires little analysis of the pros and cons of games like Minecraft and World of Warcraft to see that it all comes down to world size. The larger a world is, the more playtime it can provide. Naturally, with a larger world comes the need for more world design. In games like WoW every single region and dungeon of the world was made manually by human hands. Needless to say, with more regions and more dungeons to design always come higher costs because more designers need to be hired. On the other hand, in games like Minecraft that use procedural world generation, there are fewer designers involved, but the visual quality of the world is much lower.
As a former Minecraft player, I was never really attached to this game, but the Procedural Generation mechanics are definitely what kept me playing this game for a long time because something interesting to see was hidden in almost every unexplored chunk of the world.
How does Procedural Generation work?
Many gamers are still alien to the concept of Procedural Generation even though they probably played at least a game that uses this mechanism. If I were to explain the concept with a simple example, I would compare it with randomization. It’s easy to find a random number generator on the web, but even manually it takes no time to generate a random number like “1234567890”. You can just smash Numpad blindly a few times and obtain something similar. Almost in every programming language, there are functions to randomize numbers or strings, random generation is something that has been in use for decades already.
What Procedural Generation does is simple, it all can start with the random generation of a number, for example, a number from 1 to 6. This number can indicate the position of an item in a list, the item in the list could simply be even another number, like “311”.
Let’s hypothesize. We have a list of 6 numbers and we have another list of 3 numbers. The list of 6 numbers contains numbers that we can choose using dice, and the list of 3 numbers contains numbers that have a different geometric figure assigned to each one of them. Let’s make clear what geometric figure is assigned to each number from this list:
Let’s note the predetermined numbers from the other list:
Now we should roll a dice, let’s assume that the dice rolled 5. If we check the list above, in the 5th position we have the number 311 which means “Hexagon Square Square”.
If we put together the figures assigned to the number 311, we will obtain something like this. If you’re familiar with table games, you can assume that the numbers 1 and 1 are areas of a hallway, while the number 3 is a hexagonal room at the end of the hallway.
This is a very basic example of procedural generation. We can expand the ability of this method adding a series of other lists and sub-lists, for example, a list of floor tiles, furniture, number of monsters, type of monster, and other things that we want to customize about each one of these areas. With a long enough list and many sub-lists, it’s possible to generate with high accuracy something like natural caves, dungeons, forests, oceans, mountains, towns, and whatnot, this is what procedural generation is about. The potential of procedural generation is infinite as long as there is hardware with enough processing power to put every little piece together, the rest is all up to each developer’s creativity.
Will more games use Procedural Generation?
Game Engines have become complex enough to allow game developers to make games with graphics more realistic and detailed than ever before, even the most simple 3D structure can reach a polygon count in the hundreds of thousands. While a hand-made world has all its 3D models already positioned in place and rendered, with procedural generation each one of these 3D models would need to be positioned and rendered on-the-fly. A game like Minecraft with ridiculously low polygon counts wouldn’t have any issues with this, but if you were to try to remake a game like “The Elder Scrolls: Skyrim” using procedural generation, the processing power required to generate world parts on-the-fly would be tenfold higher. Compared to around 10 years ago, when both Minecraft and Skyrim were still new, today’s average hardware has at least double the processing power, but it’s still not enough to make something like Skyrim using procedural generation.
Can Procedural Generation work with Lower Detail?
It’s possible to make a modern game with a procedural generated world using lower poly counts, there are already a few indie projects out there, but even though those games are playable with an average GPU, they still require a lot of RAM. Additionally, multi-player games that use procedural generation require massive storage space on the server’s side to store information about each one of the newly generated world parts, and they will use even more RAM than the client machines.
What is the future of Games and Procedural Generation?
The problem of procedural generation can be summarized in two main issues: on-the-fly object creation and on-the-fly rendering. The creation of objects is based on the algorithm that the developer designed. The algorithm needs to be efficient, it shouldn’t waste a single operation. The rendering depends on the GPU and although fast GPUs can easily be found on the market, they’re very expensive. To get around the requirements of procedural generation, one of the possible solutions could be to create one or multiple new standard algorithms that can be handled separately by an ASIC device with integrated and optimized RAM. All future games that use procedural generation would then need to be made around that/those new standard algorithms. The ideal would be for a large game development company to shove procedural generation algorithms in future updates of their games, and at the same time promote the new ASIC hardware that procedural generation needs.
How do you make a Procedural Generated World?
It’s not mandatory but using a Game Engine would be a good start. Most of the game engines provide scripting features, many of those indie projects are made in existing engines. Ideally, making a new Game Engine from scratch could give better results than relying on existing ones, but it’s not an easy start. I would recommend taking inspiration from existing Procedural Generation projects, there are some open-source projects available from the web that anyone can download and edit, and there are many technical YouTube tutorials too.