• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток! Спешите принять участие в конкурсе "Таинственные миры" 2024!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык

Улучшение поиска путей в Г2

avx1024

Участник форума
Регистрация
28 Дек 2017
Сообщения
13
Благодарности
43
Баллы
165
  • Первое сообщение
  • #1
Всем привет.
Играл давеча в g2(в2+аб) и что-то стало мне грустно от того что мобы тупые. Заманиваешь его к уступу, чтобы свалился или залезаешь сам и безнаказанно расстреливаешь. Нет конечно это абузы и все дела и их можно не юзать, но текущая система построения маршрутов, как я понял, работает по схеме: "прямой путь из точки А(моб) к точке Б(ГГ/моб)" и сильно страдает от отсутствия какой-либо интеллектуальности.
У меня возник вопрос, а как можно ее улучшить ? Тем более сейчас, когда появился Аст и Юнион, хукать можно все или почти все вызовы в движке и буквально 1 строчкой кода. После гугления на тему ИИ для построения маршрутов, чтения форума и исходников Регота я (на текущем уровне понимания) вижу 2 способа улучшить положение вещей:

Общее решение:
1. Построение навигационного меша из меша локации и вобов.
2. Построение путей на навигационном меше с помощью A* и его вариаций.
3. Доработка логики контроллера построения путей, для сглаживания пути и учета преодоления препятствий(запрыгнуть/облететь/переплыть/спрыгнуть и т.д.)
Решение это довольно трудозатратное, зато результат(в теории) должен быть очень неплохим.

Локальное решение(как в Реготе):
1. Трассировка, для определения можно ли пройти по прямой к целевой точке.
2. Если нельзя, то ищутся 2 ближайших вейпоинта к отправной и конечной точке (к которым можно пройти по прямой) и через алг. поиска пути на графе(Дейкстра или тот же A*) строится маршрут по которому моб и пускается.
3. Естественно нужно будет доработать контроллер, т.к. ГГ или другие мобы двигаются и пути нужно перестраивать.
Решение проще 1, т.к. есть готовые наработки, правда есть и открытые вопросы, ведь Регот написан с 0 и самостоятельно, а есть ли нужный функционал для трассировки(определения колиизий) в движке Г2, х его з.

Интересно мнение сведущих людей. Какие пути решения проблемы с построением путей они видят и есть ли какие-либо наработки по этой теме ?
Я так понимаю какие-то работы в этой области велись, т.к. Gratt выкладывал видео на эту тему(еще во времена AST):

Но почему-то работы не были продолжены.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.170
Благодарности
6.150
Баллы
1.565

apan

Участник форума
Регистрация
20 Ноя 2013
Сообщения
13
Благодарности
8
Баллы
160
Перепроходил недавно и дико был разочарован пасфайндингом, такое чувство что раньше было лучше, а сейчас тупорылые нпц и монстры застревают повсюду и не могут пройти до необходимого места.
 
Сверху Снизу