Eu estive analisando alguns algoritmos e artigos sobre como gerar uma masmorra proceduralmente. O problema é que estou tentando gerar uma casa com quartos e eles não parecem atender às minhas necessidades.
Por um lado, as masmorras têm corredores, onde as casas têm corredores. E embora inicialmente pareçam iguais, um salão nada mais é do que a área que não é um quarto, enquanto um corredor é projetado especificamente para conectar uma área a outra.
Outra diferença importante em uma casa é que você tem uma largura e altura específicas e precisa preencher a coisa toda com salas e corredores, enquanto que em uma masmorra, há espaço vazio.
Acho que os corredores de uma casa são algo entre um corredor de masmorra (leva você para outros cômodos) e um espaço vazio na masmorra (não está explicitamente definido no código).
Mais especificamente, os requisitos são:
- Há um conjunto de salas predefinidas
que não consigo criar paredes e portas em tempo real. - Os quartos podem ser rotacionados, mas não redimensionados
Novamente, porque eu tenho um conjunto predefinido de quartos, só posso girá-los, não redimensioná-los. - As dimensões da casa são definidas e devem ser totalmente preenchidas com salas (ou salões). Ou
seja, eu quero preencher uma casa 14x20 com as salas disponíveis, certificando-se de que não haja espaço vazio.
Aqui estão algumas imagens para deixar isso um pouco mais claro:
Como você pode ver, na casa, o "espaço vazio" ainda pode ser percorrido e leva você de um cômodo para outro.
Então, tendo dito tudo isso, talvez uma casa seja apenas uma masmorra muito bem cheia de corredores. Ou é algo mais fácil do que uma masmorra. Talvez haja algo por aí e eu não o encontrei porque realmente não sei o que procurar.
É aqui que eu gostaria da sua ajuda: você poderia me dar dicas sobre como criar esse algoritmo? Alguma idéia de quais medidas serão necessárias? Se você criou um gerador de masmorra, como você o modificaria para atender aos meus requisitos? Você pode ser tão específico ou genérico quanto desejar. Eu estou olhando para escolher o seu cérebro, realmente.