Hello all! I wish I could get around to doing these updates more often but as you might imagine, creating a random level generation algorithm (that actually works properly) takes a lot of time and focus. I've managed to do some pretty sweet things though! I have some paths loop round to each other while maintaining the integrity of my game design ideas (basically sections behind a locked door are still only reachable though the locked door).
I have the main tile generation stuff done, the next step will be replacing all the whittle tile rooms to actual rooms. You can see above I have already have basic corridor tiles which have replaced the white ones. I plan for each tile to spawn in different objects so it doesn't look repetitive. Collectable items such as weapons/health/ammo will be hidden (hopefully quite well) and will blend into the scenery. It will be very different to Arena; pickups won't be glowing and obvious. in Adventure you've really got to scour the level for these things.
Below are a few images showing how the generation system does what it does.
It all branches out from the start room, one tile after another. Each tile has about a 90% chance of being a corridor, else it's a random room. Corridors are more likely to be a straight piece rather than a corner or 3-way piece giggity. Once there are X amount of rooms in the level, it then caps everything off with the small red rooms.
So after all that, each tile piece looks around them to see if they run adjacent to any other sections, if so there is a chance they will connect to them (creating potential for looping - there would be more than 1 path to get from A to B). The blacked out areas show a section that will be blocked off at the end by a locked door. This section can keep itself nice and separate.
The next step is to replace all these tiles with actual rooms and corridors, and of-course to make it look sexy as fuck. It's all WIP (work in progress) so changes will be made to this generation system and I will be able to show off more visual stuff soon.