Unity 5.x. Программирование искусственного интеллекта в играх
Покупка
Издательство:
ДМК Пресс
Автор:
Паласиос Хорхе
Перевод:
Рагимов Р. Н.
Год издания: 2017
Кол-во страниц: 272
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-436-6
Артикул: 679296.02.99
Игровой движок Unity 5 включает в себя множество инструментов, помогающих разработчикам создавать потрясающие игры, снабженные мощным искусственным интеллектом. Эти инструменты, вместе с прикладным программным интерфейсом Unity и встроенными средствами, открывают безграничные возможности для создания собственных игровых миров и персонажей. Данная книга охватывает как общие, так специальные методы, позволяющие реализовать эти возможности. Издание задумывалось как исчерпывающий справочник, помогающий расширить навыки программирования искусственного интеллекта в играх. Рассматриваются основные приемы работы с агентами, программирование перемещений и навигации в игровой среде, принятие решений и координации. Описание построено на практических примерах, в виде легко реализуемых «рецептов».
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Хорхе Паласиос Unity 5.x. Программирование искусственного интеллекта в играх
Adam Horton, Ryan Vice Unity 5.x Game AI Programming Cookbook BUILD AND CUSTOMIZE A WIDE RANGE OF POWERFUL UNITY AI SYSTEMS WITH OVER 70 HANDS-ON RECIPES AND TECHNIQUES
Хорхе Паласиос Unity 5.x. Программирование искусственного интеллекта в играх 70 ПРАКТИЧЕСКИХ РЕЦЕПТОВ И МЕТОДИК СОЗДАНИЯ И НАСТРОЙКИ ШИРОКОГО СПЕКТРА МОЩНЫХ СИСТЕМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА В UNITY Москва, 2017
УДК 004.4'2Unity3D ББК 32.972 П14 Паласиос Х. П14 Unity 5.x. Программирование искусственного интеллекта в играх: пер. с англ. Р. Н. Рагимова. – М.: ДМК Пресс, 2017. – 272 с.: ил. ISBN 978-5-97060-436-6 Игровой движок Unity 5 включает в себя множество инструментов, помогающих разработчикам создавать потрясающие игры, снабженные мощным искусственным интеллектом. Эти инструменты, вместе с прикладным программным интерфейсом Unity и встроенными средствами, открывают безграничные возможности для создания собственных игровых миров и персонажей. Данная книга охватывает как общие, так специальные методы, позволяющие реализовать эти возможности. Издание задумывалось как исчерпывающий справочник, помогающий расши рить навыки программирования искусственного интеллекта в играх. Рассматриваются основные приемы работы с агентами, программирование перемещений и навигации в игровой среде, принятие решений и координации. Описание построено на практических примерах, в виде легко реализуемых «рецептов». УДК 004.4'2Unity3D ББК 32.972 Copyright © Packt Publishing 2016. First published in the English language under the title ‘Unity 5.x Game AI Programming Cookbook – (9781783553570) Все права защищены. Любая часть этой книги не может быть воспроиз ведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но по скольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-78355-357-0 (анг.) © 2016 Packt Publishing ISBN 978-5-97060-436-6 (рус.) © Оформление, перевод, ДМК Пресс, 2017
Содержание Об авторе ................................................................. 8 О технических рецензентах ......................................... 9 Предисловие ...........................................................10 Глава 1. Интеллектуальные модели поведения: перемещение ..........................................................16 Введение .................................................................................................................16 Создание шаблона моделей поведения .......................................................17 Преследование и уклонение ............................................................................21 Достижение цели и уход от погони ..............................................................23 Поворот объектов ................................................................................................26 Блуждание вокруг ...............................................................................................29 Следование по маршруту .................................................................................31 Уклонение от встреч с агентами .....................................................................36 Уклонение от стен ...............................................................................................39 Смешивание моделей поведения с весовыми коэффициентами .......41 Смешивание моделей поведения по приоритету .....................................43 Комбинирование моделей поведения с применением конвейера управления ............................................................................................................45 Стрельба снарядами ...........................................................................................49 Прогнозирование места падания снаряда ..................................................50 Нацеливание снаряда ........................................................................................52 Создание системы прыжков ............................................................................53 Глава 2. Навигация ....................................................60 Введение .................................................................................................................60 Представление игрового мира с помощью сетей .....................................61 Представление игрового мира с помощью областей Дирихле ............71 Представление игрового мира с помощью точек видимости ..............77 Представление игрового мира с помощью навигационного меша .........................................................................................................................81 Поиск выхода из лабиринта с помощью алгоритма DFS .....................84 Поиск кратчайшего пути в сети с помощью алгоритма BFS ...............86 Поиск кратчайшего пути с помощью алгоритма Дейкстры .................88 Поиск оптимального пути с помощью алгоритма A* .............................91
Содержание Улучшенный алгоритм A* с меньшим использованием памяти – алгоритм IDA* ...................................................................................95 Планирование навигации на несколько кадров вперед: поиск с квантованием времени ...................................................................................98 Сглаживание маршрута ................................................................................. 100 Глава 3. Принятие решений ......................................103 Введение .............................................................................................................. 103 Выбор с помощью дерева принятия решений ........................................ 104 Работа конечного автомата ........................................................................... 107 Усовершенствование конечного автомата: иерархические конечные автоматы .......................................................................................... 110 Комбинирование конечных автоматов и деревьев принятия решений ............................................................................................................... 112 Реализация деревьев моделей поведения ................................................ 113 Работа с нечеткой логикой ........................................................................... 116 Представление состояний с помощью числовых значений: система Маркова .............................................................................................. 120 Принятие решений в моделях целенаправленного поведения ........ 123 Глава 4. Координирование и тактика ..........................126 Введение .............................................................................................................. 126 Обработка формирований ............................................................................ 127 Расширение алгортма A* для координации: алгоритм A*mbush ..... 132 Выбор удобных точек позиций ................................................................... 136 Анализ точек позиций по их высоте .......................................................... 138 Анализ точек позиций по обзорности и незаметности ....................... 140 Оценка точек позиций для принятия решения ..................................... 142 Карты влияния .................................................................................................. 143 Улучшение карт влияния путем заполнения ......................................... 147 Улучшение карт влияния с помощью фильтров свертки ................... 152 Построение боевых кругов ........................................................................... 155 Глава 5. Органы чувств агентов .................................164 Введение .............................................................................................................. 164 Имитации зрения с применением коллайдера ...................................... 165 Имитация слуха с применением коллайдера ......................................... 167 Имитация обоняния с применением коллайдера ................................. 171 Имитации зрения с применением графа ................................................. 175 Имитация слуха с применением графа .................................................... 176 Имитация обоняния с применением графа ............................................ 179 Реализация органов чувств в стелс-игре ................................................. 181
Содержание 7 Глава 6. Настольные игры с искусственным интеллектом ..........................................................189 Введение .............................................................................................................. 189 Класс игрового дерева ................................................................................... 190 Введение в алгоритм Minimax ..................................................................... 192 Алгоритм Negamax ........................................................................................... 194 Алгоритм AB Negamax ................................................................................... 196 Алгоритм Negascouting .................................................................................. 199 Подготовка ......................................................................................................... 199 Реализация соперника для игры в крестики-нолики .......................... 201 Реализация соперника для игры в шашки .............................................. 206 Глава 7. Механизмы обучения ...................................217 Введение .............................................................................................................. 217 Предугадывание действий с помощью алгоритма прогнозирования N-Gram ............................................................................. 217 Усовершенствованный иерархический алгоритм N-Gram ................ 220 Использование классификаторов Байеса ............................................... 222 Использование деревьев принятия решений ......................................... 225 Использование закрепления рефлекса .................................................... 229 Обучение с помощью искусственных нейронных сетей .................... 234 Создание непредсказуемых частиц с помощью алгоритма поиска гармонии ............................................................................................... 238 Глава 8. Прочее ......................................................242 Введение .............................................................................................................. 242 Улучшенная обработка случайных чисел ................................................ 242 Соперник для игры в воздушный хоккей ................................................ 245 Соперник для настольного футбола .......................................................... 251 Программное создание лабиринтов .......................................................... 261 Реализация автопилота для автомобиля ................................................. 264 Управление гонками с адаптивными ограничениями ......................... 265 Предметный указатель ............................................269
Об авторе Хорхе Паласиос (Jorge Palacios) – профессиональный программист с более чем семилетним опытом. Последние четыре года занимался разработкой игр, работая на различных должностях, от разработчика инструментария до ведущего программиста. Специализируется на программировании искусственного интеллекта и игровой логики. В настоящее время использует в своей работе Unity и HTML5. Также является преподавателем разработки игр, лектором и организатором «геймджемов». Больше узнать о нем можно на его личном сайте: http://jorge. palacios.co.
О технических рецензентах Джек Донован (Jack Donovan) – разработчик игр и инженер-программист, работающий с движком Unity3D начиная с третьей версии. Учился в колледже Шамплейн (г. Берлингтон, штат Вермонт), где получил степень бакалавра в области программирования игр. В настоящее время работает над проектом виртуальной реальности IrisVR в Нью-Йорке, где занимается разработкой программного обес печения, позволяющего архитекторам создавать модели виртуальной реальности по CAD-моделям. До проекта IrisVR Джек работал в небольшой независимой студенческой команде, занимавшейся разработкой игр, написав при этом книгу «OUYA Game Development By Example». Лорен С. Ферро (Lauren S. Ferro) – консультант по игрофикации (геймификации), дизайнер игр и схожих с играми приложений. Занимается проектированием, консультацией и разработкой стратегий для целого ряда проектов в области профессионального обучения, систем рекомендаций и общеобразовательных игр. Ведет активную исследовательскую работу в области геймификации, профилирования игроков и ориентированного на пользователей проектирования игр. Проводит семинары для специалистов и компаний, занимающихся разработкой игр и приложений с элементами игры, ориентированных на вкусы пользователей. Также является разработчиком методики Gamicards проектирования прототипов игр и приложений с элементами игры.
Предисловие Стоит подумать об искусственном интеллекте, и в уме возникает множество ассоциаций. От простых моделей поведения, например преследование или убегание от игрока, до игры с искусственным интеллектом в классические шахматы, методов машинного обучения или процедурной генерации контента. Движок Unity сделал разработку игр намного демократичнее. Благодаря простоте использования, быстрому совершенствованию технологий, постоянно растущему сообществу и новым облачным услугам движок Unity превратился в один из важнейших программных продуктов для игровой индустрии. С учетом вышесказанного основной целью написания книги была попытка помочь вам, читатель, через описание технологий Unity, знакомство с передовым опытом, изучение теории, разобраться в идеях и методах искусственного интеллекта, что обеспечит вам преимущества как в любительской, так и в профессиональной разработке. Эта книга рецептов познакомит вас с инструментами создания искусственного интеллекта, например для реализации достойных противников, доведенных до совершенства, и даже для разработки собственного нестандартного движка искусственного интеллекта. Она станет вашим справочным пособием при разработке методов искусственного интеллекта в Unity. Добро пожаловать в увлекательное путешествие, которое сочетает в себе ряд вещей, имеющих для меня, как профессионала и просто человека, большое значение: программирование, разработка игр, искусственный интеллект и обмен знаниями с другими разработчиками. Не могу не отметить, как я польщен и рад, что вы читаете написанный мной текст прямо сейчас, и я благодарен команде издательства Packt за предоставление такой возможности. Надеюсь, что этот материал поможет вам не только поднять на новый уровень навыки работы с Unity и искусственным интеллектом, но и содержит описание функций, которыми вы заинтересуете пользователей своих игр. О чем рассказывается в этой книге Глава 1 «Интеллектуальные модели поведения: перемещение» описывает наиболее интересные алгоритмы перемещения, основанные на