Estou interessado em encontrar caminhos entre vários mapas - podem ser mapas internos / externos, diferentes níveis em um edifício, etc., mas a principal restrição é a existência de um (ou mais) pontos de entrada / saída entre os diferentes mapas. Procurei e não consegui encontrar boas soluções, mas conheço vários jogos que usam sistemas semelhantes.
Eu encontrei este artigo - Descobrimento hierárquico do caminho mais curto aplicado ao planejamento de rotas para usuários de cadeira de rodas que parece abordar um problema semelhante, mas é puramente teórico.
Alguém fez algo semelhante com alguma experiência que eles poderiam compartilhar, ou com algumas dicas?
path-finding
Martyn
fonte
fonte
Respostas:
Eu fiz algo parecido há vários anos para uma demonstração de maquete do clone "Jagged Alliance", com tema de cyberpunk, que deveria ter grandes mapas cheios de arranha-céus. Foi uma ideia estúpida, aparentemente os mapas para combate tático devem ser arrumados e facilmente compreensíveis :)
Para ter um caminho mais rápido, um mapa global foi dividido em várias áreas discretas em forma de quadrado. Depois de termos critérios para as áreas, é hora de encontrar possíveis "entradas" entre cada par de áreas adjacentes. "Entrada" é um ponto de transição que mostra que este agente pode entrar nesta área neste momento.
No seu exemplo com a construção de vários andares, cada andar seria uma área com bordas definidas pelo piso, teto e paredes externas; e vários buracos na parede ou no chão, ou escadas seriam entradas, poderia haver muitos deles. Portanto, as entradas basicamente vinculam nós de caminho de uma área para nós de caminho na outra área.
Depois de identificar as entradas, você precisará encontrar todas as maneiras possíveis de percorrer cada área, resultando em um "mapa das entradas da área para as entradas da área adjacente", com as bordas entre as entradas mostrando o comprimento desse caminho pela área.
Se tudo der certo, o seu agente no 1º andar poderá encontrar rapidamente o caminho para a caixa especial no 4º andar. Talvez algo semelhante possa ser usado no seu problema de vários mapas, então espero que ajude.
fonte
Acredito que você esteja procurando por uma estrela hierárquica de localização de caminhos, como descrito aqui:
HPA- *
fonte