In my last project, Iron Danger, we customised a procedural level generation tool called Dungeon Architect. I removed the procedural maze generation, and we added a bunch of custom tools to better control the nodes in the grid.
I was really happy with how easy it was to block out levels using this toolset, so naturally I had to use Dungeon Architect in this adventure game project as well!
For Iron Danger I did way too much procedurally. We had a lot of random elements in the levels: even the small things on the shelves were separated and had random combinations and offsets. It made no sense: the tools reauired to control everything were finicky and somewhat difficult to control.
But what was great about the over the top procedural detail placement was that Iron Danger never had too much of a whitebox stage: everything looked ”final quality” out of the gate!
This time I am only going to use Dungeon Architect for the floors, walls, windows and doors. And for some other things that repeat over and over, like airducts and fences.
The ship level is a great example of the combination of methods that will be used to create the locations in the game:
I had to take great care when aligning the walls and doors and other areas where the procedural parts need to seamlessly integrate with the main portion of the ship.
Luckily the ship was really close to the measurements of the procedural grid: I only needed to move a few walls and the cabin section with the bridge forward a little bit!
Now that the main shape of the ship is blocked out and the technical features are in place, I can start to test if the locations on my flow chart even fit! Testing that is very easy now that the internal walls are procedural!
if the ship is too small, I can always add more floors. I did a quick script for Adventure Creator (the adventure game framework I am using for game logic) that allows me to hide complete portions of the level on demand. This makes it easy to add multi storey buildings. The ship already has 2 storeys, but it can accommodate maximum of five!