Wow, what a lovely collection of links! I was searching around for just this kind of stuff, but wasn't able to find much of anything.
I made a very simple building/floorplan generator yesterday for a top-down shooter. I still need to make a few tweaks to allow it to make more interestingly shaped buildings, and have it place the buildings in sensible relations to one-another. The game will focus on combat, and just needs a few small buildings sparsely placed to give some interesting cover to move around so my simple solution should be sufficient.
I'll give a quick run-down of my method, as I enjoy doing that sort of thing.
Each building is based on an internal grid of "nodes", with the only possible positions of walls being along the lines that connect those nodes. This prevents the creation of passages that are too thin to move down, and generally keeps things easier.
My engine is tile-based so my construction of buildings is done through "painting" tiles to be certain materials. The engine will then render that map of materials as a pretty background image that the player sees, and use the materials map itself for pathfinding and stuff. I've not made that renderer yet, so the screenshot below is just showing the materials grid (and a player sprite ripped from Counterstrike - classy!)
I start by drawing a rectangle, with "wall" material as the border and "interior" material as the fill.
I then stick a random number of doors (at least 1, and more likely to be higher for larger buildings) on those outside walls. Doors always lie between two nodes on the grid, so there's never a chance of an interior wall poking into a door. They're created by simply painting "interior" material over the walls, but leaving one tile on each side as a door frame (this makes the doors look nice if there ends up being a wall right next to it.)
To make the interior walls, I randomly pick a grid node inside the building which is currently painted as "interior". I then move randomly around between the nodes, leaving a line of "wall" in my wake, only stopping when I reach a node that's already painted as "wall". This process makes it impossible to end up with an interior wall that blocks off a doorway, but also prevents the creation of interior walls that are disconnected from other walls. It is possible for a single wall to loop around and touch itself and so make an inexcessible area of the building, but it should never be able to block door access.
The density of internal walls can be altered by varying how many times the above process of wandering around drawing walls is repeated. Repeating it more will result in a maze-like building, with less repeats giving large open areas.
It's a simple method but I have simple needs, and it works! I'm sure it has a fancy name in maze-making circles, but I thought it up yesterday and thought it was pretty neat.
Small buildings:
Large buildings:
(sorry for the hideous colours)