Planetary Maze

Download Alpha and Omega v2.7.1.17.0
Binaries as Win32 Installer (3 MB)
Download Alpha and Omega v2.7.1.17.0
Source as Visual Studio 2010 Solution (4 MB)

Last time we've created a cube and sphere, big whoop right? The goal was, and still is, to transform the sphere in something we are someday able to call a mini-planet. I really like to create a world that is somewhat procedurally generated and made to be explored, but I have some ideas that differentiate from existing games. Maybe it's too ambitious and maybe it'll end up in something that isn't fun playing, but I want to try it anyway. If exploration is going to be one of the main selling points of the game then we need to figure out what it is that makes exploring fun. There are plenty of reasons why exploration can be fun, so let us first look at some games with incredible exploration possibilities.

Games with Exploration

Skyrim is the fifth game in The Elder Scroll series. I really enjoyed exploring the immense world because the landscapes look stunning no matter where you are. Everywhere you go you'll find caves, quests and ruins. Even though they had a limited color-palette to work with (the whole world felt as if it was really cold), the terrain never felt as a repetition of things we've seen before. This must have been incredible difficult to achieve! Creating such a big world without much climate differences that doesn't feel empty, just amazing!

 

Spelunky is a completely different game, but it still has a lot of focus on exploring. Hmm that's a bit of an understatement, the game is all about exploring. The type of exploration is very different compared to that of Skyrim. The levels are procedurally generated, death is common and permanent, and sense of achievement is based on how far you got and how much loot you've picked up. Basically it's a perfect arcade game! Some aspects, that I find very important in exploration based games, are missing in Spelunky. For example, we do not have a map on which we can see our progress by unveiling the fog of war and we also do not get a feeling that player-performed actions have a big impact on the world. Levels visited before are just 'thrown away' and all that is left is the high-score for the amount of loot we've picked up. Spelunky does not need these game mechanics to be fun, but Christopher Columbus and Indiana Jones would have been a little disappointed.

 

Metroid games (and later also Castlevania games) gave me a better sense of exploration, because the world wasn't as fleeting as the one from Spelunky. These type of games unfortunately also require the player to back-track a lot, but that's is probably unavoidable for these type of games. In Super Metroid (SNES), as depicted below, I got stuck a couple of times without any clue what to do. This was really annoying because there wasn't any clear mission-directive or direction-arrow that could help me find a new area to explore.

  

What do we want?

It should be an open world where the player theoretically is able to go wherever he wants, but the world should not be so open that it is possible to travel to any point in a strait line. The player should come at crossroads where a decisions has to be made to go either left or right and it should always be clear where he has been before and where there is something new to do. We do need some countermeasure against the annoyance of backtracking, because no one likes to repeat 2 hours of game play just to have 30 minutes of meaningful play. Let's start by the creation of such a world by modifying the rotating sphere example from last time. We'll start by creating a maze:

Now, don't worry, I know what you're thinking. I don't want the player to get lost and I certainly don't want him to backtrack through a maze! I just wanted to be sure that every region on the planet will be accessible even when I'm inserting rivers, oceans and cliffs. These walls will give the procedural generation algorithm some hints on where he may create less-accessible regions without having to fear that some area's become isolated. The landscape algorithm will be a lot harder to implement because we're trying to push some design in the landscape. We can't just implement some Perlin noise algorithm and play around with the parameters anymore, there is a lot more to consider.

Next Time

For the next version we'll add some bio-clustering to the sphere. These clusters will someday form area's with one type of biome to make the landscape as diverse as possible.

3D SphereClustering

line