September 15, 2014 in Procedural Generation by Tom
I’ve put up the second article on procedural generation in Lenna’s Inception over on my dev blog at bytten-studio.com. Go check it out!
First part here.
In the previous post in this series we saw how terrain is generated and how the procgen system decides each area in the world will be connected, which controls the progression of the player through the game. In this post I explain how the contents of those distinct areas are filled. As mentioned earlier, while Binding of Isaac and Spelunky use hand-designed templates to generate this content, Lenna’s Inception takes a different approach.
Spatially-aware room content generation
This part of the procgen system is aware of the spatial relationships between objects. By formalizing (making strict machine-readable rules) the constraints each kind of tile places on its neighbors, the system can choose where to place randomized objects without breaking the game. As an example rule, a cracked rock requires floor next to it so that a bomb can be placed there. If it was placed next to some water, the bomb would sink and not blow up the rock. The system understands this could prevent the player from progressing and will not by default put water next to cracked rocks.
September 8, 2014 in Procedural Generation by Tom
I’ve started a series of posts on procedural generation in Lenna’s Inception over on bytten-studio.com. Go check out the first part!
I regularly get asked how the overworld is generated. I actually started writing it up in a series of blog posts here on bytten-studio.com last year, but it became difficult to keep this up to date with the implementation. The implementation was changing too much and too often!
Things have stabilized somewhat now, so in this two-post series I’ll give an overview of how the procedural generation in Lenna’s Inception works. I’ll skip over some of the details to keep the length down, but if you need more detail on something specific for your own project(s), I’m more than happy to help you. Feel free to contact me on twitter or by email, but please try to understand that my time is very limited!
How is Lenna’s Inception different?
Procedural map generation in contemporary video games tends to fall into two categories:
- Sequential levels with limited procedural generation, e.g. rectangular rooms and long-thin corridors (Rogue), or stitching together hand-designed templates and setpieces (Binding of Isaac, Spelunky).
- Open, non-linear worlds with very few setpieces, but where the procgen system has a huge degree of freedom and can automatically produce variety (Minecraft).
Lenna’s Inception doesn’t really fit neatly into either of those, because while it’s linear, it doesn’t rely heavily on hand-designed room templates. It takes the linear gameplay of the first category and and increases the degree of freedom of the procgen system to a level comparable to the second category.
Let’s start by taking a look at the design of some of the most closely-related games that use procedural generation and randomization.
The second part of this series (and its conclusion) will be on Monday next week.