ИИ персонажей в онлайн
   шутере Survarium

       Дмитрий Ясенев
        Vostok Games
            2013
ИИ: Среда задачи
•   Критерий производительности
•   Среда
•   Средства воздействия (Actuators)
•   Сенсоры
ИИ: Основные понятия
ИИ: Структура агентов
• Агент = Архитектура + Программа
• Тибличный агент
• Программы агентов
  – Простые рефлекторные агенты
  – Рефлекторные агенты с моделью
  – Агенты с целью
  – Агенты с утилитой
ИИ: Табличный агент
ИИ: Табличный агент
ИИ: Табличный агент
ИИ: Табличный агент
ИИ: Табличный агент
ИИ: Программы агентов
•   Простой рефлекторный агент
•   Рефлекторные агенты с моделью
•   Агенты с целью
•   Агенты с утилитой

Набор if-then правил
Подходят только для полностью
обозреваемых сред!
ИИ: Программы агентов
•   Простой рефлекторный агент
•   Рефлекторные агенты с моделью
•   Агенты с целью
•   Агенты с утилитой

Модель мира
Внутреннее состояние
ИИ: Программы агентов
•   Простой рефлекторный агент
•   Рефлекторные агенты с моделью
•   Агенты с целью
•   Агенты с утилитой

Планирование и поиск
Менее быстрые, но более гибкие
ИИ: Программы агентов
•   Простой рефлекторный агент
•   Рефлекторные агенты с моделью
•   Агенты с целью
•   Агенты с утилитой

Поддержка конфликтующих целей
Работа в условиях неопределенности
ИИ шутера от первого лица
• Критерий производительности
  – Бой
    • Использование укрытий
    • Использование оружия с разной дистанцией
      эффективности
    • Бой с напарниками
  – Симуляция жизни
  – С ними должно быть интересно играть!
ИИ шутера от первого лица
• Среда – Игровой мир + внутреннее
  представление игровых объектов.

Можно читить до тех пор, пока это не
ухудшает геймплей.

Проблема идентификации
FPS AI
• Сенсоры
  – Зрение
  – Слух
  – Прикосновение и получение повреждений
FPS AI: Сенсор зрения
• Выбрать объекты, которые агент может видеть
  – Выбрать точку на поверхности объекта
  – Проверить, видна ли она
       • Если видна – сохранить её и каждый раз пробовать её первой
       • Иначе выбрать новую точку на следующем кадре
• Оценка потенциально видимых объектов
  –   Скорость объекта и его угловой размер
  –   Близость к напрвлению взгляда
  –   Освещение объекта
  –   Время, которое объект находится в списке
      потенциально видимых объектов
FPS AI: Сенсор зрения
• Режимы зрения
  – Спокойной состояние
  – Агрессивное состояние
  – Частичная или полная слепота
FPS AI: Сенсор слуха
•   Проверка дистанции
•   Использование системы секторов/порталов
•   Уровень шума
•   Режимы слуха
    – Спокойной состояние
    – Агрессивное состояние
    – Контузия
FPS AI: Actuators
• Изменение позиции, ориентации и
  анимации объекта
• Проигрывание звуков
• Изменение состояния других игровых
  объектов
FPS AI: Программа агента
• Перевод данных сенсоров во внутреннее
  представление игрового мира
• Принятие решения
• Выполнение действий
FPS AI: Представление игрового
               мира
• Враги
• Опасности
  – Аномалии
  – Гранаты неподалеку, готовые взорваться
• Оружие, которое можно подобрать
• Важные игровые объекты
FPS AI: Перцепторы
• Перцептор переводит данные сенсоров
• Память агента
  – База данных фактов
FPS AI: Принятие решения
• Рефлекторные агенты с моделью на
  верхнем уровне
  – Спокойное состояние
  – Смерть
  – Ранение
  – Контузия
  – Слепота
• Конечный автомат (FSM)
FPS AI: Принятие решений
• Агент с целью для Спокойного состояния
  – Разделение целей и действий
  – Цель: убить врага, выполнить приказ
  – Действия
     •   Занять укрытие
     •   Стрельба из укрытия
     •   Бросить гранату
     •   …
• Агент строит план действий, которые
  удовлетворяют выбранную цель(цели)
FPS AI: Что на выходе?
• Изменение позиции, ориентации и
  анимации объекта
• Проигрывание звуков
• Изменение состояния других игровых
  объектов
FPS AI: Что на выходе?
• Изменение позиции, ориентации и
  анимации объекта
  – Навигационный граф
  – Locomotion
• Проигрывание звуков
• Изменение состояния других игровых
  объектов
Вызовы навигационной системы
• Существа могут иметь разные размеры и формы
• Существа могут использовать для передвижения потолок и
  стены
