В настоящее время я разрабатываю игру, похожую на Diablo, для мобильной платформы (iphone5 +).
Простой поиск A * найдет путь, но необходимо избегать столкновения.
Одновременно будет активно около 50 монстров, поэтому производительность очень важна.
Я нашел несколько методов, которые могли бы работать.
НавМеш + РВО
Библиотека recast / detour хорошо работает на
pathfinding
части, но ее симуляция толпы быстро достигает предела (более 5 мс для 30 агентов).Другая библиотека RVO2 выглядит нормально (менее 2 мс для 50 агентов), но у библиотеки есть некоторые проблемы с лицензией.
Flow Fields + физический движок
Многие игры RTS используют этот метод, но кажется, что для разрешения столкновений требуется физический движок. Если многие агенты не имеют общей цели, этот метод может стоить дороже, чем традиционный поиск пути A *.
Поведение рулевого управления + физический двигатель
Поведение рулевого управления включает в себя множество концепций, я думаю, что это
simple avoidance behavior
может сработать (просто поверните налево / направо, если что-то впереди), но метод все еще требует физического механизма для совместной работы.
Я до сих пор не уверен, какой из них использовать, возможно, существуют другие методы поиска путей и предотвращения столкновений.
PS Halo:Spartan Strike
использует Havok AI (основанный на RVO?), Но я не видел много врагов в этой игре, поэтому мне интересно, будет ли первый метод (NavMesh + RVO) хорошо работать на мобильной платформе.