Algoritmo de geração aleatória de masmorras ("dungeons")

Opa,

Eu estou tentando bolar um algoritmo eficiente de geração de masmorras (sim, rpg :oops: ).

Eu estava tentando construir primeiro os corredores, e depois jogar as salas em cima, mas ficou bem ineficiente e feio.

Agora estou utilizando a seguinte estratégia:

1 - Gero uma sala(A) de tamanho aleatório em um lugar aleatório;
2 - Gero outra sala(B) de tamanho aleatório em outro lugar ;
3 - Faço a ligação entre a sala A e a sala B, por enquanto de maneira “não-aleatória”;
4 - A = Alguma sala já criada (escolhida aleatoriamente);

E repito os processos 2, 3 e 4 até o numero de salas chegar ao pretendido.

Gostaria que você, freqüentador do guj :smiley: , deixe sua crítica e opinião de como melhor esse gambitmo (ver POG).

Obrigado.

Um modelo interessante é o usado pelo MUDs do tipo CircleMud e EliteMud:

Cada “sala” pode ter até 6 saidas (trancadas ou não) para cada um lados (+ cima/baixo). Vc não precisa conectar uma sala na outra, basta dizer aonde aquela saida vai dar.

Sala A tem saida ao sul para B
Sala B tem saida ao norte para A

Aqui temos algo bidirecional. mas vc pode ter apenas um dos casos. Seria uma sala “magica” ou “sem saída”, típica de armadilhas ou salas de chefões/tesouros. Nesses casos vc teria que apelar para alguma magia para poder sair ou então ficar la até morrer.

Também poderia ter a Sala B com, saída, ao norte, para outra sala. A sala A seria inacessível atraves da sala B, isso também pode ser pensado como mágica OU algum tipo de mecanismo que só permita movimentos em uma direção.

Entretanto os MUDs não são graficos, por isso não sei se vc pode usar este conceito em algo 3D/Gráfico.

[quote=peczenyj]

Um modelo interessante é o usado pelo MUDs do tipo CircleMud e EliteMud[

/quote]

Humm, obrigado pela sugestão, ela me deu umas idéias.

A parte de desenho está ok (na verdade esse gerador é para um editor de mapas que eu já “concluí”).

Os corredores são algo essencial no meu caso.

Obrigado pela sugestão.