Игровой искусственный интеллект реферат

Обновлено: 05.07.2024

Аннотация: Эта лабораторная работа посвящена использованию методов искусственного интеллекта при разработке игр.

Цель работы: Научиться применять искусственный интеллект в компьютерных играх

18.1. Обзор подходов к разработке системы ИИ

Тема искусственного интеллекта (artifical intelligence , AI, ИИ) будоражит умы многих начинающих программистов, разработчиков и любителей компьютерных игр. ИИ кажется многим чем-то удивительно сложным, интересным, таинственным. Действительно, ведь технологии ИИ заставляют персонажей игр действовать разумно. Однако в ИИ нет ничего таинственного. За десятилетия развития этой области знаний было разработано огромное количество алгоритмов, применимых в самых разных областях деятельности. И компьютерные игры – лишь сравнительно небольшое поле для технологий искусственного интеллекта .

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

Игровой ИИ, в первом приближении, можно разделить на два вида. Первый – наиболее очевидный – это интеллект отдельных игровых персонажей. Например, каждый танк в популярной некогда приставочной игре Battle City пытается добраться до базы игрока, уничтожить её и его танк. Танки в игре действуют неслаженно, они не отличаются особенным "умом", однако играть интересно – всё дело в том, что для данной игры такой вид ИИ вполне подходит. Он не делает игру скучной.

Если бы действия армии в StarCraft никак не контролировались, а ИИ присутствовал лишь на уровне отдельного юнита – игра превратилась бы в скучный поиск и уничтожение врагов. А StarCraft, несмотря на серьёзный возраст остаётся увлекательной игрой. Даже в однопользовательской кампании StarCraft способна очень сильно "затянуть" игрока, не говоря уже о сетевых баталиях.

Кстати, несложно заметить, что в том же StarCraft индивидуальный ИИ есть и у юнитов, которыми управляет пользователь . Например, та же команда "патрулировать", отданная пользователем, заставит существо из StarCraft послушно ходить по указанному пути. Но если на пути появится препятствие (например, игрок построит там здание, преграждающее путь ) – юнит сам решит, что ему делать. Аналогично, он самостоятельно примет решение об атаке, если в поле его видимости появятся враги.

Системы ИИ, применяемые в компьютерных играх, можно разделить на два основных вида. Во-первых – это так называемые детерминированные системы. Они отличаются предсказуемостью действий персонажа. И во-вторых – это недетерминированные системы – персонаж, управляемый таким ИИ, может действовать непредсказуемо, принимать неожиданные решения.

Как мы уже сказали, индивидуальный ИИ юнитов играет подчинённую роль в сравнении с групповым ИИ. А может ли ИИ отдельного юнита повлиять на игру вцелом? Может – в том случае, если предусмотрено распространение успехов отдельного юнита на всех схожих. Например, какой-то юнит столкнулся с сильным противником и чудом вышел победителем в схватке. Этот юнит набрался опыта, который, благодаря групповому ИИ, может быть распространён на других юнитов. Т.е. если один юнит чему-то научился, другие, благодаря групповому ИИ, смогут перенять у него новые умения. Таким образом, индивидуальный и групповой ИИ взаимосвязаны, а в некоторых случаях и взаимозависимы.

Персонаж, оснащённый недетерминированным ИИ, отличается непредсказуемостью поведения, большей "живостью". Играть против таких персонажей обычно гораздо интереснее, чем против жёстко детерминированных. Популярным в последнее время способом реализации недетерминированного ИИ является технология нейронных сетей . Она позволяет создавать персонажи с очень сложным поведением. К тому же, нейросети обладают свойством обучаемости. То есть персонажи игр не только разумно ведут себя, но и учатся на своих ошибках.

На практике находят применение как детерминированные, так и недетерминированные виды ИИ. Обычно они действуют совместно. Например, для выполнения каких-то простых однозначных действий (скажем, при приближении к стене свернуть) могут применяться простые и быстрые детерминированные алгоритмы. В более сложных случаях (например – купить ли акции компании Х учитывая огромное количество параметров, напасть ли на врага, учитывая его возможности, свои возможности, наличие подкрепления и т.д.) – применяются более сложные недетерминированные алгоритмы. Частично детерминированные (например, при приближении к стене персонаж с вероятностью 50% повернёт налево, с вероятностью 30% - направо, и с 20% вероятностью развернётся и пойдёт обратно) так же находят широкое применение в играх.

18.2. Реализация алгоритма преследования

Реализуем игру, использующую алгоритм преследования. Сущность этого алгоритма заключается в следующем. Объект -преследователь сравнивает свои координаты в игровом мире с координатами объекта-жертвы и корректирует свои координаты таким образом, чтобы приблизиться к жертве. В простейшем случае преследование осуществляется на открытом пространстве.

Создадим новый игровой проект P12_1 на основе проекта P10_1. Будем использовать два объекта – преследователя и жертву. Преследователь будет перемещаться в сторону жертвы со скоростью, на 1 меньше, чем скорость жертвы. Если объекты столкнуться – жертва будет уничтожена.

На рис. 18.1 приведено окно Обозреватель решений игрового проекта P12_1.

Обозреватель решений, P12_1

Мы используем базовый класс gBaseClass , класс для объекта-преследователя ( Enemy ), класс объекта-жертвы ( Me ) и класс для объекта-стены. Класс объекта-стены будет нужен нам для того, чтобы изучить поведение объекта, реализующего алгоритм преследования, при столкновении с непреодолимым препятствием на пути к жертве. Мы значительно модифицировали код классов в сравнении с исходным проектом P5_1, поэтому ниже вы найдете полный код классов игры. В листинге 18.1 вы можете найти код класса Game1 .

Термин ИИ
Следует понимать, что термин искусственный интеллект, строго говоря, имеет дваразных значения:
- В первом значении ИИ — это форма интеллектуальности, искусственно вос-
производимая с помощью машин.
- Во втором значении ИИ — это набор академических методик, методов иссле-
дования и задач, которыми занимается отдельное научное направление.
Алгоритмы ИИ можно применять для решения практически любых задач, а не
только для моделирования человеческого интеллекта.Например, они могут исполь-
зоваться для управления производственной линией в промышленности или для рас-
познавания образов в медицине.

Средства ИИ в мире компьютерных игр
Что же подразумевается под средствами ИИ в мире компью-
терных игр?
Не требует пояснения желание пользователей видеть в игре персонажей, ведущих
себя разумно, поскольку это повышает удовольствие от игры и улучшаетигровую
обстановку. Более того, применение в игре несобственных персонажей, обладающих
достаточной интеллектуальностью, позволяет разрабатывать игры для одного игро-
ка, создающие такое впечатление, что количество участников в них весьма велико,
и не требующие привлечения реальных (биологических) людей-игроков. С точки зрения игрока, достаточно, чтобы.

Чтобы читать весь документ, зарегистрируйся.

Связанные рефераты

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

. Применение искусственного интеллекта в играх . До недавнего.

10 Стр. 2 Просмотры

Искусственный интеллект и системы искусственного

36 Стр. 571 Просмотры

Искусственный интеллект

. “информатика” Название: Искусственный интеллект.

15 Стр. 154 Просмотры

Искусственный интеллект

10 Стр. 249 Просмотры

Искусственный интеллект

. Математическо-технические аспекты реализации систем искусственного интеллекта.

Введение

Индустрия компьютерных игр – одна из самых быстро развивающихся отраслей компьютерных технологий на сегодняшний день. За сорок с лишним лет своего существования она развилась настолько, что во многом уже опережает своих главных конкурентов: киноиндустрию, музыкальную индустрию и шоу-бизнес. За прошлый год одна только российская игровая индустрия заработала 35.4 млрд. рублей [1].

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

Искусственный интеллект в игровых приложениях

С момента появления игровой индустрии стоит задача повышения правдоподобности игрового мира. Уровень реализации искусственного интеллекта наибольшим образом влияет на реалистичность игрового процесса, соревнуясь даже с графической составляющей, однако требует дополнительных затрат на разработку.

Таким образом, перед современным разработчиком поставлен вопрос: является ли перспективным направлением несение дополнительных затрат на создание более совершенных и правдоподобных систем игрового искусственного интеллекта? На этот вопрос можно дать однозначно положительный ответ, проанализировав их возможное применение на практике.

Применение искусственного интеллекта для коммерческих игровых приложений

Своё основное применение высокоэффективная система искусственного интеллекта найдёт в области разработки коммерческих компьютерных игр, предназначенных для широкой аудитории. Сегодняшнее положение дел в индустрии таково, что принят некоторый уровень структурной сложности и правдоподобности игрового ИИ, который считается достаточным для игры того или иного жанра. По этой причине разработке ИИ, как правило, не уделяется достаточного внимания. Конечно, эффективность игровых ИИ неизбежно увеличивается с ростом вычислительной мощности игровых платформ, однако качественные изменения происходят крайне редко. В то же время, можно легко привести преимущества внесения дополнительных средств в этот аспект разработки.

Средства искусственного интеллекта

Основным препятствием на пути развития игрового искусственного интеллекта является недостаточная развитость методологии практического применения средств искусственного интеллекта. К этим средствам относятся:

1. Искусственные нейронные сети (ИНС). ИНС построены таким образом, чтобы имитировать работку клеток головного мозга человека и, таким образом, быть способными принимать сложные решения и обучаться на основе получаемого опыта (при помощи специализированных алгоритмов). ИНС могут иметь самое широчайшее применение для реализации сложного поведения объектов.

2. Эволюционные алгоритмы, которые можно использовать для обучения и адаптации искусственного интеллекта.

3. Использование специализированных архитектур построения системы искусственного интеллекта.

4. Подход к реализации ИИ в форме воплощённого анимата. Анимат – это автономное виртуальное существо. Его отличие от классического искусственного интеллекта заключается в его воплощении в виртуальном теле и соответственном ограничении его знаний и способов получения информации, что значительно влияет на правдоподобность поведения [2].

Использование в полном объёме этих средств для разработки игрового искусственного интеллекта позволит преодолеть барьер сложности искусственного интеллекта в современной разработке компьютерных игр.

Практическое применение средств искусственного интеллекта

Часть вышеописанных средств ИИ была использована авторами данной статьи при проектировании системы игрового ИИ. В качестве правил игровой среды для разрабатываемой системы ИИ были выбраны условия классической стратегической игры с видом сверху и возможностью отдачи команд отдельным боевым единицам.

Kaziev.tif

Рис. 1. Модель окружающей среды

Главная задача, которая должна выполняться системой ИИ заключается в минимизации урона, полученного единицей, и, с другой стороны, максимизации урона, который единица наносит противнику.

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

Главный модуль системы ИИ, определяющий общее направление поведения, основан на ИНС, состоящей из 3 слоёв, содержащих в совокупности 59 нейронов. В качестве входных параметров входного слоя ИНС используются данные, собираемые виртуальными сенсорами боевой единицы, такие как параметры всех союзных и враждебных боевых единиц. Выходной слой на соревновательной основе выдаёт решение о том, какой линии поведения (на текущий момент их 11) должна придерживаться боевая единица.

Использование на практике современных методов обучения ИНС позволяет боевым единицам, находящимся под управлением ИИ, иметь преимущество над боевыми единицами, управляемыми классическими, менее гибкими алгоритмами. В частности, в ходе многократных сеансов работы модели, в которых варьировалось количество и положение боевых единиц каждой команды, было выяснено, что более интеллектуальные единицы, находящиеся под управлением обученной реализованной системы ИИ, способны выиграть бой при численном преимуществе противника до двух единиц (при составе команд более десяти единиц).

Kaziev1.tif

Рис. 2. Обобщённая схема ИНС, составляющей главный поведенческий модуль системы ИИ

Применение искусственного интеллекта для узкоспециализированных военных симуляторов

Заслуживает упоминания и другое практическое применение развитой системы игрового ИИ, которое лежит в области создания узкоспециализированных военных симуляторов. Компьютерные симуляторы широко применяются в Вооруженных силах США для обучения стрелков, водителей, летчиков, танкистов, механиков, моряков и других служащих национальной армии. [3]. При их разработке особую значимость имеет правдоподобное поведение виртуальных солдат на поле боя. Повышение затрат на разработку и применение средств игрового ИИ позволит обойти большинство ограничений, стоящих сегодня перед данным классом игровых симуляторов, и предоставить беспрецедентные возможности для обучения солдат тактике ведения боя.

