Quel est un bon algorithme de recherche de chemin 2D basé sur la grille?

Je crée actuellement un jeu 2D en version JavaScript en utilisant l'élément HTML5 <canvas>. Cela arrive très bien, mais j'ai rencontré un problème.

La conception de niveau pour mon jeu est une grille (donc le coût du trajet passant d'une cellule à la cellule nord / sud / est / ouest est 1) avec divers obstacles occupant différents emplacements dans la grille – beaucoup comme un labyrinthe, mais avec beaucoup Plus de marge de manœuvre. Chaque niveau individuel est de l'ordre de 400 × 200 cellules.

J'essaie de mettre en œuvre un ennemi qui cherchera le joueur, peu importe où ils pourraient être, mais j'ai du mal à essayer de traduire l'un des différents algorithmes de recherche de chemin pour répondre à ma situation. La plupart de ceux que j'ai rencontrés (comme A * et Dijkstra) semblent être les mieux adaptés à 3D ou des situations 2D beaucoup plus compliquées. Je me demandais s'il était possible de simplifier considérablement ces algorithmes pour mieux répondre à mes objectifs, ou si quelque chose comme la recherche en profondeur-première serait une alternative plus efficace compte tenu de la taille du niveau.

    A * est un algorithme de guidage 2D très courant. Il faudra peut-être un peu de temps pour envelopper la tête de ce qui se passe si la recherche de chemin n'est pas familière, mais ce n'est pas terriblement complexe. Vous pouvez simplement regarder le code d'exemple de quelqu'un d'autre qui a été développé pour une application plus complexe que celle que vous avez l'intention. Il existe un bon tutoriel pour comprendre l'algorithme ici .

    Vérifiez ceci https://github.com/qiao/PathFinding.js Il a beaucoup de démonstrations et d'algothèmes de recherche de chemin.

    EasyStar.js est une bibliothèque intéressante qui semble faire ce que vous souhaitez. Je ne l'ai pas utilisé moi-même, mais la documentation sur la page Github du projet semble très bien, et c'est probablement ce que je choisirai dans votre position.