Алгоритмы передвижения юнитов в тактических играх могут работать следующим образом:
- Поиск пути. gamedev.stackexchange.com От положения юнита проецируется воображаемая линия визирования до пункта назначения. gamedev.stackexchange.com В большинстве случаев между юнитом и целью нет препятствий, и он может остановиться на этом, поскольку уже нашёл ближайший путь. gamedev.stackexchange.com
- Обход препятствий. habr.com gamedev.stackexchange.com Если по направлению движения юнита есть препятствие, он проверяет, что слева или справа есть возможность его объехать. habr.com Маневрирование возможно только в ограниченном диапазоне. habr.com
- Отслеживание изменений на карте. astralax.ru Путь из дискретных клеток строится заранее, но пока юнит движется по нему, ситуация может измениться, например, на пути движения может быть построено новое здание. astralax.ru Для отслеживания таких изменений юнит перед тем как наступить на очередную дискретную клетку, должен определять, не была ли обновлена на ней информация. astralax.ru
В разных играх алгоритмы передвижения юнитов могут отличаться. Например, в StarCraft 2 используется алгоритм под названием «flocking» или «swarm AI» (поведение роя), который пытается скоординировать движение юнитов по типу перемещения косяка рыб или стаи птиц. goodgame.ru В BroodWar алгоритм поиска маршрутов основан на алгоритме A* (A-Star — волновой алгоритм). goodgame.ru Карта покрыта большим числом узлов, попадая в узел, юнит знает, куда двигаться дальше (каждому узлу сопоставлены возможные направления движения), и так далее, пока не попадёт в место назначения. goodgame.ru