So what I'm doing is creating patterns that create layouts that spawn modules. Yay!
A pattern being the overall layout.. spawner of smaller layouts. And each layout contains modular elements like: grounds, blockers, bridges, plates, and platforms. Didn't find a better word.. so Plates are platforms that are not grounded. They connect horizontally only, but hover vertically. Everything else is visually grounded, in some way or another.
The system is pretty simple, very flexible, and highly controllable, easy to debug. Each layout will be debugged on its own. And every module, layout, and high level pattern, is hand crafted. So I'm in control of the design, not some computer algorithm that can screw up from time to time. Yet.. these 3 layers of randomization can create infinite procedural worlds, as varied as one wants. : D It's just a matter of designing more or less modules, smaller or larger layouts and patterns. And.. at some point.. I
Because Perceived Variety is different from Real Variety. And that's a major problem with any kind of generative system, more or less procedural. Variety can be subtle enough to pass by unnoticed. In a forest we just see a bunch of trees.. and we can easily miss the infinite variety generated by the physical world. But if you add some ruins.. now we have contrast, and something truly new. Only.. in a game of forests and ruins, some 2000 trees and 50 ruins later, the Player is bored to death of trees and ruins, no matter how beautiful and diverse they may be.
To create variety that humans perceive as such, it's not enough to add more stuff. I will need change, contrast. For now, this is just a basic modular set, for early testing. : ]