Разум робозверя: как работает ИИ в Horizon Zero Dawn

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


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

Главная особенность Horizon Zero Dawn — это роботы разных форм и размеров, которые ведут себя, как знакомые нам дикие животные: они умны, скоординированы и смертельно опасны. Чтобы выжить в их окружении, требуются быстрое мышление, хорошая подготовка и глубокое планирование.

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

Экосистема Horizon Zero Dawn

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

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

  • Роботы-сборщики и мусорщики, такие как Strider и Grazer. Эти машины рабочего класса обычно находятся на открытых травянистых зонах, и, хотя они относительно послушны и часто избегают конфронтации, они тем не менее смертельно опасны, когда их провоцируют.
  • Машины-разведчики, такие как Watchers и Longlegs, сканируют регион на предмет угроз и предупреждают соседние машины, чтобы они могли вступить в бой или бежать.
  • Транспортные машины — Behemoth и Shell-Walker, которые собирают ресурсы у роботов-сборщиков, превращая их в ценные вещи. Они медленные, громоздкие и их обычно защищают более проворные юниты.
  • Боевые роботы — Sawtooths и Stalkers, которые предназначены для атаки на игрока и другие угрозы.

Всего есть 28 уникальных видов роботов, каждый из которых имеет собственное пассивное и агрессивное поведение. Чтобы эффективно с ними взаимодействовать, пользователям нужно запомнить их особенности. Существа, которые представляют самую большую угрозу, передвигаются по миру в одиночку, а роботы поменьше сбиваются в стада. Например, Watchers, Striders, Scrappers и Longheads успешно сосуществуют и поддерживают друг друга. А со временем эти стада увеличиваются в размерах и разнообразии.

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

Иерархия агентов

Каждая машина и каждое стадо представлены в игре как отдельные NPC, которые называются «агент». Horizon Zero Dawn строит иерархию, в соответствии с которой машина может существовать в качестве агента или дочернего элемента группового агента.

Пример групповой иерархии

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

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

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

Система ИИ, используемая в Horizon Zero Dawn, называется иерархическим планировщиком сети задач (HTN). Система HTN генерирует планы, состоящие из макросов действий. Каждый макрос содержит несколько действий в заданной последовательности. Это идеально подходит для разработки игр, поскольку дизайнеры могут собирать макросы с нужным поведением.

Обзор HTN-планирования 

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

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

Коллектив

На игровой карте есть определённые места, где по отдельности появляются такие машины, как Thunderjaws и Stormbirds, а в стаях Striders, Grazers и Glinthawks. Однако остальная часть игрового мира полна стад, состоящих из разных машин. Благодаря системе «The Collective», игра узнаёт, где должны появиться те или иные существа.

The Collective — это супергруппа: все группы машин и отдельные машины существуют в ней совместно. Она управляет появлением всех машин в мире, отслеживает их принадлежность к группе, определяет перемещение между группами и занимается общей экосистемой машин.

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

Пример стада

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

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

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

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

Стада изменяют свой состав, когда находятся под угрозой, формируя группы «бегства» и «борьбы»

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

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

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

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

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

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

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

Роботы в Horizon Zero Dawn могут оказаться смертельными как сами по себе, так и в составе стада. Благодаря системе планирования и иерархии, агенты могут самостоятельно перемещаться по джунглям или защищать и поддерживать друг друга. Подобная система способствует созданию увлекательного и захватывающего мира, который всегда поддерживает интерес пользователя.


Источник: dtf.ru

Комментарии: