Exploring Procedurally Generated Levels

I’ve made some headway with the pseudo-random level generation – although it’s all rough and ready, the basic principals for the draft “get something going” version are sound and up and running.

The basic premise is to take a ship (or space station) and slice it into levels, then produce reasonable room layouts inside that level which you can explore to your hearts content – the goal being to enrich the overall experience. The original WIP video can be seen here.

But, I don’t want it to be forced/required for people to wander around FPS style when they think they are getting a space sim, so this will all just “be there” for you to explore as you see fit.

But, there are a lot of gameplay elements which become possible from this – like defending against boarding parties, repairing things – actually seeing your crew go about their business.

Decisions decisions!

Right now the levels are all 2D tilemaps, which are then used to render 3D “tiled” sections of geometry to form a 3D level. I then use some more pseudo-random magic to put the (very poor) furniture across the level to make it a bit more varied. Naturally this is all placeholder/programmer-art – this will all look a lot better once I can get an artist on to it 🙂

The level in the video is actually a tower block (literally a block) large enough to host 100 levels (or storeys). Not one single part of that environment has been pre-computed or stored anywhere – every time you see the player moving between levels, the level is being regenerated from scratch in memory. There is literally nothing required to produce this environment other than a large piece of geometry for the block containing the levels, and the stock geometries for the room sections and furniture.

One constraint with the pseudo-random code is that you can’t just move things around – they stay where they are put. I think most FPS’rs are familiar with fairly static levels so hopefully this won’t be a deal-breaker, and besides we can accommodate some “chaff” which can be picked up, moved and left behind.

When used to produce ship-decks, you’ll still be able to see outside the vessel as it goes about it’s business – so docking, ships flying by, the vessel itself moving through space will all be there to spectate upon!

It’s almost growing to become a game in it’s own right! I don’t want to get distracted from Dominium but this is sorely tempting 🙂

A great source of inspiration for the Dominium universe I want to build comes from the 8/16-bit  Mercenary series of games by Paul Woakes – which gave us huge environments to explore and wander around at your leisure – but not all of which were required to “play the game”.

My aim is to replicate that – and more – across the entire game universe without restricting the player. That means a few compromises of course – but I think they will be worth it 🙂

 

SHARE THIS POST

  • Facebook
  • Twitter
  • Myspace
  • Google Buzz
  • Reddit
  • Stumnleupon
  • Delicious
  • Digg
  • Technorati
Author: Mak View all posts by

One Comment on "Exploring Procedurally Generated Levels"

Get an awesome sticky message bar!Download