Задать вопрос
@Magneto903

Как заставить ботов убегать от преследователей?

У меня есть большая (нетайловая) прямоугольная карта, ограниченная внешними полигонами.
Внутри неё есть случайно сгенерированные выпуклые полигоны.
Условно это выглядит как-то так:
5ff9cd17a3414050390975.png

Некоторые полигоны могут пересекаться, т.е. образовать относительно длинный коридор с одним выходом.
Теоретически ситуация на картинке ниже возможна
5ff9cec6036e0659531120.png

Также у меня есть боты, которые умеют двигаться в определенную точку с обходом препятствий, оптимальным путём. Т.е. боты могут кого-нибудь преследовать, например игрока. (Назовём этих ботов красными)

Мне нужны другие боты (пусть зеленые), которые будут убегать от ботов, которые умеют преследовать (от красных). Желательно, чтобы зеленые боты умели обходить тупики, т.к. если они туда зайдут, они попадут в ловушку.
Подразумевается, что боты знают всю геометрию мира, т.е. местоположения всех препятствий.

5ff9cffa59de2196522085.png

Какой алгоритм должен быть у зеленых ботов?
  • Вопрос задан
  • 460 просмотров
Подписаться 2 Средний 12 комментариев
Пригласить эксперта
Ответы на вопрос 3
GavriKos
@GavriKos Куратор тега Разработка игр
переводите вашу плоскость в граф. Например, через навмеш. Тогда вам просто надо двигаться по тем вершинам графа, которые позволят вернутся в исходную точку/цель не проходя по одному маршруту дважды. Более того - такие слепые зоны-висяки можно вообще отсеять на этапе построения мира.
Ответ написан
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
Пусть дорогу метят, те и другие, своим цветом.
Навигация красных ботов использует граф.

Взвешивают ребра графа. На этих весах уже можно анализ какой то делать. Например, откуда только красные возвращаются, туда зеленым лучше не ходить. Алгоритм муравьев вобщем.
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Проблема кроется в самой постановке. Боту недостаточно убегать от красных. Ему надо заранее прокладывать траекторию так чтобы при равных скоростях они оба бегали бесконечно. Я так понимаю что это будет успех.

Все прочие алгоритмы при равных скоростях тяготеют к тому что зеленый будет становится все ближе и ближе. Ему ведь надо тыкаться в углы. А все известные машинные алгоритмы ближнего действия требуют ощупывания или осязания тупиков и углов. При таком раскладе зеленый будет пойман. Или надо давать ему фору в скорости.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы