Estou trabalhando em um mundo processual 3D há um tempo e estou querendo começar a adicionar sistemas de cavernas. Atualmente, estou usando 2D / 3D Perlin Noise para a geração de terrenos em combinação com Marching Cubes para terrenos mais suaves. Eu só estou ficando perplexo quando se trata de longas cavernas interconectadas.
Espero conseguir algo mais parecido com os sistemas de cavernas do Minecraft. Eles parecem estar muito conectados, ramificam-se aleatoriamente em praticamente qualquer direção, e quase qualquer ponto da caverna teria uma aparência bastante circular com um raio bastante igual por toda parte (não é a melhor expressão, mas não tem muita certeza de como colocá-la) .
O maior desafio para gerar cavernas como eu estou querendo é que eu quero gerar o mundo em tempo real. O mundo é gerado pedaço por pedaço atualmente, começando onde o jogador está e gera a partir daí. Eu NÃO gostaria de gerar nada no mundo e depois cavar as cavernas usando um padrão errante, autômatos celulares, etc.
Existem algoritmos conhecidos que podem ser usados para isso? Se assim for, alguém quer compartilhar como eles fazem algo semelhante? Eu aprecio muito qualquer ajuda.
Um bom exemplo: