Thank you so much for your kind words!
(long post ahead haha)
The way the seed generation works is somewhat simple, I just generate random characters, get their hash code, then use that to create a new instance of a random number generator. This rng is what is used to create the platforms/enemies/color schemes, etc. This is where it gets interesting: I don't just randomize the objects, I have a list of "design intentions" and randomize them too. Then I use those "intentions" to build sections of the stage. This way I can kinda guarantee that the stage makes sense.
So for instance, I may have a level that has the specific intentions, in sequence:
Level -> Climb -> Gap -> Level -> Descend
And what my generator does is the following:
1 - Pick a platform amongst the list of prefabs that may be used to keep the level at the same height (Level). Don't increase its Y value because you need it to be the same Y as the one that came before.
2 - PIck a platform amongst the list that may be used to increase height. Increase height by a random factor (which cannot be higher than 2, because it would surpass your jump height)
3- And so on, and so forth.
So each "design intention" has its own set of rules - for example I cannot place an enemy after a "2-step climb" because that would make the enemy too high to be bounced on. I cannot pick "Descend" if I'm already at the lowest point, etc. It was really nice to mess around with this algorithm haha.
Again, thanks for playing!