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

Nov 17 2004
Вы устали от порчи со стороны Ковенанта? Узнайте, как они думают, от человека, создавшего искусственный интеллект для «Halo 2». В этом эксклюзивном интервью нас просветляет Крис Батчер из Bungie Studios.

Вы устали от порчи со стороны Ковенанта? Узнайте, как они думают, от человека, создавшего искусственный интеллект для «Halo 2». В этом эксклюзивном интервью Stuffo Крис Батчер из Bungie Studios расскажет нам.

17.11.04

Итак, я здесь... в окружении коробок из-под пиццы, мягких оберток от тако, банок из-под газировки и контроллеров. Я устал, и я плохо пахну. Наконец-то я прошел "Halo 2". Ковенанты устраивали засады, стреляли из снайперов, выгоняли, загоняли в угол и просто сбивали с ног больше раз, чем мне хочется припомнить. Как в «Halo», так и в «Halo 2» боевая смекалка противника является одним из самых впечатляющих аспектов игры. Враги — это гораздо больше, чем просто натиск фуража. Это не стрелок твоего папы. Если вы думаете, что быстрый триггерный палец позволит вам прорваться через Ковенант в «Halo 2», то на нем есть мешок для трупов с вашим именем.

«ИИ живет в симулированном мире».

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

Если вы поражены тем, насколько «грязным» может стать «грязный бассейн» Ковенанта в пылу битвы, вам будет интересно услышать, что Крис Батчер сказал об искусственном интеллекте «Halo 2». Крис является одним из четырех ведущих инженеров в Bungie Studios, каждый из которых отвечает за определенные части создания Halo. Крис создал ИИ для оригинальной «Halo» и расширил свою работу в «Halo 2». За несколько дней до запуска «Halo 2» Стаффо получил возможность поговорить с Крисом об искусственном интеллекте «Halo 2».

Хотите больше гало?

У нас есть: внутренняя информация о создании сюжета и звука, экскурсия по студиям Bungie, введение в историю Halo и многое другое.

Нажмите здесь, чтобы проверить все это.

Содержание
  1. Основы
  2. Восприятие ИИ
  3. Принятие решения
  4. Найти путь
  5. Работая вместе
  6. Зловещая долина

Основы

«Между игроком и персонажем с искусственным интеллектом в Halo действительно очень мало различий».

«Я написал искусственный интеллект для Halo 1, — объясняет Крис. «По сути, это очень специализированный тип интеллекта. Для каждого персонажа был свой код». В «Halo 2» Крис расширил ИИ, созданный им для первой игры. Первое, что нужно понять об ИИ-персонажах в Halo, это следующее: «ИИ живет в смоделированном мире».

Большинство шутеров от первого лица, таких как Quake или Unreal, построены на графическом движке. Игрок, по сути, представляет собой стационарную «камеру», и движок создает ощущение движения по миру, отрисовывая графику, создающую этот эффект. Halo отличается, объясняет Крис. «Halo — это движок моделирования. Движок создает мир, затем помещает в него игрока и ИИ… [] Персонажи и их код изолированы от мира».

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

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

«Все это работает благодаря тем же возможностям, что и у игрока», — объясняет Крис. Это ключевой момент в том, как работает искусственный интеллект Halo: поскольку персонажи вынуждены воспринимать окружающий мир, они во многих отношениях, как и игрок, ограничены своими чувствами — в их общем понимании того, что происходит вокруг. их. Это ограничение делает поведение ИИ-персонажей более реалистичным, поскольку они могут удивляться, совершать ошибки и принимать решения, основываясь на своем восприятии того, что происходит вокруг них. Как говорит Крис, «на самом деле между игроком и персонажем с искусственным интеллектом в Halo очень мало различий».

Восприятие ИИ

«Персонажи воспринимают мир так, как игроки могут рассуждать, потому что игрок понимает, как работают их чувства в этом мире».

Крис продолжает:

«Если бы мы писали искусственный интеллект для робота, нам пришлось бы писать все виды компьютерного зрения и анализировать изображения, чтобы понять, что он видит. Но поскольку [персонажи Halo] живут в смоделированном мире, персонажи могут непосредственно воспринимать этот мир. Мы решили сделать это с помощью симулированных чувств, потому что таким образом персонажи воспринимают мир таким образом, о котором игроки могут рассуждать, потому что игрок понимает, как их чувства работают в этом мире. Мы сделали симулированные чувства [для ИИ].

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

Крис продолжает:

«Итак, мы смоделировали зрение и звук. Мы берем информацию о том, что ИИ может видеть прямо сейчас, и превращаем ее в структуру памяти. Таким образом, [ИИ] может сказать: «В данный момент времени я я вижу [женщину], сидящую прямо там. Я вижу женщину в черном свитере прямо там». Затем вы превращаете это в более обработанную информацию, говоря: «У меня есть воспоминание о [женщине], которая находится в этом конкретном состоянии в это время». Если бы [эта женщина] вышла из комнаты и зашла за угол, я бы ее больше не увидел, но ИИ сохранил бы память об этом персонаже и о том, что они в последний раз видели ее там, и когда она ушла. , она двигалась в этом направлении.

Таким образом, у них есть модели памяти, которые представляют собой то, что они знают о мире. Они берут эту модель памяти и превращают ее в более конкретную боевую информацию. Например, если у меня есть память о семи персонажах в этой комнате, и один из них мой друг, а остальные шесть мои враги, у меня будет знание, говорящее: «Я сражаюсь в ближнем бою с подавляющей силой». Здесь шесть врагов и только два друга. Это пример более обработанной информации, которая используется для создания более устойчивых знаний о том, каково состояние битвы или каково состояние мира и как я должен реагировать на это?»

Принятие решения

«…наш ИИ не пьет, не ест, не спит. На самом деле он только и делает, что стоит и дерется…»

Каждый ИИ в Halo по очереди «думает». Эти повороты происходят очень быстро, из-за чего создается впечатление, что каждый ИИ постоянно думает. Когда наступает его очередь, каждый ИИ принимает решения на основе данных, которые он обработал. Это система поведения ИИ. Крис объясняет:

Четыре состояния боевого цикла:

  • Праздный
  • Охрана/Патруль
  • Атака/Защита
  • Спасаться бегством

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

Крис продолжает:

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

Мы редко делаем что-то случайно. Цель не в том, чтобы создать что-то непредсказуемое. Что вам нужно, так это искусственный интеллект, который является последовательным, чтобы игрок мог вводить определенные данные. Игрок может делать что-то и ожидать, что ИИ будет реагировать определенным образом. Например, если я подкрадусь сзади к Ворчуну и застану его врасплох, я ожидаю, что он убежит. Было бы плохо, если бы они убегали только в половине случаев, потому что тогда игрок может построить план, который будет работать только в половине случаев. Мы стараемся идти на предсказуемые действия, но непредсказуемые последствия. Ворчун всегда будет убегать, но вы не обязательно знаете, куда он убежит. Отсюда и реиграбельность».

Найти путь

Крис продолжает:

«Если я ИИ, сражающийся с окружающими меня врагами, одно из решений, которое я должен принять, — где мне будет наиболее выгодно стоять? В каждой среде есть сотни точек, указанных дизайнером уровней — - это возможные места, где ИИ хотел бы быть. Именно так они контролируют ход игры. Они берут ИИ и перемещают их из одной точки в другую в зависимости от того, что происходит. Вы загружаете все это в действительно низкоуровневый Например, если я здесь и хочу туда добраться, как мне туда добраться?

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

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

Настоящая задача поиска пути — добраться до этой точки осмысленным образом. Крис уточняет:

«Если у вас есть персонаж, который не может ориентироваться в окружающей среде, этот персонаж будет делать вещи, которые игрок воспринимает как глупые, например, врезаться в стену или стоять на месте и быть тупым. Это потому, что они хотят куда-то пойти, но они не знают, как это сделать. Мы потратили много времени на поиск пути в нашей игре. Наш ИИ знает, что в мире есть объекты, которым мы пометили свойства: это маленький объект или большой объект или огромный объект. ИИ будет знать: «Я могу пробежать сквозь маленькие объекты» при поиске пути. Он отбросит их в сторону. Но им приходится бегать вокруг более крупных объектов. Некоторые более крупные персонажи знают, что они могут прорваться через объекты, которые маленькие персонажи избегают или убегают вокруг. "

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

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

Работая вместе

«В Halo 2 у нас есть новые инструменты для совместной работы [ИИ]».

