IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

A* vs Dijkstra pour un jeu de tactique


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Anarchiste
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Anarchiste

    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Points : 16
    Points
    16
    Par défaut A* vs Dijkstra pour un jeu de tactique
    Bonjour,

    Je lis partout que A* est préférable aux autres algorithmes de pathfinding pour la plupart des jeux.

    Dans un contexte de jeu de tactique (déplacement par case) où l'on peut déplacer son personnage de plusieurs case, où chaque case à son propre coût de mouvement et où l'on veut pouvoir afficher le chemin pour aller sur une case lorsque celle-ci est survolée : Dijkstra n'est-il pas préférable ?

    Je vais essayer d'éclaircir ma question : le fait de calculer le chemin avec A* à chaque survol d'une case n'est-il pas plus gourmand que de calculer tous les chemins d'un coup et se contenter de le retrouver au survol ?

    Je sais que ça dépend de la taille de carte mais théoriquement : pour toute taille de carte ?

    Désoler si je ne suis pas clair,

    Pierre

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 591
    Points
    188 591
    Par défaut


    Citation Envoyé par thatPiero Voir le message
    Je lis partout que A* est préférable aux autres algorithmes de pathfinding pour la plupart des jeux.
    Ce constat part du fait que Dijkstra calcule beaucoup trop de choses que strictement nécessaire : l'algorithme cherche à prouver qu'il a obtenu le chemin optimal, alors que, dans les graphes présents dans les jeux, la structure est telle que l'algorithme prend beaucoup de temps pour prouver qu'une solution rapidement trouvée est optimale. De plus, un jeu n'a pas toujours besoin d'un chemin optimal : un très bon chemin est suffisant (c'est-à-dire à peine un peu plus long que l'optimal, mais pas tellement).

    Ici, au contraire, tu peux passer ton temps à calculer plus de choses que strictement nécessaire, puisque tu les utiliseras. À la condition que… lancer ton Dijkstra une fois ne soit pas plus lent que lancer un A* !
    (D'ailleurs, Dijkstra ne calcule pas tous les plus courts chemins, mais seulement une bonne flopée, selon ce qui est nécessaire : si tu les veux vraiment tous, soit tu relances Dijstra pour les nouvelles destinations en réutilisant les résultats précédents, soit tu utilises Bellman-Ford.)
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Anarchiste
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Anarchiste

    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Points : 16
    Points
    16
    Par défaut
    ok merci d'avoir pris le temps de répondre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [c++]Architecture des classes pour un jeu
    Par Pegasus32 dans le forum C++
    Réponses: 23
    Dernier message: 16/02/2005, 14h07
  2. Menus en OpenGL pour un jeu?
    Par shifty.net dans le forum OpenGL
    Réponses: 7
    Dernier message: 02/07/2004, 12h38
  3. Réponses: 6
    Dernier message: 30/06/2004, 08h16
  4. [Threads]Comment les organiser pour un jeu du serpent ?
    Par Pill_S dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 11/05/2004, 15h22
  5. Quel style de DirectX pour un jeu 2D ?
    Par delire8 dans le forum DirectX
    Réponses: 34
    Dernier message: 31/07/2003, 00h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo