Skip to content

Pathfinder through maps #18

@Timorem

Description

@Timorem

Voilà le prochain challenge, réaliser un algorithme capable de trouver le chemin du bot pour aller d'une map à une autre et cela peut importe les moyens à emprunter.
C'est un algorithme de taille qui doit prendre en compte un tas de possibilités

Voici les critères :

  • être capable de trouver un chemin depuis n'importe quelle map, vers n'importe quelle map accessible par le joueur.
  • le trouver en un temps honorable (quelques secondes pas plus)
  • pouvoir utiliser
    • les soleils (cell trigger)
    • les interactives objects téléporteurs
    • les npcs téléporteurs
    • les zaaps
    • les potions de téléportations
  • et bien sûr ne pas se bloquer contre un mur :D

J'ai quelques idées pour le réaliser.

Tout d'abord il faudrait faire une sorte de map géante qui regrouperait les 5 600 000 cellules avec leur propriété (ça fait un truc assez lourd :p). Bien entendu on ne peut pas le charger directement dans le bot, ce serait beaucoup trop long et inutile.

L'idée serait alors de faire un outil qui calculerai des tas de chemins possibles qui relieraient les différentes subareas à l'aide du mappage géant (environ 1000 chemins). Avec ces chemins le bot pourrait passer d'une subarea à une autre en suivant le chemin. Ce qui sera plus compliqué à gérer ce sera les interactives objects et les cell triggers (quoique ce dernier peut être +/- deviné)

Reste à voir comment se déplacer dans les subareas. Et bien c'est beaucoup plus simple, on charge les maps de la subarea (il y a en a rarement plus d'une vingtaine) quand on change de subarea et on fait comme pour le mappage géant mais à plus petite échelle. Cela nous fait un pathfinding dans environ 10 000 cellules ce qui avec un pathfinding optimisé est honorable.

Maintenant ce qui est plus compliqué à gérer ce sont les "raccourcis", càd les zaaps, les potions, ...

Mais voilà en tout cas l'idée de départ.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions