I was thinking about how someone would set up an algorithm to generate semi-procedural buildings.
The example I'm thinking of would be The Elder Scrolls II Daggerfall. While I didn't played it myself (saw a number of videos/read about it), I know it had procedural generated cities, with buildings sprouting here and there, while also spawning special buildings that weren't quite procedurally generated (ie, guild halls, quest related stuff).
Now, Daggerfall had buildings that weren't really complex. So I want to add a twist to it. Say that instead of spawning entire buildings I have a list of specific room types. Say, a list of 10 kitchens, 10 living rooms, 10 dormitories, etc.
All pre-authored stuff. So an artist would design a kitchen and add it up to the kitchens list for example. The kitchen could be of any size, maybe having several entrances/exits.
A house needs a bare minimum of room types to "function", ie, a certain number of dormitories depending on how many people live there, an entrance, a kitchen, a storage room, etc. Maybe even if we're dealing with an upper class house, we have guest rooms, several kitchens, dinning room, a library, etc. So each "house tier" has its own basic requirements, maybe a size limit (so you don't have a massive lower class house or such things).
Now, the idea would be feed these room lists to an algorithm that could randomly select a room of some room type list, and build up the house from there, selecting more rooms as it goes, placing them according to their entrances/exits.
I know that FPS from Wolfire constructed its scenes in a similar way. It has entire places predefined, and it constructs a level from those. My idea would be "micro manage" this procedure by having only predefined rooms instead.
Ideas are all fine and good but I have problems imagining how the algorithm would work IF it could work. Maybe I'd need to severely restrict door sizes and their position so the algorithm is simpler. But it still sounds like I'm missing a lot of things, like bounds checking, some sort of "sense" checking (not entering a dormitory from the bathroom for example) and probably many particular limitations the algorithm would need.
So I don't know if it's actually too complex to do. Have in mind that it shouldn't necessarily work in real time. It could be a "pre-pass" at world creation or something like that.