Je travaille à essayer d'améliorer le repérage des ennemis de mon jeu. À l'heure actuelle, ils se déplacent essentiellement vers la position exacte du joueur en calculant l'angle entre eux et les joueurs et en se déplaçant dans cette direction. J'ai également un algorithme de flocage qui empêche les ennemis de s'empiler les uns sur les autres, ils se formeront donc en groupes plutôt que de se couper les uns les autres.
Cependant, maintenant que j'ai ajouté une carte à base de tuiles, j'ai besoin que les ennemis puissent également contourner les obstacles et les murs par exemple. J'ai d'abord essayé d'ajouter une valeur de séparation aux tuiles "non accessibles à pied" afin que l'algorithme de flocage considère les murs et les obstacles comme des objets à éloigner. Je dois encore déterminer si cela est faisable ou non, car mon test initial a montré que les ennemis frappaient un "mur" invisible où il n'y avait pas de tuiles non accessibles à pied, mais pour une raison quelconque, ils le frappaient et commençaient à briller.
Je me demandais si les performances pouvaient être trop lourdes pour calculer un chemin vers le joueur en utilisant A *, puis utiliser l'algorithme de flocage pour éviter l'agglutination. À l'origine, mon jeu allait être un jeu de tir basé sur les vagues, mais j'ai plutôt décidé de le faire en fonction du niveau dans la veine de Hotline Miami, il est donc probable que j'aurai moins d'ennemis, avec la horde occasionnelle, et je ferai juste les plus forts.
Est-ce une solution viable? J'utilise Java avec Slick2D comme moteur de jeu. Ou existe-t-il une meilleure solution / algorithme qui s'attaque à ces deux problèmes?