The procedural room layout engine continues to improve. Today I added two main features:
1. The entire dungeon generation is deterministic for a given random number seed. Thanks to Chris Pavia for recommending I do this early on–it’s already helped out in testing a lot. If I find a flaw in the layout, I can keep working on the same room until it’s fixed.
2. The pattern merger takes the doorway positions into account, so it won’t block off an exit to the room. It also has a list of available decorations (currently just to serve as room corners and island splits), and picks one at random that is small enough to fit without blocking any doors.
Here’s how I design the corner decoration patterns: