Meu jogo envolve um nível com terrenos deformáveis e unidades que podem viajar em qualquer direção, mas são desaceleradas por terrenos irregulares. A estrela A normal deve funcionar bem na maioria dos casos, exceto em terrenos planos, onde não importa como o descobridor de propósito geral funcionou, ele não enviaria unidades por um caminho direto. A estrela teta funcionaria se todo o nível fosse razoavelmente plano, mas seria muito mais lento se inicialmente tivesse que levar em consideração terrenos irregulares.
Eu acho que um algoritmo A-star de base à distância de Manhattan seria rápido e forneceria uma dica suficientemente boa para permitir que outros algoritmos de localização ou direção assumam o controle, mas não tenho certeza de que tipo de algoritmo usar para olhar em frente e decidir quando para abandonar o caminho, siga uma rota mais direta e para onde voltar mais tarde.
(A estrela-teta parece que seria muito ineficiente se fosse ajustada para levar em conta coisas como declives, obstáculos ou estradas. Veja a solução proposta para o comentário sobre como evitar campos minados em: http://aigamedev.com/open/ tutoriais / theta-star-any-angle-path / )
Edit: Eu não mencionei que já havia implementado e testado o A-star em uma grade semelhante. (Acho que excluí acidentalmente algo nesta pergunta.) Algumas das funções heurísticas / de custo mais óbvias que considerei não resultam em caminhos realísticos em uma grade quando um obstáculo bloqueia o caminho mais direto (basicamente quando a descoberta de caminhos é útil ) ( fotos de exemplo ). A mudança na função de custo usada pelo algoritmo Theta-star parece ser uma solução ideal (considerando a restrição de usar uma grade), mas assume-se que os ladrilhos têm os mesmos custos de viagem (e leva muito mais tempo).
Meu raciocínio original por trás do uso da distância de Manhattan foi terceirizar o algoritmo de "corte de canto" a partir do algoritmo de localização de caminhos, pois era mais importante ter um algoritmo rápido de localização de caminhos caso o layout ou o terreno dos obstáculos mudasse. Faz mais sentido executar o algoritmo "corner corner" uma vez quando a unidade chega do que em todas as permutações de todas as pesquisas do algoritmo de localização de caminhos (cujos resultados podem acabar sendo descartados de qualquer maneira). Uma pesquisa de quatro vizinhos com distância de Manhattan também é interessante porque você pode ver caixas de caminhos alternativos e identificar triângulos retos formados pelo caminho original e pelo caminho mais curto.
Uma pergunta melhor seria "Qual é a maneira mais rápida de identificar atalhos em um caminho com curvas de 90 graus?"