Заключение

Таким образом, уже исходя из приведённых преимуществ и практической работы, можно утверждать, что вложение дополнительных средств в область разработки игрового искусственного интеллекта и методологии применения теоретических средств искусственного интеллекта в практической разработке финансово оправданы и имеют значительные перспективы.

Искусственный интеллект в компьютерных играх

Технологии искусственного интеллекта являются неотъемлемой частью индустрии компьютерных игр. С момента появления первой игры пользователям всегда хотелось видеть в лице компьютера сильного и разумного соперника. Решить такую задачу можно за счет наделения игровых компьютерных агентов интеллектуальными способностями, схожими с теми, которыми обладает человек. Иными словами, необходимо использовать специализированные системы игрового искусственного интеллекта.

В данном обзоре мы собрали информацию о специфике применения средств искусственного интеллекта в компьютерных играх. Рассмотрены особенности разработки подобных систем и примеры их практического использования.

Специфика игрового искусственного интеллекта

В настоящий момент, рынок компьютерных игр демонстрирует стабильный и уверенный рост. По данным исследовательского центра Newzoo, уже в этом году объем рынка достигнет $99.6 млрд., что на 8.5% превышает показатели прошлого года. К 2019 году ожидается, что эта цифра приблизится к $120 млрд.

1.jpg

По данным ассоциации развлекательного программного обеспечения (ESA), средний опыт современных геймеров составляет около 13 лет. Все они уже давно привыкли к тому, что год от года компьютерные игры становятся все более сложными, интересными и увлекательными. Чтобы удовлетворить такие потребности пользователей, разработчикам необходимо постоянно развивать имеющиеся системы игрового искусственного интеллекта.

Игровой искусственный интеллект несколько отличается от традиционного представления об искусственном интеллекте.Так, все усилия ученых направлены на создание разумной машины, максимально приближенной к человеку. Она должна самообучаться, взаимодействовать с окружающими объектами и даже проявлять эмоции. В играх перед искусственным интеллекта такая задача не стоит. Здесь нет необходимости обучаться за рамками игрового процесса. Достаточно лишь сымитировать правдоподобное поведение компьютерного агента, чтобы сделать игру интересной.

Основные принципы разработки игрового искусственного интеллекта

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

Система на основе правил

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

Конечные автоматы

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

2.jpg

Стоит отметить, что под эмоциональным состоянием игрового агента понимается его алгоритм поведения в той или иной ситуации. Эмоциональное состояние не имеет никого отношения к эмоциям искусственного интеллекта.

Адаптивный искусственный интеллект

Для того, чтобы внести разнообразие в игру и создать более сильного и динамического противника, разработчикам необходимо наделить игровых агентов способностью развиваться, приспосабливаться и адаптироваться. Такое правило активно применяется в боевых и стратегических играх, которые имеют сложную механику и предоставляют большое количество разнообразных возможностей для игровых агентов.

Адаптивный искусственный интеллект должен обладать достаточно важным свойством – уметь предсказывать следующий ход противника. Для этого могут применяться различные методы (выявление закономерности прошлых ходов игрока, использование случайных догадок и т.д.)

Восприятие окружающего мира игровым искусственным интеллектом

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

Чтобы принимать взвешенные решения, игровому агенту нужно знать окружающую его обстановку. В робототехнике для этого активно применяются различные технологии компьютерного зрения, позволяющие машинам получать трёхмерные объемные изображения. В системах игрового искусственного интеллекта такая детализация, безусловно, избыточна. Компьютерный мир здесь имеет одно большое преимущество: разработчикам уже заранее известны все объекты, с которыми машина может столкнуться.

Для создания более интеллектуальных игровых агентов можно наделить их возможностью слышать передвижение игроков. Поскольку каждые действия в компьютерном мире могут сопровождаться определенным уровнем звука, то можно заранее задать тот уровень, по достижению которого игровой агент будет способен обнаружить игрока.

Взаимодействие с временными объектами

В случае беспорядочного огня противника игровых агентов можно наделить способностью прятаться за укрытия. Чтобы это реализовать, агент сначала должен определить, сможет ли он спрятаться за окружающие его объекты, сравнив свои размеры с размерами укрытия, и далее, определив свободно ли выбранное место, переместиться туда.

Навигация искусственного интеллекта

Практическое применение. Военные тренажеры

Все вышеперечисленные правила позволяют разработчикам создать для игроков компьютерных игр действительно интеллектуальных соперников. При этом, стоит отметить, что мы лишь дали обобщенное представление о создании компьютерных игр с помощью средств искусственного интеллекта. Поэтому здесь представлены не все правила, а только их малая часть.

В последние годы используемые алгоритмы для игрового искусственного интеллекта продолжают активно развиваться. Этому, в частности, способствует увеличение области их применения. Помимо компьютерных игр, игровой искусственный интеллект активно применяется для создания узкоспециализированных военных симуляторов. Военные симуляторы уже давно стали частью системы тренировок Вооруженных сил некоторых стран (США, Великобритания). При разработке подобных систем особую значимость приобретает правдоподобное поведение виртуальных солдат на поле боя.

В российской армии также заинтересованы использовании подобных технологий для обучения личного состава. Наибольший интерес отечественного военного ведомства представляют стрелялки в жанре Action, а также авиа- и танковые симуляторы.

В 2015 году в прессу просочилась информация о том, что в России создали самый большой и самый высокотехнологичный полигон - 333-й Центр боевой подготовки, в котором активно применяются военные симуляторы. Был момент, когда этот масштабный проект находился под угрозой срыва. Немецкий концерн, занимающийся созданием данного полигона, в одностороннем порядке разорвал контракт из-за санкционной политики западных властей. Обратившись в суд, Министерство обороны все-таки продолжило проект, проучив закончить все работы отечественным инженерам.

В настоящий момент на обучение в 333-й Центр боевой подготовки приезжают солдаты и офицеры со все России. Пройдя курс обучения продолжительностью 7 месяцев, все они возвращаются в свои части уже готовыми специалистами. За год на полигоне могут пройти обучение около 30 тысяч военных.

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

ИИ в играх — это набор алгоритмов, которые диктуют поведение NPC в разных ситуациях. Игровой ИИ неспособен на мышление или творчество, его действия предопределены разработчиками. Несмотря на такие ограничения, грамотно созданный ИИ подстраивается под ситуацию и меняет поведение в зависимости от контекста. ИИ нужен для имитации разумности NPC, при этом его задача не в том, чтобы обыграть пользователя, а в том, чтобы развлечь его. В современных играх используются разные подходы для создания ИИ. В основе лежит общий принцип: получение информации → анализ — действие. Под катом — самые популярные методы и примеры использования ИИ в играх.

Horizon Zero Dawn

Horizon Zero Dawn

Как игровой ИИ получает информацию

В Tom Clancy’s Splinter Cell: Blacklist вражеские собаки умеют выслеживать героя по запаху. Это вынуждает игрока постоянно менять укрытие и не засиживаться на одном месте.

В Tom Clancy’s Splinter Cell: Blacklist вражеские собаки умеют выслеживать героя по запаху. Это вынуждает игрока постоянно менять укрытие и не засиживаться на одном месте.

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

В серии Serious Sam большинство врагов просто бездумно бегут на игрока, когда он выходит на поле боя.

В серии Serious Sam большинство врагов просто бездумно бегут на игрока, когда он выходит на поле боя.

Виртуальные рецепторы устроены по-разному. В Metal Gear Solid у противников совсем простой конус зрения, отсутствует периферийное зрение, поэтому они видят только то, что происходит прямо перед ними.

Конус зрения в Metal Gear Solid

Конус зрения в Metal Gear Solid

В Shadow Tactics: Blades of the Shogun тоже используется конус, но он сложнее. Конус поделён на зоны видимости, которые зависят от особенностей ландшафта. Если игрок попадёт в однородную зелёную зону, то его почти сразу увидят. В полосатой зоне видимость затруднена, поэтому игрок будет незаметен, если будет двигаться, пригнувшись. А в зоне, покрытой точками, герой полностью скрыт.

Когда противник замечает игрока, конус зрения постепенно меняет цвет на жёлтый. Когда он заполнится, враг поднимет тревогу.

Когда противник замечает игрока, конус зрения постепенно меняет цвет на жёлтый. Когда он заполнится, враг поднимет тревогу.

В Tom Clancy’s Splinter Cell: Blacklist визуальный сенсор противников комплексный. У врагов есть основная зона видимости в форме вытянутого шестиугольника. Здесь моб видит лучше всего, поэтому в это пространство вообще лучше не заходить. Есть и более крупный шестиугольник, который имитирует периферийное зрение — там противник видит хуже. В такую же зону входят удалённые участки, которые недостаточно хорошо просматриваются.

Но интереснее всего, что сзади противника тоже есть зоны, в которых он может заметить игрока. Эти зоны имитируют ощущение, что кто-то стоит за спиной, так что у игрока не получится долго красться вплотную к врагу.

Схема визуального сенсора противников в Splinter Cell: Blacklist.

Схема визуального сенсора противников в Splinter Cell: Blacklist.

Особенность противников в Splinter Cell: Blacklist в том, что они могут видеть игрока в частичном укрытии. Если несколько частей тела героя выглядывают из-за препятствия, то враг замечает его. Чтобы реализовать эту механику, разработчики использовали технологию рейкастинга — из глаз врага кастуются лучи, и если они пересекают несколько частей тела героя, то противник поднимает тревогу.

Тело Сэма Фишера поделено на восемь частей. Если враг увидит несколько из них, то откроет огонь.

Тело Сэма Фишера поделено на восемь частей. Если враг увидит несколько из них, то откроет огонь.

Как ИИ принимает решение

Часто разработчики добавляют подобие коллективного интеллекта, который следит за тем, чтобы действия отдельных агентов не противоречили и не мешали друг другу. При этом сами мобы зачастую даже не знают о существовании своих союзников — эта информация им не нужна, потому что за координирование действий отвечает ИИ более высокого уровня.

В Horizon Zero Dawn робозвери умеют объединяться в стада, а их поведением управляет групповой агент. У каждой машины есть своя роль: патрулирование, атака, поиск ресурсов.

В Horizon Zero Dawn робозвери умеют объединяться в стада, а их поведением управляет групповой агент. У каждой машины есть своя роль: патрулирование, атака, поиск ресурсов.

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

Например, в Final Fantasy XV есть мета ИИ, который постоянно анализирует ситуацию и управляет NPC. Если игрок попал в передрягу, то именно мета ИИ вызовет ему на помощь союзника.

Например, в Final Fantasy XV есть мета ИИ, который постоянно анализирует ситуацию и управляет NPC. Если игрок попал в передрягу, то именно мета ИИ вызовет ему на помощь союзника.

Следующий распространённый способ принятия решений — конечные автоматы. Этот подход позволяет NPC беспроблемно переходить между разными состояниями. Например, есть моб, базовое состояние которого — патрулирование по определённой траектории. Если внезапно появится игрок, NPC перейдёт в новое состояние — начнёт стрелять. Конечные автоматы как раз обеспечивают эти переходы: они принимают информацию с предыдущего состояния и передают в новое.

ИИ в Half-Life реализованы при помощи конечных автоматов. У них более 80 уникальных состояний.

ИИ в Half-Life реализованы при помощи конечных автоматов. У них более 80 уникальных состояний.

Преимущество этого подхода в том, что персонаж всегда будет находиться в каком-то состоянии и не зависнет где-то между ними. Так как разработчик должен прописать все переходы, он точно знает, в каких состояниях может находиться игровой объект. Недостаток метода в том, что с увеличением количества механик значительно разрастается и система конечных автоматов. Это увеличивает риск появления багов, а также может снизить скорость операций.

Дерево поведения — это более формализованный подход построения поведения мобов. Его особенность заключается в том, что все состояния персонажа организованы в виде ветвящейся структуры с понятной иерархией. Дерево поведения содержит в себе все возможные состояния, в которых может оказаться моб. Когда в игре происходит какое-то событие, ИИ проверяет, в каких условиях находится NPC, и перебирает все состояния в поисках того, которое подойдёт для нынешней ситуации.

Пример дерева поведения из Just Cause 3. У каждого типа поведения есть огромное количество вариаций.

Пример дерева поведения из Just Cause 3. У каждого типа поведения есть огромное количество вариаций.

Дерево поведения отлично подходит для того, чтобы систематизировать состояния NPC в играх, в которых есть множество механик и геймплейных элементов. В ситуации, когда моб участвует в перестрелке, ему не нужно будет искать подходящее действие в ветке патрулирования. Такой подход помогает сделать поведение NPC отзывчивым и обеспечивает плавный переход между разными состояниями.

Допустим, есть моб, основная задача которого — патрулировать округу на транспорте. Внезапно появляется игрок, угоняет машину и взрывает её. NPC будет какое-то время отстреливаться, но когда игрок скроется из зоны видимости, моб должен будет вернуться к патрулированию на машине. Но машина уничтожена, поэтому ИИ не может вернуться к своему изначальному состоянию. В такой ситуации он должен самостоятельно перейти в состояние пешего патрулирования, как у остальных противников. Дерево поведения как раз позволяет NPC легко найти новое состояние и не зависнуть.

В Gears Tactics у каждого типа юнитов есть собственное дерево поведения, в котором учтены все индивидуальные особенности и способности NPC.

В Gears Tactics у каждого типа юнитов есть собственное дерево поведения, в котором учтены все индивидуальные особенности и способности NPC.

Иерархические конечные автоматы объединяют особенности конечных автоматов и дерева поведения. Особенность такого подхода в том, что разные графы внутри логики могут отсылаться друг к другу. Например, нам надо прописать поведение для нескольких мобов. Не обязательно делать для каждого отдельную логику — можно создать общее базовое поведение и просто отсылаться к нему при необходимости.

Так выглядит иерархическая архитектура в Final Fantasy XV.

Так выглядит иерархическая архитектура в Final Fantasy XV.

Есть и менее популярные решения, которые не смогли полноценно закрепиться в индустрии. К примеру, в F.E.A.R. использовалась система целеориентированного планирования действий (Goal-Oriented Action Planning, GOAP) — для всех NPC она создаёт план действий, основываясь на информации об игровом мире. Например, если мобу нужно перейти в другую комнату, то система сперва проверяет, какое расстояние нужно пройти до двери, есть ли на пути препятствия, открыта ли дверь и так далее. Когда у системы есть вся информация об окружении, она составляет план, а NPC просто проигрывает последовательность анимаций.

Этот подход работает на основе конечных автоматов, но они отвечают только за воспроизведение анимаций. У автоматов есть всего три состояния, каждое из которых отвечает за свой набор анимаций: движение (бег, ходьба), действия (стрельба, реакции), взаимодействие с объектами (открыть дверь, включить свет).

F.E.A.R. запоминается достаточно умными противниками, которые умеют работать сообща. На самом деле они даже не знают о существовании друг друга — просто ИИ грамотно координирует их действия.

F.E.A.R. запоминается достаточно умными противниками, которые умеют работать сообща. На самом деле они даже не знают о существовании друг друга — просто ИИ грамотно координирует их действия.

На смену GOAP постепенно пришла система ИИ под названием иерархический планировщик сети задач (HTN). Эта сеть создаёт планы, которые состоят из макросов действий, в которых уже заложена определённая последовательность.

Такая система применяется в Horizon Zero Dawn. С помощью неё робоживотные могут обмениваться информацией и запрашивать у группового ИИ план действий для решения задачи.

У каждого противника в Horizon Zero Dawn есть свой паспорт, который используется при идентификации и добавлении в новую стаю. Когда моб попадает в неё, ему присваивается роль внутри группового агента.

У каждого противника в Horizon Zero Dawn есть свой паспорт, который используется при идентификации и добавлении в новую стаю. Когда моб попадает в неё, ему присваивается роль внутри группового агента.

