Geração de mapa de blocos 2D

Estou desenvolvendo um mecanismo de blocos 2D e, neste momento, estou trabalhando em algoritmos de geração de mapas.

Eu tentei os básicos geralmente envolvidos na geração simples de mapas de altura, como

geração morroruído permanentequadrado de diamante

mas sempre encontro o mesmo problema: esse tipo de algoritmo parece adequado ao lidar com mapas de blocos que também possuem um componente de altura, mas esse não é o meu caso.

Basicamente, tenho sprites como grama, mar, deserto e assim por diante, mas eles não devem ser colocados dentro do mapa de acordo com a altura gerada, mas algo como

tudo começa do oceanoilhas são colocadas no meio do mapa (é aqui que os algoritmos que eu tentei falham principalmente)deserto são gerados (eles devem ser como pontos aleatórios ao redor)cadeias de montanhas e colinas são geradas (elas devem ser como cobras)

Que tipo de abordagem devo tentar?

Resolvi os problemas dos subcomponentes (como desertos, colinas e montanhas) desenvolvendo algoritmos especializados para fazer o que eu precisava (por exemplo, a montanha começa a partir de um ponto e depois segue uma direção com chance de virar), mas estou falhando na geração as ilhas básicas (que podem ser personalizadas para serem apenas uma pangea ou vários graus de tamanho).

Só para lhe dar uma idéia prática, o que estou procurando é algo como o algoritmo da civilização:

questionAnswers(2)

yourAnswerToTheQuestion