My current project is a bundle of scripts that can create a medieval/fantasy village from scratch, using the 3DForge Village Exteriors modular building set.
The first stage of that was to manually place the core blocks and have a script generate the walls, to go from picture one to picture two with nothing but the pressing of the “play” button:
As you can see, it doesn’t just randomly place anything, but keeps consistent style throughout a level of a building, for example.
The current status is that it also generates frames, doors, balconies and even stairs to doors on the 2nd floor as well as some more tuning to regulate frequency of things (so that you don’t get 4 doors in a row or such nonsense).
The result is this, all at procedurally generated except the building cores:
The next steps are more details for the buildings and then I will move to getting the actual building layout procedurally generated as well.
The purpose of this set of scripts is to generate an entire village or town from basic input (road layout and density). It can serve as either a starting point for a first person game, where you would manually change the buildings important to the story to conform to your vision - or as the generator for places in the background, such as towns to fly over or to see in the distance or even to walk through.
It does not generate building interiors, though a similar approach could be used to do that and it might be a future enhancement. At this time, however, I am at step two of my six step roadmap and I’ll complete that first before I branch off into other ideas.
I plan to sell this on the asset store when finished. It will be relatively cheap, but an exact price has not yet been determined. While the version I create is specific to the 3DForge set, it can be adapted to other modular building sets easily, and if any author of such is interested, I’ll be happy to make an adapted version for that set. But - shouts to 3DForge - the well structured and named assets in the Village Exterior bundle really make it fairly easy to build procedural generation on top.