The level is procedurally generated, it seems less random because I made the platforms spawn at a higher density at the bottom, decreasing as you go up. The only part not procedurally generated is where you spawn, I wanted the player to be able to learn what each collectable does at the start of the game.