Придумал сегодня очень простой алгоритм генерации островов для своей будущей игры
Может кому нибудь и пригодиться
JavaScript демка (обновляем страничку для генерации)
А теперь для заинтересовавшихся рассказываю суть:
0) Имеется карта. Заполняем её водой.
1) В точке (x0, y0), радиусом r рисуем круг суши.
2) Задаем рандомное число n (у меня оно лежит в пределах [5 ; 10])
3) Теперь повторяем n раз следующее действие: рисуем круг суши, в рандомных координатах, где x принадлежит [x0-r ; x0+r], а y соответственно [y0-r ; y0+r]. И рандомным радиусом, в пределах [0.2r ; 0.5r].
4-5) Делаем тоже самое, что и в пунктах 2-3, но заполняем круги водой.
Пол дела сделано. Осталось сгладить карту. Я делал так:
6) Перебирал все квадраты 2*2 ячеек, усреднял значение высот, и задавал каждой ячейке этого квадрата, это усредненное значение. Если не ошибаюсь, данный метод называется сглаживание по квадрату.
ps:Да я знаю что есть много других, более реалистичных алгоритмов.