Thought I'd post a quick update on the generator algorithm:
Although the scanner part is perfect, the generation is
very difficult to get correct.
I'm now working on a
Cellular Automata design document which will specify a way of creating the grid of possible levels, that essentially plays the "game of life" with the grid until only 100% valid solutions exist.
Sadly, the fitness function (it figures out whether a "cell" lives or dies) is extremely expensive to calculate, and I'm trying to find a fast way to calculate it, but this is proving to be just as difficult as the brute-force method.
The best I've got so far is some "fast boolean math" methods that can be used, but I've not come up with a very efficient way of computing the whole fitness function itself yet.
Whatever I do come up with is going to be quite unorthodox, I can say that.
The number of computations goes something like this:time_taken = number_of_level_grid_tiles * (number_of_tiles_in_tileset * 8) * (9_spaces_to_evaluate_per_step) * calculations