Estou procurando criar um mapa simples, gerado aleatoriamente, para um pequeno jogo.
O jogo consiste em uma visão de cima para baixo de um mundo, com áreas terrestres e oceânicas. Pense em um mapa simples do mundo, por exemplo.
A coisa mais próxima que eu já vi antes foi o gerador de níveis dos jogos antigos do SimCity , ou da série Civ , onde você pode definir uma preferência por um único continente versus muitas ilhas, etc.
Que tipo de algoritmo seria adequado? O mapa precisará ser moderadamente com zoom, para que eu possa ter uma visão de "mundo inteiro" e também uma visão local mais ampliada, mas acho que vou resolver isso mais tarde.
Inicialmente, não preciso de nenhum conceito de altura, apenas duas áreas - terra e mar, embora eu possa estendê-lo mais tarde.
Respostas:
O "famoso" Amit (com a página gigante de vários tópicos de programação de jogos) possui um blog de programação de jogos e ele acabou de concluir um tutorial em três partes de um método interessante de geração de mapas. Gostei muito das leituras, e há uma demonstração de trabalho na parte inferior do terceiro artigo, que é bastante estelar.
"Geração de mapa de polígono" parte 1 , parte 2 , parte 3 .
Essa pode ser uma técnica que você deseja adaptar às suas necessidades! No mínimo, ele menciona os algoritmos que usa em cada etapa do processo: ele inicia por geração de polígonos Voronoi , relaxa-os para uma distribuição mais uniforme usando o Lloyd relaxation , usa "uma função simples para dividir o mundo em terra e água" e, em seguida, enchimentos para determinar oceanos e lagos. Parece que você pode parar por aí ou ler sobre montanhas e vales e transformá-lo em 3D e assim por diante.
fonte