«Halo 1» предложил игрокам уровень координации и сотрудничества ИИ, редко встречающийся в играх FPS. Создав серию встроенных ответов в каждом отдельном ИИ, создатели создали впечатление, что ИИ работает вместе. Крис объясняет: «Одна из самых интересных вещей в Halo заключается в том, что у нас есть множество инструментов, позволяющих заставить ИИ работать вместе как скоординированная сила… [ИИ] принимает индивидуальные решения на основе того, что происходит вокруг них с их друзьями. Например, Ворчун мог бы принять индивидуальное решение: «Элита, с которой я только что был, убита. Так что я собираюсь убежать».

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

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

Но это был первый Halo. «В «Halo 2» у нас есть новые инструменты для их совместной работы, — объясняет Крис. Его команда добавила к ИИ систему совместного поведения, которая позволяет им вместе работать над гораздо более сложными задачами. «ИИ скажет: «Я обдумываю это совместное поведение и замечаю, что вокруг меня есть люди, которые являются моими друзьями». Поэтому они отправляют запрос другому ИИ, чтобы сказать: «Я хотел бы сделать это с вами. Вы примете это?» а другие ИИ, когда придет их очередь думать, либо примут это, либо отвергнут и сообщат создателю. Мы использовали эти новые разработки для различных тонких и очевидных улучшений. Наиболее очевидным является то, что персонажи разговаривают друг с другом. ИИ публикует совместное поведение: «Я заметил, что мы оба ищем одного и того же парня. Я хочу рассказать вам кое-что о нем и хочу, чтобы вы ответили мне». или: «Мы оба ищем одного и того же парня». Давайте работать вместе, чтобы найти его, чтобы мы могли выпрыгнуть и удивить его вместе ».

Садиться в транспортное средство — еще одно групповое поведение. Если ИИ может видеть движущееся транспортное средство, он может отправить запрос ИИ, управляющему этим транспортным средством, с просьбой подвезти. Водитель ИИ, если примет пост, остановится, развернется и заберет его.

И диалог не только для вкуса, объясняет Крис. «Разговор важен, потому что поведение и общение ИИ не были бы очевидны для игрока, если бы ИИ не говорил что-то и не заявлял игроку о своих мотивах».

Зловещая долина

«Вот в чем суть искусственного интеллекта. Он заключается в том, чтобы обмануть игрока, заставив его поверить, что там есть что-то разумное».

Когда интервью подходило к концу, мы с Крисом обсудили некоторые проблемы, с которыми сталкивается ИИ.

«Вы знакомы с теорией «зловещей долины» из компьютерного анимационного фильма?» он спросил. Я не был, поэтому Крис объяснил это:

«По мере того, как персонажи становятся более фотореалистичными, вы начинаете верить в них все больше и больше. С персонажами-людьми вы достигаете определенной точки реализма. Что происходит, так это то, что есть персонажи, которые настолько реалистичны, что вам хочется верить, что они на самом деле люди. Затем вы замечаете их недостатки. У них очень пластичная кожа или очень деревянные глаза. Внезапно они просто становятся жуткими. Они больше похожи на людей-зомби, чем на привлекательных компьютерных людей. Привлекательность персонажа возрастает, затем резко падает, затем снова поднимается, когда вы приближаетесь к фотореализму».

Крис продолжает:

«В нашей игре мы не пытаемся быть фотореалистичными. Наши персонажи такие, какие они есть с точки зрения визуальных эффектов. Проблема в том, что мы начинаем приближаться к точке «зловещей долины» с поведением. У нас есть все эти персонажи. которые говорят все эти интересные вещи, которые очень богаты и содержательны об их окружении.У них есть все эти интересные боевые возможности, но вы можете сделать то, на что они не запрограммированы реагировать, и они не знают, как реагировать . Затем они внезапно становятся тупыми, как зомби. У них нет реплик типа: «Эй, шеф, вы только что заставили этот автомат с газировкой сделать полный переворот. Это было потрясающе!»

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


Проблема с ИИ в играх сейчас такова: «Каковы границы ИИ? Как нам скрыть эти границы от игрока? И как нам выйти за их пределы? Вот что такое искусственный интеллект. Речь идет о том, чтобы заставить игрока поверить, что там есть что-то разумное».