Ho cercato di capire come implementare qualcosa come il pathfinding in Starcraft 2. Non sto cercando tutte le funzionalità sofisticate come floccaggio, accodamento, ecc. In effetti mi piace come in Starcraft 1 le unità interferirebbero con ciascuna altro. Ma voglio un cercatore di percorsi migliore di quello usato in Starcraft 1.
Dalle ricerche di Google che ho fatto, le varie risposte hanno a che fare con A * su una mesh di navigazione e / o con una sorta di "grafico di visibilità". Ma ho ottenuto risposte un po 'contrastanti o poco chiare su cosa avrei dovuto fare.
Una cosa di cui ho letto ha a che fare con il fare A * sopra i vertici di una mesh triangolare (la mesh di navigazione). E poi in qualche modo "raddrizzare il percorso" che non so come fare. Ma questo non garantisce l'ottimalità, giusto?
Un'altra domanda che ho avuto è: come fa il pathcraft di Starcraft 2 a gestire il fatto che le unità sono dischi con un raggio finito e non punti quando hanno a che fare con gli angoli? E come affrontare ostacoli dinamici come unità inattive o anche altre unità in movimento.
Sto cercando una spiegazione dettagliata e grintosa e non le generiche panoramiche di altissimo livello tipiche dei risultati di ricerca.
Se è importante, ho già esaminato le note di Amit sul Path-Finding . Ho sentito parlare ma non ho letto Geometria computazionale: algoritmi e applicazioni . E un post sul blog su una presentazione di navigazione AI al GDC 2011 menzionava che Starcraft 2 utilizza una triangolazione delaunay vincolata per una navmesh. Sebbene il post del blog menzioni Boids Steering e "analisi degli orizzonti", non menziona esattamente come viene svolto il pathfinding principale sulla navmesh.