J'ai réussi à obtenir un travail de recherche de chemin pour une seule unité, et j'ai réussi à éviter la collision agent-agent, mais maintenant je dois pouvoir envoyer un groupe d'agents à un certain endroit.
Voici ma configuration jusqu'à présent:
- Recherche de chemin de waypoint
- La distance minimale entre deux nœuds est un peu plus grande que le plus grand rayon de sphère limite autorisé pour un agent.
- Les agents évitent les collisions avec d'autres agents en faisant un comportement de pilotage basé sur le chemin clair
Alors maintenant, je dois envoyer mes agents quelque part en groupe. J'ai lu quelques articles disant qu'une façon de le faire est de créer un chef de groupe et de donner aux autres unités des compensations à sa position.
Mais alors le problème est, et si la formation de groupe ne peut pas être réalisée? par exemple, vous voulez former un rectangle, mais à la position cible, il y a une structure à proximité qui vous empêche de créer une configuration de rectangle.
path-finding
rts
xcrypt
la source
la source
Réponses:
Il y a en fait un très bel article à ce sujet sur Gamasutra. Et couvre des sujets comme les formations et la résolution des collisions:
Et un autre article d'eux sur le même sujet, qui est un peu plus court mais contient plus d'exemples de pseudo-code:
Enfin, une chose intéressante à penser lors de la mise en œuvre de votre système est l'idée d'un "champ de flux" Supreme Commander 2 utilisé cela ; Et il est basé sur la recherche Crowd Flows de la Washington State University .
la source
Je pense que vous pouvez avoir une "entité troupeau" invisible qui est le patron de la formation, et faire en sorte que les autres créatures se positionnent par rapport à cette entité. Si cette entité peut pivoter, la position relative pivotera également.
... oopos .. vous le faites déjà.
Et ça:
Pourquoi ne pouvez-vous pas calculer de nouvelles positions pour les entités qui entrent en collision? Je n'ai pas besoin d'être sophistiqué, peut-être juste de dramer une ligne à partir du point d'origine souhaité et du leader, et de déplacer la position souhaitée au milieu de cette ligne. Testez à nouveau la collision.
la source