Azium Technologies. Логические системы в играх, как средство создания AI.
Логические системы в играх, как средство создания AI. Проблемы и решения. Часть 1 Руслан CyberMan Шелехов Генеральный директор AZIUM Technologies
О чем мы? Сложность и количество программных продуктов растет ОДНАКО Индустрия так и не стала инженерной Самые прогрессивные используемые методики разработки созданы в 80-х годах 20 века Лишь 1% разработчиков обучались инжинирингу ПО, а фундаментальными знаниями по Computer Science обладают ~5% разработчиков
А игровая индустрия? Некоторые особенности Повышенный уровень побочных движущих сил – энтузиазм Значительное количество внепрограммных работ и материала Значительно более молодая индустрия как таковая (моложе на ~20 лет) Количество подготовленных специалистов еще меньше
Проблемы Системы искусственного интеллекта – самые недетерминированные части игрового проекта Чаще всего их дизайн берет на себя не программист (гейм-дизайнер) Большое количество возможных путей реализации Частая модификация и постоянный тюнинг (как минимум баланс аспектов игрового мира, адаптация сложности игры) Как следствие – невозможность четкого планирования работ, зависимость от других компонент (движок, утилиты), затрудненность тестирования и высокий уровень хаоса из-за частой модификации
А что такое Искусственный Интеллект вообще? В общепринятом понимании – «думающий» компьютер В понимании разработчика – так или иначе заданные наборы логических правил, по которым работает система, имитируя поведение моделируемого оппонента. Т.о. именно логические системы (наборы правил) и являются по сути средством создания ИИ в играх. Вывод: нужна платформа создания логических систем.
Поставленная задача Как можно решить эти проблемы централизованно? Создать инструмент Создать методику его применения НО А что может быть этим инструментом? А может ли он вообще существовать? Мы считаем – да, может.
Логические системы в играх, как средство создания AI. Проблемы и решения. Часть 2 Алексей Осипенко Директор по разработкам AZIUM Technologies
На чем мы, начиная проект, могли сосредоточить свои усилия? На разработке библиотеки алгоритмов AI На разработке платформы построения игровой логики
Требования к платформе Максимально возможная наглядность Легкость и интерактивность внесения изменений Независимость логической модели игры от всех прочих ее частей: средств визуализации, пользовательского интерфейса и т.п.
Требования к платформе (продолжение) Автоматическое поддержание целостности конструируемой системы Возможность установления взаимно однозначного соответствия между сущностями модели и сущностями предметной области Модульность и расширяемость / модифицируемость на любом уровне
Масштабируемость Встроенная возможность работы в распределенном режиме Требования к платформе (окончание)
Схема платформы для игрового приложения
События, возбуждаемые engine-ами Реализуются, как атрибуты классов Централизованный scheduling Правила Применяются к множествам объектов, отобранных на основании запросов Синхронизируются друг с другом и событиями на основе причинно- следственных связей Управление процессами в моделируемой системе
Атрибуты-события объектов – способ создания агентных систем Правила Способ реализации многих глобальных законов моделируемого мира Способ реализации компьютерного оппонента Как эти элементы управления процессами позволяют реализовать AI в играх?
Средства построения и модификации моделей - диаграммы Диаграммы классов Диаграммы запросов Диаграммы workflow
Пример диаграммы классов
Пример диалога редактирования класса
Пример диаграммы запросов
GDK – компоненты, helper-ы и модели Компоненты: «Топологический» engine «Кинематический» engine Простой визуализатор (2D и 3D) Helper-ы – библиотека шаблонов C++ для создания: Собственных типов данных Элементов workflow (методов) на C++ Компонентов-view Engine-ов
GDK (продолжение) Базовые модели для популярных игровых жанров RTS TBS RPG FPS MMO-шаблоны
Вопросы? Руслан Шелехов: Алексей Осипенко: Спасибо за внимание!