Rooms and mazes: A procedural dungeon generator (2014)
Enjoyable to see someone reasoning creatively about various ways to
solve this. In the end there are so many ways, each giving their own
feel. I would do generative landscapes by starting with Perlin noise
clouds, low pass filtering and then "flooding" the height-map with a
water table. That's basically how old generative landscapes like Bryce
used to work I think. For caves, pick a min and max plane, extrude to
get walls. As mentioned in the article checking connectivity was
always the PITA - and with 3D procedural mazes you have to also check
they're passable for the chosen engine's collision code.That's how I learned about my favourite constant... Gerver's optimal
sofa constant...the maximum size sofa that can move around a
unit corner [1].[1] https://de.zxc.wiki/wiki/Sofaproblem