Estou criando um jogo RTS simples de cima para baixo. Eu planejo "gerar aleatoriamente" mapas rapidamente quando preciso. Eu planejo tudo isso trabalhando em 'passes':
- Encha o terreno com toda a grama
- Volte e adicione alguns jorros aleatórios de cascalho
- Arredonde o cascalho
- Desenhe a paisagem da montanha na segunda camada
- Arredonde as montanhas
- etc etc.
Agora, dê uma olhada nesta imagem abaixo:
Eu o criei manualmente usando meu editor de mapas, mas planejo que isso basicamente seja o resultado após a aprovação / etapa 3.
Como devo decidir quando e onde colocar meu cascalho para que ele tenha pelo menos uma forma irregular e esporádica o suficiente para parecer natural?
Obrigado se puder! Toda e qualquer ajuda é apreciada!
Como uma nota rodapé:
Cada passe é basicamente eu repetindo todos os meus blocos (o mapa é dividido em blocos de 40x40) semelhante a este:
for (int x = 0; x <= GRIDMAX - 1; x++) {
for (int y = 0; y <= GRIDMAX - 1; y++) {
//Terrain(x, y, 0) = SomethingHere;
}
}
fonte
Essencialmente, você pode usar a geração Perlin Noise para gerar seus mapas. Você poderia amostrar o mapa de altura gerado e atribuir blocos de cascalho a partes do mapa acima de uma determinada altura.
Aqui está um excelente post de referência sobre como implementar esse sistema e os diferentes tipos de terreno que você pode gerar.
Os exemplos têm muito mais etapas do que você precisaria, mas o conceito é o mesmo.
Mais sobre gen do mundo Minecraft
http://www.gamedev.net/blog/33/entry-2227887-more-on-minecraft-type-world-gen/
fonte