Passes:
0
/
Seed size:
Water:
Smooth:
Speed:

I stumbled over a thread on a forum about terrain generation using "cellular automata" type algorithms, which, owing to my past flirtings in the area, I found most interesting. Here's an implementation of it in Canvas. The options are:

**stop/go**: make it go and not go!**default**: drop down with some presets. I like "luna lander".**Passes**: how many "refinements" the algorithm makes. Because each pass doubles the size of the array to process, don't make this too high!**Seed size**: the initial size of the array. Smaller arrays make it easier to see what's going on - and provde more "sparse" land shapes**Water chance**: the chance (from 0 to 1) that an initial cell will contain water**"Smoothing"**: gets rid of some "jaggies" on the coasts by only allowing it to be water if it's surrounded by X other water's (something like that... I forget)**Speed**: how fast to do each iteration (in ms).

I can't for the life of me find that forum thread, but the basic idea went like this:

- Create a small matrix and seed with either water or land
- Double the size of the matrix so that each cell now takes up 4 cells
- Refine the new big map, selecting land or water based on how many surrounding cells are land or water
- Jump back to 2 for a few iterations.

The results are pretty interesting - I love how simple rules can create such intricate fractal-y outcomes. I've put the terrain generation code on GitHub if you want to take a look (beware: it's pretty "loopy")!