I'm Andrew Ekeren, the programmer working on Panda Flip. Some background info: the game is made using the open-source Flash game engine, Flixel. This is my first attempt at creating a release-ready procedural game. The goal is to use (relatively) simple procedural techniques to extend the life of the game. To keep it simple, there won't be any actions other than movement and jumping. I want to polish the core mechanics until they are fun.
Setting up a Level to Loop Infinitely
Early on, I decided that I wanted to take the principles of object pooling (link to photon storm) into procedural levels. Something easy on the memory while also being varied enough to call it procedural. To do this I created a LevelManager class which manages smaller levels, named Cells. LevelManager is responsible for the creation and destruction of cells, populating the cells with tiles and obstacles, as well as cycling the cell positions to create the illusion of infinite levels.
Procedural Obstacle Creation
So creating the objects is by far the easiest part. The hard part is creating them in a way that is interesting to play, as well as possible to pass. In its current stage there are pits and platforms created that can stop the player from progressing. I've created a function that counts solid or empty tiles in any direction from any point. I use the count function within nested loops in order to check certain conditions, and then place the obstacle if its appropriate. For example, before placing a pit it first checks if there is a solid tile to the left, then if there are enough tiles to the right to create a pit, then if there's enough room above the pit to jump across, and finally creates a pit. A problem with how its currently implemented is that the individual cells can't detect tiles in adjacent cells. To solve this I'm either going to pass in more references for a more complete check, or generate "bridge" cells to place in between template cells to ensure that there are no impossible areas.
Now For the Good Stuff
Here's a low FPS video of the work in progress. The bright pink tiles are the generated platforms, while the light grayish pink are the pits. You can see where there are impossible areas.