Estou desenvolvendo um RTS baseado em blocos em tempo real. Este é um exemplo de mapa:
Este mapa consiste em 4 regiões com 256 blocos cada. Azulejos azuis representam obstáculos. As unidades podem se mover nas oito direções padrão. As unidades são ligadas a blocos; um bloco pode conter uma unidade.
Estes são alguns exemplos dos caminhos ideais que estou procurando. Material típico A *:
Minha pergunta é: Uma malha de navegação é aplicável a um RTS baseado em bloco? Eu só vi mapas de navegação usados em jogos em que as unidades são livres e não estão ligadas a uma grade de peças. Como seria a malha de navegação neste mapa em particular? Um exemplo de imagem seria excelente.
path-finding
rts
navmesh
mario_sunny
fonte
fonte
Respostas:
Sim, malhas de navegação ainda são aplicáveis a jogos baseados em blocos. Embora, eles seriam usados principalmente como uma otimização. Por exemplo, converti a parte inferior esquerda da sua imagem para usar uma malha de navegação:
Nesse caso, cada quadrado verde seria um nó de navegação. Como você pode ver, isso reduz drasticamente o número de nós que o A * precisa processar. As unidades podem simplesmente seguir o caminho para o centro de cada um desses nós.
A geração desses nós é um problema diferente. Pode ser complexo decidir como formar os nós. Existem algumas perguntas no site em que você pode encontrar algumas idéias sobre como gostaria de implementar isso:
Subdividir um polígono em caixas de tamanhos variados
Identificando padrões quad em uma matriz bidimensional
/programming/20220215/minimum-number-of-rectangles-in-shape-made-from-rectangles
Essa malha de navegação também pode ser essencialmente usada como um caminho de "primeira passagem". Se um caminho for encontrado através da malha de navegação, você saberá que existe um caminho. Este é um teste mais rápido para verificar se dois pontos estão conectados.
fonte