Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Unity 5.x. Программирование искусственного интеллекта в играх

Покупка
Артикул: 679296.02.99
Доступ онлайн
699 ₽
В корзину
Игровой движок Unity 5 включает в себя множество инструментов, помогающих разработчикам создавать потрясающие игры, снабженные мощным искусственным интеллектом. Эти инструменты, вместе с прикладным программным интерфейсом Unity и встроенными средствами, открывают безграничные возможности для создания собственных игровых миров и персонажей. Данная книга охватывает как общие, так специальные методы, позволяющие реализовать эти возможности. Издание задумывалось как исчерпывающий справочник, помогающий расширить навыки программирования искусственного интеллекта в играх. Рассматриваются основные приемы работы с агентами, программирование перемещений и навигации в игровой среде, принятие решений и координации. Описание построено на практических примерах, в виде легко реализуемых «рецептов».
Паласиос, X. Unity 5.x. Программирование искусственного интеллекта в играх / X. Паласиос ; пер. с англ. Р.Н. Рагимова. - Москва : ДМК Пресс, 2017. - 272 с. - ISBN 978-5-97060-436-6. - Текст : электронный. - URL: https://znanium.com/catalog/product/1028125 (дата обращения: 05.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Хорхе Паласиос

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 «Интеллектуальные модели поведения: перемещение» описывает наиболее интересные алгоритмы перемещения, основанные на 

Предисловие  11

принципах управления поведением, разработанных Крейгом Рейнольдсом (Craig Reynolds) совместно с Яном Миллингтоном (Ian 
Mil ling ton). Они стали основой большинства алгоритмов искусственного интеллекта в современных играх наряду с другими алгоритмами 
управления перемещением, такими как семейство алгоритмов определения маршрута.
Глава 2 «Навигация» описывает алгоритмы определения маршрута 
для сложных сценариев перемещения. Она рассматривает несколько 
способов представления игрового мира с помощью различных графовых структур и алгоритмы поиска путей в различных ситуациях.
Глава 3 «Принятие решений» демонстрирует различные методы 
принятия решений, достаточно гибкие, чтобы приспосабливаться 
к разным видам игр, и достаточно надежные, чтобы позволить разрабатывать модульные системы принятия решений.
Глава 4 «Координирование и тактика» содержит ряд рецептов координации действий агентов, превращающих их в целостный организм, например в воинское подразделение, и методов принятия тактических решений на основании графов, таких как точки позиций 
и карты влияний.
Глава 5 «Органы чувств агентов» описывает различные подходы 
к моделированию мышления агентов. Для моделирования будут использованы уже известные нам инструменты, такие как коллайдеры 
и графы.
Глава 6 «Настольные игры с искусственным интеллектом» рассматривает семейство алгоритмов для разработки настольных игр с использованием технологий искусственного интеллекта.
Глава 7 «Механизмы обучения» посвящена области машинного 
обуче ния. Она послужит хорошим стартом для изучения и применения методов машинного обучения в играх.
Глава 8 «Разное» описывает применение новых методов и алгоритмов, рассматривавшихся в предыдущих главах, для создания моделей поведения, которые не вписываются ни в одну из перечисленных 
выше категорий.

Что потребуется для работы с книгой

Примеры, представленные в книге, были протестированы с последней версией Unity (на момент завершения работы над книгой это 
была версия Unity 5.3.4f1). Однако, приступая к работе над книгой, 
я использовал Unity 5.1.2, поэтому ее можно считать минимальной 
рекомендуемой версией для опробования примеров.

 
Предисловие

Кому адресована эта книга

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

Разделы

В этой книге вы найдете несколько часто встречающихся заголовков 
(«Подготовка», «Как это реализовать», «Как это работает», «Дополнительная информация» и «Полезные ссылки»).
Разделы, начинающиеся с этих заголовков, содержат пояснения 
к реализации рецептов и используются следующим образом:

Подготовка

Объясняет назначение рецепта и описывает настройку программного 
обеспечения и другие подготовительные действия, необходимые для 
осуществления рецепта.

Как это реализовать...

Описывает шаги по реализации рецепта.

Как это работает...

Обычно включает подробное объяснение того, что произошло в предыдущем разделе.

Дополнительная информация...

Содержит дополнительную информацию о рецепте для лучшего понимания читателем.

Полезные ссылки

Содержит ссылки на полезные материалы, содержащие информацию, 
связанную с рецептом.

Соглашения

В этой книге используется несколько разных стилей оформления 
текста для выделения разных видов информации. Ниже приводятся 
примеры этих стилей и объясняется их назначение.

Предисловие  13

Программный код в тексте, имена таблиц баз данных, имена папок, имена файлов, расширения файлов, фиктивные адреса URL, 
пользовательский ввод и ссылки в Twitter будут выглядеть так: 
«AgentBehaviour – это шаблонный класс для определения большинства моделей поведения в главе».
Блоки программного кода оформляются так: 

using UnityEngine;
using System.Collections; 
public class Steering
{
    public float angular; 
    public Vector3 linear; 
    public Steering ()
    {
        angular = 0.0f;
        linear = new Vector3();
    }
}

Когда потребуется привлечь ваше внимание к определенному 
фрагменту кода, соответствующие строки или элементы будут выделены жирным:

using UnityEngine;
using System.Collections;

public class Wander : Face
    {
    public float offset; 
    public float radius; 
    public float rate;
}

 Так оформляются предупреждения и важные примечания.

 Так оформляются советы и рекомендации.

Отзывы и пожелания

Мы всегда рады отзывам наших читателей. Расскажите нам, что вы 
думаете об этой книге – что понравилось или, может быть, не понравилось. Отзывы важны для нас, чтобы выпускать книги, которые будут для вас максимально полезны.

Доступ онлайн
699 ₽
В корзину