AI orientée vers l'action: l'algorithme d'évasion prend beaucoup de temps


9

L'évasion, le processus d'évasion, est l'opposé de la chasse. Au lieu d'essayer de réduire la distance jusqu'à la cible, nous essayons de la maximiser.

Cela prend beaucoup de temps tout en évitant plusieurs objets simultanément. J'utilise BFS ici. Pour accélérer les algorithmes à utiliser?


2
Je pense que tu veux dire "évasion"
BigStuuu

@BigStuuu, Oui, "évasion"
Md Mahbubur Rahman

Réponses:


12

Je vous suggère d'utiliser des comportements de pilotage pour simuler ces types de comportement. Voir cette page pour un exemple de comportement évasif mis en œuvre de cette manière.

L'idée de base est que vous ne considérez que des propriétés simples comme les vecteurs de position et de vitesse de vos proies et de vos prédateurs pour calculer le changement souhaité de ces propriétés en temps linéaire. Il en résulte un comportement réactif mais réaliste.

Cependant, cela se fait au prix de ne pas prendre en compte d'autres facteurs, comme des objectifs plus élevés (la position des power-ups par exemple) ou la position des obstacles statiques, comme vous le feriez pour la recherche de chemin. Ceux-ci peuvent être pris en compte en combinant l'approche des comportements de pilotage avec, par exemple, des champs potentiels (voir Utilisation de champs potentiels dans un scénario de jeu de stratégie en temps réel (Tutoriel) ) ou la recherche de chemin (par exemple, la méthode de la carte de corridor ). Dans ce dernier cas, vous souhaitez réduire la fréquence de mise à jour (et faire confiance aux comportements de pilotage pour compenser les erreurs qui pourraient survenir à cause de cela) ou effectuer une replanification partielle, éventuellement combinée avec une approche plus hiérarchique (par exemple, la recherche de chemin hiérarchique quasi-optimale (HPA *) .

Si vous souhaitez une réponse plus spécifique, améliorez votre question avec plus de détails sur votre problème. Par exemple, pensez à décrire l'objet de votre jeu et le nombre de PNJ dont nous parlons.


Vous pouvez également gérer la progression des objectifs concurrents avec une logique floue. Donc, si la proie fuit le prédateur, elle peut également se déplacer vers une grotte (ou se mettre sous tension ou autre). Cela peut produire des situations intéressantes où le prédateur se tient entre la grotte et la proie et la proie hésite à fuir de part en part et lorsque le prédateur poursuit une proie différente, il se déplace dans une large couchette autour du prédateur pour atteindre la grotte. Le tout avec un coût supplémentaire limité. (sous-grotte pour quelque chose de mobile, comme un infirmier sur un champ de bataille, pour voir pourquoi les champs potentiels ne sont pas une bonne solution ici.)
DampeS8N
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.