Embora as outras respostas aqui sejam realmente boas para gerar os tipos de paisagens estáticas que funcionariam para essa necessidade específica. Existem outros métodos que as pessoas que se deparam com essa pergunta podem estar procurando se desejam criar paisagens que mudam ao longo do tempo ou pareçam muito mais realistas. Você pode seguir essa técnica.
Ao contrário das outras respostas, você começa isso com um mapa totalmente vazio. Comece com o que você consideraria o nível do mar. Use o Perlin Noise para adicionar variações muito pequenas; se você tiver 256 elevações possíveis, não varie mais do que 3-5 em qualquer direção. Isso cria os primeiros bilhões de anos de sua paisagem sem precisar executar uma simulação por tanto tempo.
Placas tectônicas
Divida o mapa em linhas retas ou curvas para criar placas, quanto mais detalhadas as formas das placas, mais interessante será a sua paisagem. Mantenha-os grandes. Dê a cada placa uma direção, velocidade. Em um determinado período de tempo, mova as placas passo a passo pelo mapa, arrastando todas as peças acima delas.
Quando duas placas se cruzam, escolha qual irá passar e qual ficará abaixo, essa escolha poderá ser aleatória. Os ladrilhos nas placas designadas abaixo são instantaneamente reduzidos em altura em 5 etapas. Depois que uma placa é designada acima ou abaixo, todas as interações futuras com as placas seguirão estas regras:
- Quando uma placa designada cruza uma placa não designada, a placa não designada se torna do tipo oposto. (Assim, as placas UD ficam embaixo ao cruzar uma sobre.)
- Onde uma placa superior fica sobre uma placa inferior, todos esses ladrilhos sobem etapas de elevação de 0 a 1 e os ladrilhos seguem o caminho da placa superior.
- Onde uma placa cruzada cruza uma placa cruzada, todos esses ladrilhos sobem 1-2 etapas, e os ladrilhos na região cruzada não flutuam mais.
- Onde uma placa inferior cruza uma placa inferior, todos os ladrilhos na área com elevação maior que a marca de 66% para ambas as placas na região de cruzamento sobem 1-3 etapas (como se por atividade vulcânica, isso produziria ilhas por tempo suficiente ) e os ladrilhos nessa área param de ficar à deriva.
Todas as placas que se cruzam lentas em 20% da velocidade atual a cada passo. Para maior realismo, adicione uma mudança aleatória de -10% a 10% na direção do movimento a cada passo.
Depois de executar o número desejado de etapas. Provavelmente 5 a 10 são suficientes. Quaisquer ladrilhos onde nenhuma placa é residente, devem ser descartados no nível mais baixo existente.
Grande ou pequeno?
Esse mapa pode ser usado como está ou ser expandido para criar um mapa muito maior dividindo-o em pedaços de bloco 4X4 (célula) e expandindo essas seções com base em suas elevações individuais. Trate a elevação de cada célula como um ponto e crie uma gradação suave no mapa maior entre esses pontos. Portanto, se o mapa maior for 40X40 em vez de 4X4 e o ponto (0,0) for 10 e o ponto (0,1) for 1, os blocos no mapa maior entre eles serão 10,9,8,7,6 , 5,4,3,2,1 de altura. É possível adicionar mais ruído Perlin para suavizar as inclinações. No geral, toda essa técnica de dimensionamento é semelhante ao algoritmo Diamond Square .
Água
Simular rios e lagos, oceanos e lençóis freáticos. Eu prefiro usar autômatos celulares .
As alturas tornam-se flutuantes ou intervalos int expandidos para permitir um rastreamento mais refinado. As células da água têm valores de saturação, digamos na faixa de 1-256. Os mapas devem começar uniformemente. Você precisará jogar com os números para o tamanho de seu mapa individual; no entanto, geralmente você seguirá regras mais ou menos assim:
- Se uma célula vizinha estiver mais saturada, aumente a saturação e ganhe altura.
- Se uma célula vizinha estiver menos saturada, diminua a saturação e perca a altura.
Faça essa verificação para todas as células vizinhas. Execute um número suficiente de etapas. Se desejar, você pode adicionar temperatura a esta simulação alterando a quantidade de saturação perdida / adquirida por essa temperatura. Você também pode alterá-lo com base na elevação. Lagos e rios naturais devem se formar. Alguns vão cair no oceano. (O oceano provavelmente não será preenchido por nenhuma métrica, mas você designará qualquer coisa abaixo do nível do mar como preenchida com água no final).
Você pode manter os dados de temperatura e saturação para usar, como nas outras respostas, para criar biomas. Eles devem ser MUITO mais precisos e interessantes. Com biomas nevados nos pólos e quentes no meio (se você usar uma lista gradual e suave de temperaturas).
Você também pode simular o vento e, portanto, as mudanças de temperatura com base nas elevações. Você pode alternar entre executar a simulação de temperatura e a simulação de água, se desejar. No entanto, eu não construí nada usando mudanças de temperatura, então não vou comentar sobre como fazer isso.
Paisagens em evolução
Se você mantiver as simulações de terra, água e calor ao redor e reduzir drasticamente seus efeitos e também impedir que as placas se movam, você poderá continuar alterando todas essas métricas ao longo do tempo. Eu não faria os cálculos com muita frequência, mas você pode obter um mapa-múndi que responda a mudanças dessa maneira.
Conclusão
Embora esses tipos de técnicas sejam muito mais envolvidos, eles produzem efeitos muito mais realistas e evolutivos. Tome-o para o que vale a pena?