Mappa del gioco parzialmente osservabile - A * è appropriato?


16

So molto poco sullo sviluppo del gioco e sto cercando di avvolgere la mia testa attorno agli algoritmi di pathfinding.

Considera questa configurazione: un agente si trova su una mappa 2D e deve trovare il percorso più breve per un oggetto noto a livello globale, ma ha solo informazioni sugli ostacoli nel suo ambito di visione locale (cioè sono noti solo ostacoli immediati, il layout generale della mappa è sconosciuto ).

Inoltre, ogni spostamento in un quadrato adiacente è costoso e l'algoritmo di rilevamento del percorso dovrebbe ridurre al minimo il numero di spostamenti.

Anche l'efficienza computazionale è della massima importanza e più importante della precisione.

A * è appropriato per questo caso d'uso?

Risposte:


19

È necessario utilizzare l' algoritmo D * , progettato per questo scenario esatto. In particolare, l' implementazione di D * Lite è la variante più efficiente e semplice.


2
Altamente rilevante . Comprendere D * -lite è semplice dopo aver capito LPA * (l'algoritmo D * -lite è basato su) , ma LPA * stesso è abbastanza complesso. Quindi, se hai intenzione di implementare effettivamente D * -lite, l'articolo su LPA * sarebbe il punto di partenza (supponendo che tu abbia già capito A *, cioè)
BlueRaja - Danny Pflughoeft

3

Molte implementazioni dell'IA di gioco in quella situazione sceglieranno di imbrogliare e di darsi la piena conoscenza della mappa, dove il loro avversario umano non lo possiede. È quindi possibile semplicemente applicare A * alla mappa completa.

Quanto sia ragionevole questo aspetto per le unità controllate da computer dipenderà da cose come il labirinto come le mappe e se il giocatore probabilmente apprenderà i layout delle mappe nel tempo.

Se questo è per le unità controllate dal giocatore, puoi anche impedire al giocatore di selezionare una destinazione che non ha ancora esplorato, per costringerle ad esplorare manualmente.


2
Buoni suggerimenti, non appropriati per il mio caso d'uso, ma potrebbero essere utili agli altri. (Sto sviluppando un'intelligenza artificiale per competere in una simulazione di gioco)
David Chouinard,

ci sono anche giochi che utilizzano l'implementazione di percorsi di ricerca presuppone che le aree inesplorate siano attraversabili, mentre le aree precedentemente visitate non hanno avuto alcun cambiamento di attraversabilità dall'ultima visita (cioè non saprebbero che un muro potrebbe essere stato distrutto o costruito fino a quando non visita l'area ancora).
Lie Ryan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.