Я работаю над тем, чтобы улучшить поиск врагов моей игры. Прямо сейчас они просто постоянно движутся к точной позиции игрока, вычисляя угол между собой и игроками и двигаясь в этом направлении. У меня также есть алгоритм флокирования, который не дает врагам складываться друг на друга, поэтому они будут объединяться в группы, а не пересекаются друг с другом.
Однако теперь, когда я добавил карту на основе тайлов, мне нужно, чтобы враги также могли обходить препятствия и стены, например. Сначала я попытался добавить значение разделения к «не проходимым» плиткам, чтобы алгоритм флокирования рассматривал стены и препятствия как объекты, от которых нужно отойти. Мне еще предстоит выяснить, возможно ли это, потому что мой первоначальный тест показал, что враги попадают в невидимую «стену», где нет неприступных тайлов, но по какой-то причине они поражают ее и начинают разбрасывать.
Мне было интересно, не слишком ли сложно вычислить путь к игроку, используя A *, а затем использовать алгоритм флокирования, чтобы предотвратить комкование. Первоначально моя игра собиралась быть стрелялкой на основе волн, но вместо этого я решил сделать ее ориентированной на уровни в духе Hotline Miami, так что, скорее всего, у меня будет меньше врагов со случайной ордой, и я просто сделаю их сильнее.
Это жизнеспособное решение? Я использую Java с Slick2D в качестве игрового движка. Или есть лучшее решение / алгоритм, который решает обе эти проблемы?