Pracuję nad ulepszeniem wyszukiwania ścieżek dla wrogów mojej gry. W tej chwili po prostu stale poruszają się w kierunku dokładnej pozycji gracza, obliczając kąt między sobą a graczami i poruszając się w tym kierunku. Mam również algorytm uciekający, który zapobiega gromadzeniu się wrogów na sobie, dzięki czemu będą się grupować, a nie przenikać.
Jednak teraz, gdy dodałem mapę opartą na kafelkach, potrzebuję wrogów, aby mogli także na przykład omijać przeszkody i ściany. Początkowo próbowałem dodać wartość separacji do płytek „niepodlegających chodzeniu”, aby algorytm flokowania traktował ściany i przeszkody jako obiekty, z których można się oddalić. Muszę jeszcze ustalić, czy jest to wykonalne, ponieważ mój pierwszy test wykazał, że wrogowie uderzają w niewidzialną „ścianę”, w której nie ma płytek, na których nie można chodzić, ale z jakiegoś powodu uderzają ją i zaczynają szaleć.
Zastanawiałem się, czy obliczenie ścieżki do gracza za pomocą A * może być zbyt trudne, a następnie użyć algorytmu flokowania, aby zapobiec zbijaniu się. Początkowo moja gra miała być strzelanką opartą na falach, ale zamiast tego zdecydowałem, że będę oparty na poziomie w stylu Hotline Miami, więc prawdopodobnie będę miał mniej wrogów, z sporadyczną hordą, i po prostu stworzę je silniejsze.
Czy to realne rozwiązanie? Używam Java z Slick2D jako moim silnikiem gry. A może istnieje lepsze rozwiązanie / algorytm, który rozwiązuje oba te problemy?