Sì. A * è ancora la strada da percorrere in quasi tutti i casi. È il calcolo del costo del nodo che diventa dinamico e quindi più complesso da calcolare e tracciare.
Se sai già dove saranno gli ostacoli mobili in futuro, il tuo A * può tenere conto della temporalità degli ostacoli nella funzione di costo.
Ad esempio: questo nodo verrà raggiunto in 4 tick, occupato dal tick # 3 fino al tick # 6, quindi il costo del viaggio su questo nodo è 6 - 4 = +2 tick. Questo potrebbe essere ancora il percorso migliore.
Anche la direzione di marcia dell'ostacolo deve essere presa in considerazione.
Se non lo sai in anticipo, non puoi assumere ostacoli e ricalcolare il percorso quando gli ostacoli vengono raggiunti, ma dovrai fare qualcosa per deadlock e livelock. (Lo stesso vale se puoi prevedere dove si troveranno gli ostacoli ma quello in sé è un tipo di evitamento di deadlock / livelock e che può essere abbastanza buono per il tuo scopo.)
Un deadlock è quando entrambi aspettano che l'altro si sposti e nessuno si muova.
Un livelock è quando entrambi ( o più <- questo è importante da considerare) si muovono per evitare l'altro nella stessa direzione e finiscono per andare avanti e indietro senza progressi.
Risolvere i livelock può diventare molto complesso e questo dipende interamente dalle regole e dai meccanismi di collisione del tuo gioco (ad esempio: dovrebbero combattere e distruggere l'ostacolo?).
Spesso ritorna ad avere gli oggetti in movimento che pianificano le prenotazioni di nodi / percorsi (non dimenticare le cancellazioni quando cambiano percorso o muoiono) in modo che altri oggetti in movimento possano pianificare in anticipo.
Una volta che hai queste informazioni puoi anche pianificare le intercettazioni.