As the evolution of game design continues its inexorable march forward, human designers find themselves with an ever-increasing arsenal of powerful tools at their disposal in the creation of assets, levels, and entire worlds. Several of these tools fall under the umbrella of procedural generation, a term categorizing the use of computer algorithms in the creation of game content. Most people have played games with at least some degree of procedural generation, whether they realize it or not - from the dungeons in Diablo, to the sprawling worlds of Minecraft, to the bizarre creatures of No Man’s Sky.
In this article, I will explore the use of procedural generation in content creation, and how designers can tailor their application of the technique to ensure a better player experience. In particular, I will look at the interplay between handcrafted and computer-generated assets when striving to achieve both breadth and depth in game content.
Procedural generation generally works by combining some form of randomness, such as number generation or noise textures, with a set of rules outlined by human designers. Procedural terrain, for example, may use a noise texture to generate a heightmap, to which a series of constraints are then applied - such as snow in high-altitude areas, water in low-lying areas, and random placement of foliage near sea level. Depending on the nature of the content generated and the rules applied, procedural generation is capable of creating near-infinite permutations of everything from geography, to in-game items, to creature AI. As generation algorithms and the processors powering them become increasingly sophisticated, so do their creations - believable computer-crafted models and music would have been near-unthinkable in decades past, but are a reality today. While we don’t have to worry about our games becoming self-aware - at least, not just yet - advancement in procedural generation has empowered developers with a few key advantages in the design process.
Procedurally generating content such as terrain can be achieved by applying a set of rules defining things like colour, land quality, and forestation to a set of random values, such as that created by Perlin noise. [Image Source]
Firstly, computer-generated content can be used to introduce variety into a game by injecting the element of randomization. This is often used to ensure that no two playthroughs will be the same, that virtually every game world is unique, that the game contains a virtual infinity of content to explore, and so on. Procedural generation also has the advantage of being extremely resource-efficient, if properly executed - as it relies on machine time, rather than time of human designers, to construct game content. By creating and iterating on the rules applied to the process, designers are able to quickly edit the generation of in-game items, creatures, ecosystems, and entire worlds without worry about the labour cost of such experimentation. These tactics also make it easier for indie developers to offer expansive game worlds with only a small development team - along the lines of the scale and diversity in games like Minecraft, Starbound, and Astroneer.
However, a great number of design considerations must be taken into account when applying these methods. Procedural generation can easily create a clunky set of iterations if implemented carelessly, feeling more like senseless cosmetic noise rather than a meaningful set of iterations on game content. Games like Spore and No Man’s Sky often draw criticism for having employed the technique too heavy-handedly, losing a sense of the depth afforded by human creations. Human beings are engines of pattern recognition, and too much randomness without apparent rhyme or reason ends up feeling far too samey to provide meaningful value.
Spore used procedural generation extensively in creating the variety of planets visible in the player’s galaxy. However, many of the generated differences were purely cosmetic, which can lead to a feeling of sameness after the player sees a few archetypal examples. [Image Source]
So, how can designers effectively balance human- and computer-created content to produce a design that provides players with satisfying variety while preserving the meaningfulness of its content?
This dilemma ultimately demands that we consider the strengths of each approach on its own, and how we can leverage the power of procedural generation to reflect the ingenuity of human-driven design. This holds true regardless of what we are generating, whether it’s a sci-fi narrative, an underground cave, or the mannerisms of an AI. That said, here are four key guidelines to consider when applying procedural generation to any aspect of content creation.
Start with a thoughtful set of building blocks. Most procedural generation algorithms rely on recombining and editing a set of components provided by the designer, such as terrain tiles, creature parts, colour palettes, and so on. These atomic pieces will vary wildly depending on the content generated, and a sufficiently diverse set of materials can result in an amazing variety of creations. When creating these building blocks, it is important to ensure that their variety has meaning beyond the superficial.
Poorly developed procedural content often focuses too strongly on cosmetic variation, creating a soup of bright colours, patterns, and shapes that ultimately adds nothing to gameplay. Well-executed content, by contrast, ensures that its constituent components add meaningful variety to gameplay. Blocks in Minecraft, for example, don’t exist simply to provide textural variety - they correlate directly to in-game resources influencing aspects of crafting, combat, and survivability to an astounding degree of depth.
Minecraft creates its worlds ensuring that visual diversity is matched with variations in terrain and resources that actually serve to enhance gameplay, not just cosmetics. [Image Source]
Ensure that randomness is guided. As previously noted, excessive randomness simply begins to feel like a stream of monotonous repetition. For example, consider a collection of noise patterns, akin those found in television static. Taken together, these patterns feel like a series of senseless artifacts, each scarcely distinguishable from the last. Contrast this with the shocking variety one finds in life on Earth, with each organism more exotic and complex than the last.
While these two cases seem drastically different, they are both the result of random variation. The key difference is that, in the case of static, the underlying randomness is largely unguided. Evolution, on the other hand, is strongly regulated by the laws of nature, producing results with far more meaningful variation. By constructing a thoughtful set of rules guiding their creation, designers can ensure a more satisfying form of diversity for their players. Designers can often form the basis of a successful ruleset by taking inspiration from existing scientific, artistic, and architectural principles.
The developers of Elite Dangerous have stated that the procedural generation of planets and stars in the in-game galaxy is based on real-world astronomy data and the laws of physics, creating a vast world that feels more immersive as a result. [Image Source]
Test extensively to make sure that generation is balanced. Imagine starting a fresh game and being immediately presented with a horde of near-undefeatable enemies that you wouldn’t expect to face in the first few hours of gameplay. It might be an interesting experience for the right kind of player, but if this sort of scenario happens frequently, it will be immersion-breaking for most players. On the other hand, having an overabundance of some rare resource can also devalue gameplay, as it reduces challenge and the incentive to take risks.
Any procedural generation system that affects gameplay, therefore, should be extensively tested to ensure that its constraints are capable of consistently producing variety without creating wildly unbalanced gameplay scenarios. Another interesting possibility exists for developers to provide players with options for tweaking the rules of in-game generation, allowing for the creation of custom games and personalized difficulty settings. This can be a viable option to ensure that a game can suit itself to players of different preferences and skill levels.
Don’t Starve generates a new world every time a new save file is created. Players are able to balance options governing resource generation, enemy populations, and extreme weather, among other factors. [Image Source]
Make sure gameplay doesn’t suffer. Regardless of how interesting a generation algorithm may be, if the underlying gameplay is not sufficiently refined, players will find the experience unsatisfactory. After all, if we are promising the creation of games, we should not be delivering glorified tech demos that ignore critical aspects of the core player experience. It is important to remember that a carefully crafted game with limited content can be far more enjoyable than a game focused entirely on spitting out new content without providing engaging gameplay. By balancing the breadth of procedurally-generated content with the depth afforded by a human designer’s touch, games can create worlds that feel truly alive in their diversity.
While its game design was the subject of some controversy at release, No Man’s Sky heavily leveraged procedural generation in its world creation. It was in turn widely criticized for allowing many gameplay aspects to fall by the wayside at launch, demonstrating the tradeoffs that can exist between breadth and depth of content. [Image Source]
I've always been fascinated by randomness in games, ever since I started playing as a child. Simple elements of randomization in classic children’s adventure games - like Pajama Sam and Carmen Sandiego - always caught my attention. While the games themselves evidenced great human care in their creation, a touch of randomness in puzzle or scenario selection lent each playthrough its own small element of variety, however subtle. As my game repertoire expanded, I became increasingly interested in how the varied worlds of Spore and Minecraft came to fruition. Stepping back from the game aspect of the equation for a moment, the increasing sophistication of procedural content in games like Elite: Dangerous and No Man’s Sky is a testament to the advancement of our technological ability over the past several years.
As designers continue to refine and perfect the application of procedural generation, the gaming community will be presented with an abundance of exotic and interesting worlds to explore. In the past two decades, this technique has evolved from tile-based level generation to the creation of entire universes. In another few years, it’s anyone’s guess as to what we will see evolving in the world of computer-generated content.
I, for one, can’t wait.