J'ai essayé de comprendre comment implémenter quelque chose comme le pathfinding dans Starcraft 2. Je ne cherche pas toutes les fonctionnalités sophistiquées comme le flocage, la file d'attente, etc. En fait, j'aime la façon dont dans Starcraft 1 les unités interféreraient avec chacune autre. Mais je veux un meilleur localisateur de chemin que celui utilisé dans Starcraft 1.
D'après les recherches Google que j'ai faites, les différentes réponses ont quelque chose à voir avec A * sur un maillage de navigation et / ou avec une sorte de "graphique de visibilité". Mais j'ai obtenu des réponses quelque peu contradictoires ou peu claires sur ce que je dois faire.
Une chose que j'ai lue a quelque chose à voir avec faire A * sur les sommets d'un maillage triangulaire (le maillage de navigation). Et puis en quelque sorte "redresser le chemin" que je ne sais pas faire. Mais cela ne garantit pas l'optimalité, n'est-ce pas?
Une autre question que je me posais est de savoir comment le guidage de Starcraft 2 gère le fait que les unités sont des disques avec un rayon fini et non des points lorsqu'il s'agit de coins? Et comment gérer les obstacles dynamiques comme les unités inactives ou même d'autres unités mobiles.
Je cherche des explications détaillées et non les aperçus génériques de très haut niveau qui sont typiques dans les résultats de recherche.
Si c'est important, j'ai déjà regardé les notes d'Amit sur la recherche de chemin . J'ai entendu parler de Géométrie informatique: algorithmes et applications, mais je ne l'ai pas lu . Et un article de blog sur une présentation de navigation sur l'IA au GDC 2011 a mentionné que Starcraft 2 utilise une triangulation delaunay contrainte pour un navmesh. Bien que le billet de blog mentionne la direction Boids et l '"analyse d'horizon", il ne mentionne pas exactement comment le cheminement de base est effectué sur le navmesh.