Как ИИ передвигается в пространстве

Действия ИИ напрямую связаны с его задачей: это может быть удар в ближнем бою, занятие более выгодной позиции для стрельбы, помощь союзнику. Независимо от задачи агент должен добраться до места выполнения действия — для этого ему нужна информация об окружающей среде.

Обычно такие данные содержатся в навигационной сетке (NavMesh) — это особая карта, на которой обозначено, где NPC могут передвигаться.

В Horizon Zero Dawn есть сразу шесть навигационных сеток: четыре для существ разного размера, одна для плавающих существ, одна, чтобы игрок мог корректно оседлать моба.

В Horizon Zero Dawn есть сразу шесть навигационных сеток: четыре для существ разного размера, одна для плавающих существ, одна, чтобы игрок мог корректно оседлать моба.

Поверх навигационной сетки может располагаться система узлов, которая применяется для того, чтобы NPC корректно выполняли сценарии поведения. К примеру, в Assassin’s Creed Origins у всех NPC есть свой распорядок дня, который они соблюдают даже без участия игрока. Чтобы персонажи следовали сценарию и не застревали в окружении, разработчики сделали специальную сеть узлов — точки на плоскости, где NPC выполняют свою персональную задачу. Описанный метод подходит для заранее предопределённых сценариев. NPC словно перемещаются по рельсам от одной точки к другой.

Зелёным обозначена навигационная сетка, а поверх неё находится система узлов. Жёлтая стрелка указывает на ошибку — кто-то поставил на узел игровой объект, чем перекрыл NavMesh.

Зелёным обозначена навигационная сетка, а поверх неё находится система узлов. Жёлтая стрелка указывает на ошибку — кто-то поставил на узел игровой объект, чем перекрыл NavMesh.

В ситуациях, в которых нужно реагировать на действия игрока, используется другой подход. В Just Cause 3 существует система, выбирающая приоритетные позиции, на которых NPC сможет эффективнее всего выполнить свою задачу. Выбор той или иной позиции зависит от конкретных критериев: дальности от цели, наличия препятствий между мобом и его целью, удалённостью от союзников и так далее.

NPC будут стараться находиться у зелёных точек, так как это наиболее выгодные для них позиции.

NPC будут стараться находиться у зелёных точек, так как это наиболее выгодные для них позиции.

Похожая система есть и в Final Fantasy XV: когда NPC хочет применить способность, он оценивает окружение вокруг своей цели, чтобы найти наиболее выгодную позицию. Сначала ИИ ищет цель, потом выстраивает сетку из точек вокруг цели, отсеивает позиции, которые не подходят из-за особенностей ландшафта или удалённости от цели, а из оставшихся выбирает самую высокую точку.

В навигационной сетке уже содержится информация о перемещениях между уровнями по вертикали.

В навигационной сетке уже содержится информация о перемещениях между уровнями по вертикали.

A* высчитывает траекторию, основываясь на самой высокой точке локальной местности. Именно из-за этого воздушные противники в Horizon Zero Dawn не могут залетать под мосты или скалы.

A* высчитывает траекторию, основываясь на самой высокой точке локальной местности. Именно из-за этого воздушные противники в Horizon Zero Dawn не могут залетать под мосты или скалы.

Пока это фантазии — перед релизом игры нейросеть нужно долго обучать. Без этого ИИ вряд ли выдаст корректные результаты. К тому же основная задача игр — развлекать пользователя. Все игровые элементы должны существовать в рамках понятного и сбалансированного геймдизайна. Нейросети же стремятся найти лучший вариант выполнения задачи и зачастую используют чуждую человеческому разуму логику.

Когда одну нейросеть обучали на игре Road Runner, цель ИИ заключалась в том, чтобы избежать поражения на втором уровне. Нейросеть обнаружила, что на первом уровне можно быстрее зарабатывать очки, поэтому каждый раз убивала себя перед переходом на второй уровень.

Нейросети показывают удивительные результаты, но всё это пока что плохо применимо к играм. С точки зрения экспериментов такой ИИ выглядит как нечто восхитительное, но со стороны пользовательского опыта результаты непредсказуемы.

Читайте также: