I am working for some time now on my next game, title still undecided. One of the main parts is the procedural generation of the world. Most people would think now either of a 3D heightmap aproach or a 2D top-down roquelike one.
Its something different. Its easy and simple and can lead to surprising complexity while giving me a ton of control of how the end-result will look and play.
I call it Blueprints.
Its just another name for templates to be honest, but its also not simple pre-crafted rooms that get put together. Its more like “building guidelines” for those rooms/areas.
Those blueprints contain what tilesets (textures) the area can hold, they describe a general layout of the area – like here is a stair, there is door etc. but dont define exactly what gets put in there at runtime.
Well, a blueprint alone does nothing. It just sits there and waits till we feed a generator with it. This is a special algorithm that takes the blueprint and transform its information into something useful for game.
But a blueprint alone doesnt make a gameworld. It needs friends.
Its basicly a higher level of blueprints – lets call them Maps. A map is holding information like what kind of blueprints it should use, what generators to feed, how big the world shall be and lots of other “high level” decisions.
I have read lots of discussions in the past what can be called procedural generation and what not. I think it doesnt matter as long as the result is entertaining. (not to forget, the process of making it).
The use of blueprints solves one big issue i faced in the past with procedural content. Its predictable. I can design a specific layout and i know for sure the map in the end will stay true to this layout, no matter what exact tiles it uses (or in the case of maps – what exact blueprints).
Its map designing from a greater perspective. You define the grand outlines, the generator fills in the little details.
The game i am working on is a 2D side perspective dungeon crawler, heavy influenced by trading card games. One of the design choices was to use a really low-rez graphic – not because i am a deep fan of a Retro-look, but because i am mainly programmer, secondly level-designer and maybe at 5th or 6th position comes texture-artist. I am working alone at the moment on this game, so i had to solve this issue with the skills i have. Reaching out for highly polished 2d artwork just wasnt a question.
Thats said, lets have a look at some nice pictures:
It is relative easy to recognize the patterns and see where the different blueprints connect. There is a total of 5 blueprints used in those 2 pictures (i havent done much content-producing for now, only quick make-ups to test out the functionality of the algorithms). It is also easy to see that the overall layout is consistent – but its always a bit different what tiletypes gets used in the end.
For now its more a proof of concept. To really shine, there is an urgent need for lots and lots of content (tiletypes, blueprints and maps). But i really like it – its a different aproach to procedural mapmaking and there still so much to discover for me.