Consegui obter o trabalho de busca de caminho para uma única unidade e evitei a colisão agente-agente, mas agora preciso enviar um grupo de agentes para algum local.
Esta é a minha configuração até agora:
- Localização de waypoint
- A distância mínima entre dois nós é um pouco maior que o maior raio da esfera delimitadora permitido para um agente.
- Os agentes evitam colisões com outros agentes adotando algum comportamento de orientação I com base no caminho claro
Então agora eu preciso enviar meus agentes para algum lugar do grupo. Eu li alguns posts dizendo que uma maneira de fazer isso é criar um líder de grupo e dar as outras unidades compensadas para sua posição.
Mas então o problema é: e se a formação do grupo não puder ser alcançada? por exemplo, você deseja formar um retângulo, mas na posição de destino existe uma estrutura próxima que impede a criação de uma configuração de retângulo.
path-finding
rts
xcrypt
fonte
fonte
Respostas:
Na verdade, há um artigo muito bom sobre isso no Gamasutra. E abrange tópicos como formações e resolução de colisões:
E outro artigo deles sobre o mesmo tópico, que é um pouco mais curto, mas tem mais exemplos de pseudo-código:
Finalmente, uma coisa bacana para se pensar ao implementar seu sistema é a idéia de um Supremo Comandante 2 de "Campo de Fluxo" usado isso ; E é baseado na pesquisa Crowd Flows da Washington State University .
fonte
Eu acho que você pode ter uma "entidade de rebanho" invisível que é o chefe da formação, e fazer com que as outras criaturas se posicionem em relação a essa entidade. Se essa entidade puder girar, a posição relativa também girará.
... oopos .. você já está fazendo isso.
Que tal isso:
Por que você não pode calcular novas posições para as entidades que colidem? Não preciso ser extravagante, talvez apenas arraste uma linha do ponto original desejado e o líder e mova a posição desejada para o meio desta linha. Teste novamente a colisão.
fonte