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.
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 🙂