Четверг, 22 Февраля 2018, 06:05

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Страница 1 из 11
Модератор форума: beril 
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как хранить изученную область локации? (Для ИИ)
Как хранить изученную область локации? (Для ИИ)
OdIUmДата: Среда, 13 Декабря 2017, 17:04 | Сообщение # 1
был не раз
Сейчас нет на сайте
Добрый день.

Вопрос связан с ИИ, но не в части логики поведения, поэтому расположил в общей теме.

Пытаюсь организовать перемещение ИИ по неизвестной локации.
Пока нашел два самых распространенных способа реализации:
1. Waypoints
2. Случайная точка в радиусе, брошенное на определенное расстояние от персонажа

Оба варианта не до конца подходят для моей задумки, поэтому стал думать над третьим.
Концепция следующая:
ИИ обладает зрением, которое не дает ему смотреть сквозь препятствия.
Если он обнаруживает, что перед ним препятствие, он определяет точку за ним и помечает ее для себя как "интересная". Таких точек может быть множество. Следовательно он перемещается от точки к точке, создавая во время движения новые точки интереса.

При такой реализации хочется избежать хождение вокруг одного препятствия. Посему, как мне кажется, необходимо хранить разведанную область в памяти ИИ и, при добавлении новой точки интереса, проверять попадает ли она в уже изученную область или нет.

Теперь возникает вопрос. Как хранить изученную область и как проверять попадает ли новая точка внутрь изученной зоны или нет.
Есть у Юнити какие-то средства для этого?

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

Или может я вообще не с той стороны зашел и есть более правильные способы реализации изучения территории ИИ?
OrdanДата: Четверг, 14 Декабря 2017, 06:52 | Сообщение # 2
Главный зомби
Сейчас нет на сайте
OdIUm, я в своем движке просто разбиваю карту на сектора/блоки и помечаю их, разведанные они или нет. Если у каждого ИИ свои сведения о карте то я просто кидаю ему в память массив разведанных секторов, если нет то помечаю сами сектора.

Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)

Мои проекты ТЫК
Мои видяхи на ютубэ ТЫК

Если ты споришь с идиотом, вероятно тоже самое делает и он.
OdIUmДата: Четверг, 14 Декабря 2017, 15:31 | Сообщение # 3
был не раз
Сейчас нет на сайте
Цитата Ordan ()
OdIUm, я в своем движке просто разбиваю карту на сектора/блоки и помечаю их, разведанные они или нет. Если у каждого ИИ свои сведения о карте то я просто кидаю ему в память массив разведанных секторов, если нет то помечаю сами сектора.

Спасибо, наверное что-то в этом духе и стоит делать. Проще чем определять координаты и строить многоугольник.
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как хранить изученную область локации? (Для ИИ)
Страница 1 из 11
Поиск:

Все права сохранены. GcUp.ru © 2008-2018 Рейтинг