Rogue Machine - Map Design
The levels for Rogue Machine are procedurally generated but, as I mentioned last time, I'd be lying if I said I was using some complex algorithm that created wildly unique levels and experiences. I've only dabbled in procedural generation before so I've kept things simple, concentrating on making sure the levels can be generated relatively quickly and that the game doesn't get caught in an infinite loop.
Each level is controlled by a template that holds the parameters for the procedural generation, such as the size of the map, it's style, number of rooms etc. The maps are grid based with tiles making up the corridors and rooms. Each tile has three cosmetic variations to give some visual variety within an overall style.
One of the dangers of procedurally generated levels is that it's very easy to create a game with a hundred levels but in reality they all pretty much feel the same. To alleviate this each map is based around a style, which is the basic look of the map and shape of the tiles. I already have three and hope to have a minimum of five but would ideally like more. I'm trying to make sure that each style has an effect on game play – for instance, wide versus narrow corridors – but I think I'll end up makings some styles that'll only be different cosmetically.
Quite early on I decided to add "hollow" areas which are tiles that the play can not walk on but do not block line of sight between the npc and player. The two main reasons for including this was to provide an obstacle for the player to have to navigate whilst not necessarily getting any protection or cover from and to also give a "cliff edge" that the player could accidentally fall off or be pushed off if they are not paying attention to their surrounding, to give them something else to think about.
At the time I thought that this basic foundation would be enough to keep the game interesting but, as it turns out, it can get boring really quickly.
Two criticism from early work in progress videos was that the maps were too empty and too flat. To address this I've added in things like moving scenery and stairs. I was a little reluctant to add stairs. It was something I'd tried but couldn't quite figure out how to incorporate it into the procedural generation. But the "too flat" criticism was too valid to ignore and it gave me the spur to work out how to do it and I'm glad I did.
It was always may intention to add in passive defences in the form of lasers, force fields and the like and while this gives the player something else to think about, and I think they work really well, I still felt that there was something missing. I realised that the player never had to interact with the environment.
So I made the computers destructible and added switches for turning things on and off, both of which can be used as a objective for the level. I've also added in elevators which, whilst not the the most mind blowing of features, can have the effect of changing the pace of level and just adds a little something else for the play to interactive with, a button push or screen tap is required to activate them.
It's now a case of deciding how many levels to have in total, with more levels meaning more map styles and features to make the game less repetitive. This will be influenced by the structure of the game as a whole, which is something I've only just started working on and I think I'm making an awful lot of work for myself.