• “Как мне добраться туда?”
   – Добраться как можно быстрее
   – Добраться без сложных движений (прыжков)
   – Добраться так, чтобы не быть замеченным указанными
     персонажами
• “Как мне добраться туда разными путями?”
• “Дай все тактические позиции (укрытия, к примеру) рядом со
  мной ” (от указанного врага)
• Поддержка действительно длинных путей
• Разрушающаяся среда
Вызовы навигационной системы
• Нужно помнить, что необходимо
  – Трэкать позицию игрока
  – Было бы замечательно иметь один граф для
    всех существ
  – Быстрое (на лету!) генерирование
    навигационного графа
  – Поддержка динамических препятствий
  – Быстрое нахождение пути
  – Начать двигаться как можно скорее
FPS AI: Навигационный граф
•   Waypoints
•   Ячейки фиксированного размера
•   Navigation mesh
•   …
FPS AI: Навигационный граф
•   Waypoints
•   Ячейки фиксированного размера
•   Navigation mesh
•   …
FPS AI: Navigation mesh
• Генерирование
  – В оффлайне
  – Обновлять информацию о динамических
    препятствиях
• использование
  – Построение путей – TRA*
  – Алгоритм Funnel
  – Учет радиуса объектов
  – Иерархия для поддержки длинных путей
FPS AI: Navigation mesh
FPS AI: Navigation mesh
FPS AI: Navigation mesh
Вызовы системы Locomotion
• Выбор анимаций
• Проскальзывание ног
• Обход динамических препятствий
  – RVO - Reciprocal Velocity Obstacles
  – ORCA - Optimal Reciprocal Collision Avoidance
FPS AI: Выбор анимаций
• Должна ли анимация двигать персонажа?
• Смешивание анимаций
• Синхронизация анимаций
  – Масштабирование
  – Анимационные интервалы
• Поиск в пространстве анимаций
FPS AI: Locomotion
• Проскальзывание ног
  – Смешивание анимаций
  – Поверхность под ногами
• Решение – инверсная кинематика
  – Выбрать правильную матрицу для ноги
  – Рассчитать матрицу колена
FPS AI: Обход динамических
                препятствий
•   Физические объекты
•   Двери
•   Другие персонажи
•   Canyon Stack Problem
Вопросы?
• Присылайте вопросы на
 iassenev@vostokgames.com
• Мы лишь прикоснулись к прекрасному,
  изучайте глубже!
  – “AI : A Modern Approach”, 3-е издание
  – “Game AI Wisdom ” серия книг (I, II, III, IV)
  – http://www.udacity.com
  – https://www.coursera.org/

