Carte de jeu partiellement observable - A * est-il approprié?

16

Je sais très peu de choses sur le développement de jeux et j'essaie de comprendre les algorithmes de recherche de chemin.

Considérez cette configuration: un agent est sur une carte 2D et doit trouver le chemin le plus court vers un objet connu mondialement mais ne dispose que d'informations sur les obstacles dans son champ de vision local (c'est-à-dire que seuls les obstacles immédiats sont connus, la disposition générale de la carte est inconnue ).

De plus, chaque déplacement vers un carré adjacent coûte cher et l'algorithme de recherche de chemin devrait minimiser le nombre de déplacements.

L'efficacité informatique est également de la plus haute importance et plus importante que la précision.

A * est-il approprié pour ce cas d'utilisation?

David Chouinard
la source

Réponses:

19

Vous devez utiliser l' algorithme D * , conçu pour ce scénario exact. Plus précisément, l' implémentation D * Lite est la variante la plus efficace et la plus simple.

jmegaffin
la source
2
Très pertinent . Comprendre D * -lite est simple une fois que vous comprenez LPA * (l'algorithme D * -lite est basé sur) , mais LPA * lui-même est assez complexe. Donc, si vous prévoyez de réellement mettre en œuvre D * -lite, le document sur LPA * serait le point de départ (en supposant que vous comprenez déjà A *, c'est-à-dire)
BlueRaja - Danny Pflughoeft
3

De nombreuses implémentations d'IA de jeu dans cette situation choisiront de tricher et se donneront une connaissance complète de la carte, où leur adversaire humain n'a pas cela. Vous pouvez ensuite simplement appliquer A * à la carte complète.

La mesure dans laquelle cela semble judicieux pour les unités contrôlées par ordinateur dépendra de choses comme le labyrinthe comme les cartes et si le joueur est susceptible d'apprendre les dispositions de la carte au fil du temps.

S'il s'agit d'unités contrôlées par les joueurs, vous pouvez également empêcher le joueur de sélectionner une destination qu'ils n'ont pas encore explorée, pour les forcer à explorer manuellement.

Adam
la source
2
Bonnes suggestions, non appropriées à mon cas d'utilisation, mais qui pourraient être utiles à d'autres. (Je développe une IA pour participer à une simulation de jeu)
David Chouinard
il y a aussi des jeux qui utilisent la mise en œuvre de la recherche de chemin suppose que les zones inexplorées sont traversables, alors que les zones précédemment visitées n'avaient eu aucun changement dans la traversabilité depuis la dernière visite (c'est-à-dire qu'il ne saurait pas qu'un mur peut avoir été détruit ou construit jusqu'à ce qu'il visite la zone encore).
Lie Ryan