250 likes | 497 Views
Организация разработки AI в стратегических играх. Андрей Плахов. Организация разработки AI в стратегических играх. Андрей Плахов. Что будет Опыт проектов Silent Storm и Silent Storm : Sentinels Типичные проблемы «Идеальная» архитектура AI для RTS и TBS
E N D
Организация разработки AI в стратегических играх Андрей Плахов
Организация разработки AI в стратегических играх Андрей Плахов Что будет • Опыт проектов Silent Storm и Silent Storm: Sentinels • Типичные проблемы • «Идеальная» архитектура AI для RTS и TBS • Приемы совместной работа дизайнеров, программистов и тестеров
Организация разработки AI в стратегических играх Андрей Плахов Чего не будет • Нейронные сети, генетические алгоритмы, цепи Маркова, нечеткая логика... • Узкоспециализированные алгоритмы • Поиск пути (pathfinding)и следование по пути (pathtracking)
Организация разработки AI в стратегических играх Андрей Плахов Основные задачи • мы хотим создать хорошую игру, а не сверхразум • мы хотим продемонстрировать игроку как можно более разнообразное (и при этом не глупое) поведение • мы хотим затратить на реализацию всех вариантов поведения как можно меньшее время, силы и деньги
Организация разработки AI в стратегических играх Андрей Плахов Эволюция AI в Silent Storm • просчет дерева позиций • просчет пар «позиция – действие» • иерархия «логика → действия» • иерархия«реакция → логика → действия»
Организация разработки AI в стратегических играх Андрей Плахов Проблемы разработки AIв Silent Storm • Затруднены трассировка исполнения и исправление ошибок • AI ошибочно применяет тактические приемы в нетипичных ситуациях • Отсутствует предсказуемость, затруднена реализация сценария • «Зависания» AI • Затруднена реализация одновременных действий
Организация разработки AI в стратегических играх Андрей Плахов Общие проблемы с AIво многих играх • применение тактического приема или другого действия в явно неподходящей ситуации • AI упорно повторяет бессмысленные действия
Организация разработки AI в стратегических играх Андрей Плахов Архитектурные ошибки • Ошибочное отношение между “AI-состоянием“и игровым персонажем • Жесткая структура дерева AI-логик • Описание действий AI, а не его задач
Организация разработки AI в стратегических играх Андрей Плахов Задача: сделай А,чтобы получить X, когда Х достигнуто, сделай В, чтобы получить Y Бессмысленное действие: X или даже Y уже и так выполняется, но мы все-таки делаем А Ошибка: Действия А выполнены, но X не наступило Непредвиденная ситуация: Действия А выполнены, X наступило, мы выполняем B, но в этот момент X вновь перестает выполняться В коде обычно пишут: Сделай А, затем сделай В
Организация разработки AI в стратегических играх Андрей Плахов «Идеальная» архитектура • скрытие источников управления • древовидная структура «планов» • ассоциированные логические цепочки для каждого «плана» • обработка нарушений ассоциированной логической цепочки • минимальное поведение • возможность запретить и директивно установить любой «план» • три вида обработки провала «плана»
Организация разработки AI в стратегических играх Андрей Плахов «Идеальная» архитектура: Скрытие источников управления • игрок (клавиатура, мышь) • игрок (игра по сети) • AI • скрипт
Организация разработки AI в стратегических играх Андрей Плахов «Идеальная» архитектура:Древовидная структура планов • простейшее поведение (следовать, атаковать) • тактические приемы (отступление, перегруппировка), использование рельефа местности • тактики (наступать, обороняться, прорваться, окружить) • стратегии (rush, контроль ресурсов) • ...
Организация разработки AI в стратегических играх Андрей Плахов «Идеальная» архитектура:Ассоциированные логические цепочки • промежуточное звено между идеей и кодом • понятны гейм-дизайнерам, программистам, тестерам • описывают не только действия, но также цели и предположения • содержат условия «критического провала» • защищают от бессмысленных действий, непредвиденных ситуаций
Организация разработки AI в стратегических играх Андрей Плахов «Идеальная» архитектура: Обработка нарушенийассоциированной логической цепочки • перебор подходящих для выполнения задачи планов • ни одного не осталось – провален план более высокого уровня • не осталось планов – использовать минимальное поведение Минимальное поведение • несколько простых правил • тестируется в первую очередь
Организация разработки AI в стратегических играх Андрей Плахов «Идеальная» архитектура: Поддержка «режиссерских задумок» и сценария • возможность запретить любой план из скрипта или в настройках карты • возможность директивно установить любой план из скрипта или в настройках карты
Организация разработки AI в стратегических играх Андрей Плахов «Идеальная» архитектура: Обработка провала плана (глобальный уровень) • стратегия: запретить до конца игры на данной карте • тактический прием: снизить вероятность • базовое поведение: игнорировать провал
Организация разработки AI в стратегических играх Андрей Плахов Что мы теряем? • идеальных архитектур не бывает, как не бывает средства от всех болезней • накладные расходы на создание сложной архитектуры: окупятся ли? • игра должна быть действительно сложной, а требования к AI – действительно высокими • 18 (+ 6) месяцев программирования 6 (+ 6) месяцев тестирования • 6 месяцев дизайна
Организация разработки AI в стратегических играх Андрей Плахов Рекомендации для дизайнеров • не верьте мне • придумывайте, какое поведение вы хотите получить, а не каким образом • миниигры: думайте о том, как в них будет играть AI • можно ли ее отменить совсем? • можно ли, немного изменив ее правила, сильно ускорить разработку? • можно ли имитировать ее результаты более простой процедурой?
Организация разработки AI в стратегических играх Андрей Плахов Рекомендации программистам • не увлекайтесь высокими технологиями • забудьте про самообучение • сделайте систему визуального мониторинга AI
Организация разработки AI в стратегических играх Андрей Плахов Производственные циклыСоздание основы – 1 раз • создание общей архитектуры AI (ведущий программист) • формулировка правил «минимального поведения» (дизайнер) • реализация «минимального поведения» (программист AI) • тестирование и уточнение «минимального поведения»(QA, дизайнер) • внесение изменений в код(программист AI)
Организация разработки AI в стратегических играх Андрей Плахов Производственные циклыFeature implementing – около 30 раз • научить AI защищаться от Х - 60% • научить AI в случайные моменты использовать Х - 30% • научить AI «по делу» использовать Х - 10%
Организация разработки AI в стратегических играх Андрей Плахов Производственные циклыНовый тактический прием, стратегия – около 20 раз • придумать прием и сформулировать первый вариант ассоциированной логической цепочки • понять, почему игрок увидит его и поймет • понять, почему игрок скажет: «Wow!» • дать подробное описание в общедоступном месте • реализовать в коде • основная логика • установка и запрещение из скрипта и редактора карт • ассоциированная цепочка
Организация разработки AI в стратегических играх Андрей Плахов Производственные циклыВыявление и исправление ошибки – порядка 100 раз • 2 вида тестирования: «в общем» и «по спецификации»30% / 70% • только явно глупое поведение – ошибка • понять, где ошибка – в ассоциированной логической цепочке или в коде? • исправление кода • по необходимости, удлиннение цепочки
Организация разработки AI в стратегических играх Андрей Плахов Вот о чем мы поговорили • основные задачи при разработке AI • AI в Silent Storm: хорошее и плохое • типичные ошибки • «идеальная» архитектура и ее применимость • рекомендации программистам и дизайнерам • производственные циклы: кто и что должен делать Текст доклада будет доступен. Где именно – напишу на dev.dtf.ru, форум dtf.dev.ai
ВОПРОСЫ ЕСТЬ? Все использованные изображения принадлежат их законным владельцам и найдены в открытых источниках