Yeah release mode is much shorter, but still a bit high. It is due to the A* algorithm, when the connecting rooms with corridoors over long distances, the amount of calulations increase more than linearly. Hence long times, however I could just find a shorter place to connect the corridoors.
Also I could probably use a quicker algorigm to connect two spaces. I already had A* working and all I had to do was adjust the weights so the corridoor went around room walls and room floors.
The rooms are dynamically created, I have 5 basic room types that take a width and height. I have just figured out how to do ellipse rooms correcly too.
As for disconnected rooms, simple flood fill fixed that. However I like the double doors, they open and close as one. Just imagine it as a large door. Ogres have to get in thier rooms somehow.
Anyway the basic steps to produce this are, well, quite basic really. The only trick is to mark cells that make up the walls of rooms and then mark valid door positions. That and a working pathfinding algorithm.
Create N randomly placed random rooms, mark the cells that make walls and valid door positions for each room.
Connect each room with a random room.
Get a random door position for the two rooms and use A* algorithm to trace a path.
The A* algorithm perfers already existing corridoor cells to follow but tunnels into non-wall and non-rooms when needed.
Run Flood fill and connect the unconnected parts.If I add random weights to the dungeon cells as it is calculating its path I get slightly more natural tunnelling. It looks less like the corridoor was carved with a laser. I will post one of them later.
I will post the code if wanted, but is is quite large and confusing. However I think it is resonably structured, except the A* part.