Hey there! So after the Heroes of Loot 2 release and me pushing a bunch of updates, I’ve also taken some time off and just played some games (completed Uncharted 4.. damn.. really the last one?) and started looking around at what I might try to do next.
I’ve been toying with “Metroidvania” ideas for a while now, I originally even wanted Gunslugs 2 to move more towards such games but the level-generation was a bit too hard to get right in the time I had available to create the game back then.
Luckily, this time I’m armed with more time and more knowledge of doing good procedural level generation, so I started giving it another attempt. I’ve been documenting my tries over at the Orangepixel forums, including the release of test-builds for you guys to see how the game is slowly taking shape. So check out the thread and more importantly play the latest build!
The building process
So most or all Metroid-vania style games are basically build up from sections connected to each other, with some sections requiring you to activate/collect/learn something in an alternate section before you can pass through. Repeat this a few times and you have the core of a Metroidvania world layout.
This part of the generator is heavily based on my work for Heroes of Loot 2’s dungeons and quests. Basically the gates requiring a key or quest to be solved are the same as the way a MV level blocks you from accessing stuff until you do that other thing.
So the first thing my generator does is create these vertical and horizontal sections that are connected by doors, including alternate paths (placing doors/blockades will be done later but is already set in code through this mechanic).
The second part of the generator is filling up the sections with an interesting level layout. I first tried doing this randomly, but as many before me concluded: that’s nearly impossible or at the least not worth the effort. It would require so much time and trial+error to detect all the possible bugs and problematic sections where a certain jump can’t be made, or platforms are blocking each other, etc.
The only logical solution to this, while still having some randomness to it all, is the way games like Spelunky and others also handle it: using pre-build blocks.
So I’ll create a bunch of blocks that can be randomly organized and connected within a section, with place-markers to add monsters and items if needed.
My latest build shows the result of this, with just a handful of pre-build blocks, which makes it look like a game already. These blocks will become more interesting once the game gets things like elevators, teleporters, moving platforms, etc.
As for the actual end goal of what this game should be? I have no clue yet! I created some graphics and a main character, but I’ve no clear ideas yet on the setting and any story/goal for the player.
I might just wrap up the level generator and decide to make a Gunslugs 3 or Meganoid 3 using the tech.. we’ll see I guess, but I’m open to interesting settings and game ideas, so let me know in the comments or on the forum thread !