ИИ персонажей в онлайн шутере Survarium

  • 1.
    ИИ персонажей вонлайн шутере Survarium Дмитрий Ясенев Vostok Games 2013
  • 2.
    ИИ: Среда задачи • Критерий производительности • Среда • Средства воздействия (Actuators) • Сенсоры
  • 3.
  • 4.
    ИИ: Структура агентов •Агент = Архитектура + Программа • Тибличный агент • Программы агентов – Простые рефлекторные агенты – Рефлекторные агенты с моделью – Агенты с целью – Агенты с утилитой
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
    ИИ: Программы агентов • Простой рефлекторный агент • Рефлекторные агенты с моделью • Агенты с целью • Агенты с утилитой Набор if-then правил Подходят только для полностью обозреваемых сред!
  • 11.
    ИИ: Программы агентов • Простой рефлекторный агент • Рефлекторные агенты с моделью • Агенты с целью • Агенты с утилитой Модель мира Внутреннее состояние
  • 12.
    ИИ: Программы агентов • Простой рефлекторный агент • Рефлекторные агенты с моделью • Агенты с целью • Агенты с утилитой Планирование и поиск Менее быстрые, но более гибкие
  • 13.
    ИИ: Программы агентов • Простой рефлекторный агент • Рефлекторные агенты с моделью • Агенты с целью • Агенты с утилитой Поддержка конфликтующих целей Работа в условиях неопределенности
  • 15.
    ИИ шутера отпервого лица • Критерий производительности – Бой • Использование укрытий • Использование оружия с разной дистанцией эффективности • Бой с напарниками – Симуляция жизни – С ними должно быть интересно играть!
  • 16.
    ИИ шутера отпервого лица • Среда – Игровой мир + внутреннее представление игровых объектов. Можно читить до тех пор, пока это не ухудшает геймплей. Проблема идентификации
  • 17.
    FPS AI • Сенсоры – Зрение – Слух – Прикосновение и получение повреждений
  • 18.
    FPS AI: Сенсорзрения • Выбрать объекты, которые агент может видеть – Выбрать точку на поверхности объекта – Проверить, видна ли она • Если видна – сохранить её и каждый раз пробовать её первой • Иначе выбрать новую точку на следующем кадре • Оценка потенциально видимых объектов – Скорость объекта и его угловой размер – Близость к напрвлению взгляда – Освещение объекта – Время, которое объект находится в списке потенциально видимых объектов
  • 19.
    FPS AI: Сенсорзрения • Режимы зрения – Спокойной состояние – Агрессивное состояние – Частичная или полная слепота
  • 20.
    FPS AI: Сенсорслуха • Проверка дистанции • Использование системы секторов/порталов • Уровень шума • Режимы слуха – Спокойной состояние – Агрессивное состояние – Контузия
  • 21.
    FPS AI: Actuators •Изменение позиции, ориентации и анимации объекта • Проигрывание звуков • Изменение состояния других игровых объектов
  • 22.
    FPS AI: Программаагента • Перевод данных сенсоров во внутреннее представление игрового мира • Принятие решения • Выполнение действий
  • 23.
    FPS AI: Представлениеигрового мира • Враги • Опасности – Аномалии – Гранаты неподалеку, готовые взорваться • Оружие, которое можно подобрать • Важные игровые объекты
  • 24.
    FPS AI: Перцепторы •Перцептор переводит данные сенсоров • Память агента – База данных фактов
  • 25.
    FPS AI: Принятиерешения • Рефлекторные агенты с моделью на верхнем уровне – Спокойное состояние – Смерть – Ранение – Контузия – Слепота • Конечный автомат (FSM)
  • 26.
    FPS AI: Принятиерешений • Агент с целью для Спокойного состояния – Разделение целей и действий – Цель: убить врага, выполнить приказ – Действия • Занять укрытие • Стрельба из укрытия • Бросить гранату • … • Агент строит план действий, которые удовлетворяют выбранную цель(цели)
  • 27.
    FPS AI: Чтона выходе? • Изменение позиции, ориентации и анимации объекта • Проигрывание звуков • Изменение состояния других игровых объектов
  • 28.
    FPS AI: Чтона выходе? • Изменение позиции, ориентации и анимации объекта – Навигационный граф – Locomotion • Проигрывание звуков • Изменение состояния других игровых объектов
  • 29.
    Вызовы навигационной системы •Существа могут иметь разные размеры и формы • Существа могут использовать для передвижения потолок и стены • “Как мне добраться туда?” – Добраться как можно быстрее – Добраться без сложных движений (прыжков) – Добраться так, чтобы не быть замеченным указанными персонажами • “Как мне добраться туда разными путями?” • “Дай все тактические позиции (укрытия, к примеру) рядом со мной ” (от указанного врага) • Поддержка действительно длинных путей • Разрушающаяся среда
  • 30.
    Вызовы навигационной системы •Нужно помнить, что необходимо – Трэкать позицию игрока – Было бы замечательно иметь один граф для всех существ – Быстрое (на лету!) генерирование навигационного графа – Поддержка динамических препятствий – Быстрое нахождение пути – Начать двигаться как можно скорее
  • 31.
    FPS AI: Навигационныйграф • Waypoints • Ячейки фиксированного размера • Navigation mesh • …
  • 32.
    FPS AI: Навигационныйграф • Waypoints • Ячейки фиксированного размера • Navigation mesh • …
  • 33.
    FPS AI: Navigationmesh • Генерирование – В оффлайне – Обновлять информацию о динамических препятствиях • использование – Построение путей – TRA* – Алгоритм Funnel – Учет радиуса объектов – Иерархия для поддержки длинных путей
  • 34.
  • 35.
  • 36.
  • 37.
    Вызовы системы Locomotion •Выбор анимаций • Проскальзывание ног • Обход динамических препятствий – RVO - Reciprocal Velocity Obstacles – ORCA - Optimal Reciprocal Collision Avoidance
  • 38.
    FPS AI: Выборанимаций • Должна ли анимация двигать персонажа? • Смешивание анимаций • Синхронизация анимаций – Масштабирование – Анимационные интервалы • Поиск в пространстве анимаций
  • 39.
    FPS AI: Locomotion •Проскальзывание ног – Смешивание анимаций – Поверхность под ногами • Решение – инверсная кинематика – Выбрать правильную матрицу для ноги – Рассчитать матрицу колена
  • 40.
    FPS AI: Обходдинамических препятствий • Физические объекты • Двери • Другие персонажи • Canyon Stack Problem
  • 42.
    Вопросы? • Присылайте вопросына iassenev@vostokgames.com • Мы лишь прикоснулись к прекрасному, изучайте глубже! – “AI : A Modern Approach”, 3-е издание – “Game AI Wisdom ” серия книг (I, II, III, IV) – http://www.udacity.com – https://www.coursera.org/