I feel like there’s a better way to do it. Specifically, with this BSP “tree” division method, usually this thing seems to want to divide the map into long “strips”. Currently I’ve got waht’s up on the site, but it will semi-randomly shrink the room in either dimension by width/3-1. But even with that, the randomness prevents a semi-constant shape–as a result lots of long 20 square corridors shoot down the map in parallel with eachother, and everything still ends up being rather pattern-like and not as random as I’d like.
Another way I’m thinking of now is to pre-split everything into 3×3 grid spaces, and from that it’ll loop over each space and determine whether to make a hallway, a room, or nothing at all. Perhaps it will take 0,0 and, if it chooses a 3×3 room, then it checks the adjacent squares and decides to either make an adjoining room or a connecting hallway. From there it will continually expand out until the entire map gets covered and has a dungeon. But I dont even know if that’s going to appear “too random”, and once again I’ll see a flaw in the design and will then go back into an endless cycle of trying different map generation algorithms. Sigh.