- Как работает искусственный интеллект в играх?
- Что такое ИИ в играх?
- Может ли нейросеть создать игру
- Как нейросети помогают обходить правила
- Взгляды
- Использование
- На земле, в воде и по воздуху — как ИИ передвигается в пространстве
- Как игровой ИИ получает информацию
- Как ИИ принимает решение
- Запах свежих трупов
- Враги Мастер Чифа
Например, в Final Fantasy XV есть мета ИИ, который постоянно анализирует ситуацию и управляет NPC. Если игрок попал в передрягу, то именно мета ИИ вызовет ему на помощь союзника
Как работает искусственный интеллект в играх?
Для придания чувства реальности в игры помещают разного рода ИИ. Порой можно подумать, что он превосходит даже людей. В статье мы расскажем как работает ИИ в играх.
Все IT-сферы сделали огромный скачок в развитии, та же самая тенденция наблюдается и в игровой индустрии. Вначале создания были простейшие игры наподобие Pac-Man и Pong, и даже они позволили забыть игрокам о реальности на недели. Современные проекты по созданию игр уже стали полноценным хобби, настолько распространённым, что сегодня каждый четвёртый житель играет в World of Warcraft, World of Tanks, Call of Duty и т. п.
Для многих остаётся загадкой, какую роль в развитии игр имеет искусственный интеллект. Сегодня постараемся понять, за что он отвечает именно в играх.
Что такое ИИ в играх?
Чтобы было всем понятно, искусственный интеллект отвечает за модуляцию или имитацию естественного поведения игроков или отдельных объектов. В играх их называют ботами. Принцип сводится к имитации поведения, объектами управляет не человек. Иначе говоря, ИИ является искусственной заменой человеческого интеллекта.
В некоторых играх используется простейший ИИ, включающий лишь небольшой набор правил. Нередко ИИ является сложным алгоритмом действий, который отвечает за работу целой команды или армии противников
Зелёным обозначена навигационная сетка, а поверх неё находится система узлов. Жёлтая стрелка указывает на ошибку — кто-то поставил на узел игровой объект, чем перекрыл NavMesh
Может ли нейросеть создать игру
В 2020 году ИИ GameGAN с нуля воссоздал игру Pac-Man за четыре дня. В авиасимуляторе Microsoft Flight Simulator с помощью нейросетей и данных карт Bing Maps удалось представить Землю, включая все страны, города и аэропорты. Несмотря на эти успехи, искусственный интеллект пока не может полностью самостоятельно создавать игры. Но нейросети могут освободить сотрудников игровых компаний от рутинной работы, и те смогут сосредоточиться на нетривиальных творческих задачах.
По мнению Вячеслава Уточкина, директора образовательных программ по игровой индустрии Центра развития компетенций в бизнес-информатике Высшей школы бизнеса НИУ ВШЭ, рутинные задачи получится полностью отдать искусственному интеллекту уже в ближайшее время. Например, нейросети совершенствуются в переводе. Это значит, что скоро можно будет нанимать не переводчиков, а только редакторов, которые будут дорабатывать уже готовый перевод.
В будущем все больше внимания будет уделяться автоматизированному бета-тестированию игр. Тем не менее, сегодня в приоритете ручное тестирование, поскольку зачастую организация процесса с использованием искусственного интеллекта дороже, чем работа специалистов по ручному тестированию. Также ИИ сможет заменить специалистов технической поддержки, которые работают по скрипту. Этот тренд касается не только гейм-индустрии — на звонок в аэропорт или банк вам, скорее всего, тоже ответит робот.
Как нейросети помогают обходить правила
Стартап под названием Gosu.ai — тренировочная платформа и голосовой ассистент для игроков в соревновательные игры. Алгоритм анализирует, что происходит в игре, и дает подсказки, как победить: куда пойти, какой инвентарь купить и так далее. Эта технология помогает геймерам научиться оценивать свой вклад в игру и оптимизировать свои действия.
В 2021 году искусственный интеллект стали применять для создания читов. Новая программа использует ИИ для точного выстрела. Игрокам не нужно даже прицеливаться, чтобы выстрелить в противника — чит сам определяет оружие, находит соперника, анализирует его движения и стреляет. Обнаружить такой чит сложно, поскольку он не встраивается в программные файлы игры, а собирает информацию прямо с экрана. Единственный способ понять, что геймер использует чит — мгновенная реакция, на которую человек физически не способен.
У каждого противника в Horizon Zero Dawn есть свой паспорт, который используется при идентификации и добавлении в новую стаю. Когда персонаж попадает в неё, ему присваивается роль внутри группового агента
Взгляды
Некоторые игровые программисты рассматривают любую методику, которая используется для создания иллюзии интеллекта, как часть игрового ИИ. Однако этот взгляд является спорным, так как он включает методики, которые широко используются вне движка игрового ИИ. Например, информация о потенциальных будущих столкновениях является важной вводимой информацией в алгоритмы, которые помогают создавать ботов, которые будут достаточно умными для избегания столкновений с объектами. Но те же самые методики определения столкновений (англ.) являются необходимым и одним из самых важных компонентов физического движка. Точно так же результаты испытательного направления взгляда (взора) бота (en:Line of sight (gaming)) обычно являются важными вводными данными в систему прицеливания бота; вместе с тем эти данные широко используются при рендеринге в графическом движке. Финальным примером является скриптинг, который может быть удобным инструментом для всех аспектов игровой разработки, однако часто сильно ассоциируется с контролированием поведения неигровых персонажей.
Пуристы считают, что выражение «искусственный интеллект» в термине «игровой искусственный интеллект» является преувеличением, поскольку игровой ИИ описывает не интеллект и использует немногие из направлений академической науки «Искусственный интеллект». Принимая во внимания, что «реальный» ИИ обращается к отраслям самообучающихся систем и принятии решений, которые базируются на произвольном вводе данных, и даже к окончательной цели «сильного» ИИ, который может рассуждать, игровой ИИ часто состоит из нескольких эмпирических правил и эвристики, которых достаточно, чтобы предоставить игроку хороший геймплей, ощущения и впечатления от игры.
Увеличение понимания академического ИИ разработчиками игр и растущий интерес академического сообщества к компьютерным играм вызывает вопрос, насколько и в какой степени игровой ИИ отличается от классического. Однако, существенные различия между различными прикладными областями искусственного интеллекта означают, что игровой ИИ всё ещё может быть рассмотрен как отдельная под-отрасль ИИ. В частности, способность «законным» образом решить некоторые проблемы ИИ в играх через обман создаёт важное различие. Например, выведение позиции невидимого объекта из прошлых наблюдений может быть трудной проблемой, когда ИИ применён к робототехнике, но в компьютерных играх неигровой персонаж может просто искать позицию в игровом графе (en:Scene graph). Такой обман может привести к нереалистичному поведению и поэтому не всегда желателен. Но его способность служит для различения игрового ИИ приводит к новым проблемам, таким как когда и как использовать обман.
Использование
Эвристические алгоритмы игрового искусственного интеллекта используются в широком разнообразии во многих отраслях внутри игры. Самое очевидное применение игрового ИИ проявляется в контролировании неигровых персонажей, хотя скриптинг тоже является очень распространённым способом контроля. Поиск пути является другим широко распространённым применением игрового ИИ, — он особенно проявляется в стратегиях реального времени. Поиск пути является методом для определения того, как неигровому персонажу перейти с одной точки на карте к другой: нужно учитывать ландшафт, препятствия и, возможно, «туман войны». Игровой ИИ также связан с динамической игровой балансировкой.
Концепция непредсказуемого (англ. emergent ) ИИ была недавно исследована в таких играх как Creatures, Black & White и Nintendogs и в таких игрушках как тамагочи. «Домашние животные» в этих играх имеют способность «учится» из действий, предпринятых игроком, и их поведение изменяется соответственно. В то время, как эти решения взяты из ограниченного множества возможных решений, это действительно часто даёт желаемую иллюзию интеллекта по другую сторону экрана.
Например, в Final Fantasy XV есть мета ИИ, который постоянно анализирует ситуацию и управляет NPC. Если игрок попал в передрягу, то именно мета ИИ вызовет ему на помощь союзника
На земле, в воде и по воздуху — как ИИ передвигается в пространстве
Действия ИИ напрямую связаны с его задачей: это может быть удар в ближнем бою, занятие более выгодной позиции для стрельбы, помощь союзнику. Независимо от задачи агент должен добраться до места выполнения действия — для этого ему нужна информация об окружающей среде.
Обычно такие данные содержатся в навигационной сетке (NavMesh) — это особая карта, на которой обозначено, где NPC могут передвигаться.
В Horizon Zero Dawn есть сразу шесть навигационных сеток: четыре для существ разного размера, одна для тех, кто плавает, одна, чтобы игрок мог корректно оседлать существо
Поверх навигационной сетки может располагаться система узлов, которая применяется для того, чтобы NPC корректно выполняли сценарии поведения. К примеру, в Assassin’s Creed Origins у всех NPC есть свой распорядок дня, который они соблюдают даже без участия игрока. Чтобы персонажи следовали сценарию и не застревали в окружении, разработчики сделали специальную сеть узлов — точки на плоскости, где NPC выполняют свою персональную задачу. Описанный метод подходит для заранее предопределённых сценариев. NPC словно перемещаются по рельсам от одной точки к другой.
Зелёным обозначена навигационная сетка, а поверх неё находится система узлов. Жёлтая стрелка указывает на ошибку — кто-то поставил на узел игровой объект, чем перекрыл NavMesh
В ситуациях, в которых нужно реагировать на действия игрока, используется другой подход. В Just Cause 3 существует система, выбирающая приоритетные позиции, на которых NPC сможет эффективнее всего выполнить свою задачу. Выбор той или иной позиции зависит от конкретных критериев: дальности от цели, наличия препятствий между персонажем и его целью, удалённостью от союзников и так далее.
Похожая система есть и в Final Fantasy XV: когда NPC хочет применить способность, он оценивает окружение вокруг своей цели, чтобы найти наиболее выгодную позицию. Сначала ИИ ищет цель, потом выстраивает сетку из точек вокруг цели, отсеивает позиции, которые не подходят из-за особенностей ландшафта или удалённости от цели, а из оставшихся выбирает самую высокую точку.
Всё это применимо только к ИИ, которые передвигаются по горизонтальным плоскостям. А в Horizon Zero Dawn, например, есть ещё и летающие противники, для которых не работают стандартные навигационные сетки. Чтобы исправить это, разработчики использовали технологию MIP Mapping, которая позволяет быстро менять детализацию карт высот.
Для расчёта траектории в полёте применяется один из самых популярных алгоритмов поиска пути — А*. Этот алгоритм позволяет найти оптимальный маршрут до цели — он считает «стоимость» каждого варианта пути, а потом сравнивает их между собой. В результате ИИ использует самую «дешёвую» траекторию.
Стартап под названием Gosu.ai — тренировочная платформа и голосовой ассистент для игроков в соревновательные игры. Алгоритм анализирует, что происходит в игре, и дает подсказки, как победить: куда пойти, какой инвентарь купить и так далее. Эта технология помогает геймерам научиться оценивать свой вклад в игру и оптимизировать свои действия.
Как игровой ИИ получает информацию
Получение информации происходит примерно так же, как и в реальном мире — у ИИ есть специальные сенсоры, при помощи которых он исследует окружение и следит за происходящим. Сенсоры бывают совершенно разными. Это может быть традиционный конус зрения, «уши», которые улавливают громкие звуки, или даже обонятельные рецепторы. Конечно, такие сенсоры — всего лишь имитация реальных органов чувств, которая позволяет сделать игровые ситуации более правдоподобными и интересными.
В Tom Clancy’s Splinter Cell: Blacklist вражеские собаки умеют выслеживать героя по запаху. Это вынуждает игрока постоянно менять укрытие и не засиживаться на одном месте.
Наличие и реализация сенсоров зависит от геймплея. Во многих активных шутерах не нужны комплексные рецепторы — достаточно конуса зрения, чтобы реагировать на появление игрока. А в стелс-экшенах весь геймплей основан на том, чтобы прятаться от противников, поэтому виртуальные органы чувств устроены сложнее.
В серии Serious Sam большинство врагов просто бездумно бегут на игрока, когда он выходит на поле боя.
Виртуальные рецепторы устроены по-разному. В Metal Gear Solid у противников совсем простой конус зрения, отсутствует периферийное зрение, поэтому они видят только то, что происходит прямо перед ними.
Конус зрения в Metal Gear Solid
В Shadow Tactics: Blades of the Shogun тоже используется конус, но он сложнее. Конус поделён на зоны видимости, которые зависят от особенностей ландшафта. Если игрок попадёт в однородную зелёную зону, то его почти сразу увидят. В полосатой зоне видимость затруднена, поэтому игрок будет незаметен, если будет двигаться, пригнувшись. А в зоне, покрытой точками, герой полностью скрыт.
Когда противник замечает игрока, конус зрения постепенно меняет цвет на жёлтый. Когда он заполнится, враг поднимет тревогу.
В Tom Clancy’s Splinter Cell: Blacklist визуальный сенсор противников комплексный. У врагов есть основная зона видимости в форме вытянутого шестиугольника. Здесь моб видит лучше всего, поэтому в это пространство вообще лучше не заходить. Есть и более крупный шестиугольник, который имитирует периферийное зрение — там противник видит хуже. В такую же зону входят удалённые участки, которые недостаточно хорошо просматриваются.
Но интереснее всего, что сзади противника тоже есть зоны, в которых он может заметить игрока. Эти зоны имитируют ощущение, что кто-то стоит за спиной, так что у игрока не получится долго красться вплотную к врагу.
Как ИИ принимает решение
Когда ИИ получил информацию, он начинает «обдумывать» свои действия, анализируя обстановку. Обычно в этом участвует сразу несколько систем ИИ, отвечающих за разные вещи.
В Gears Tactics у ИИ противников всегда есть глобальная цель. Групповой ИИ раздаёт каждому мобу задание, которое помогает достигать общей цели. А NPC сами «решают», каким образом выполнить задачу.
Часто разработчики добавляют подобие коллективного интеллекта, который следит за тем, чтобы действия отдельных агентов не противоречили и не мешали друг другу. При этом сами мобы зачастую даже не знают о существовании своих союзников — эта информация им не нужна, потому что за координирование действий отвечает ИИ более высокого уровня.
В Horizon Zero Dawn робозвери умеют объединяться в стада, а их поведением управляет групповой агент. У каждой машины есть своя роль: патрулирование, атака, поиск ресурсов.
Существуют системы искусственного интеллекта, которые выполняют роль режиссёра. Они следят за тем, чтобы в игре соблюдался баланс сложности, а также отвечают за появление интересных и запоминающихся ситуаций.
Например, в Final Fantasy XV есть мета ИИ, который постоянно анализирует ситуацию и управляет NPC. Если игрок попал в передрягу, то именно мета ИИ вызовет ему на помощь союзника.
В играх есть несколько подходов, которые чаще всего используются для принятия решения. Один из самых простых и понятных подходов — это rule-based ИИ. В основе лежит список правил и условий, заранее созданный разработчиками. Такой подход можно эффективно использовать для создания простого поведения. Например, «если игрок приближается к курице ближе, чем на три метра, то она начинает от него убегать».
Следующий распространённый способ принятия решений — конечные автоматы. Этот подход позволяет NPC беспроблемно переходить между разными состояниями. Например, есть моб, базовое состояние которого — патрулирование по определённой траектории. Если внезапно появится игрок, NPC перейдёт в новое состояние — начнёт стрелять. Конечные автоматы как раз обеспечивают эти переходы: они принимают информацию с предыдущего состояния и передают в новое.
Такая система применяется в Horizon Zero Dawn. С помощью неё робоживотные могут обмениваться информацией и запрашивать у группового ИИ план действий для решения задачи.
Запах свежих трупов
До сих пор мы обсуждали тихие и спокойные игры. Как насчёт шутеров? В них ИИ должен принимать решения не просто на ходу, а на бегу. И пусть здесь компьютерные противники не растут и не развиваются (продолжительность их жизни чаще всего измеряется секундами), но они должны составлять достойную конкуренцию человеку. Или хотя бы не казаться слишком тупыми.
В ранних шутерах вроде Wolfenstein 3D и Doom с искусственным интеллектом всё было просто: монстры поворачивались в сторону игрока, бежали к нему и стреляли, как только он входит в комнату, — вот и весь алгоритм. В Quake их поведение уже стало достаточно сложным, чтобы игру начали критиковать за плохой ИИ.
Первым же шутером, заслуживающим в этом плане внимания, стал Half-Life. Там были и дружественные персонажи, и сражения, не зависевшие от участия игрока, и прочие нетривиальные вещи. Чтобы сделать мир живым и подвижным, разработчикам из Valve пришлось написать огромное количество скриптов. Например, совсем недавно обнаружилось, что у персонажей и монстров в Half-Life есть обоняние: свежий труп в течение тридцати секунд испускает запах, и если, например, неподалёку бродит буллсквид, то он непременно прибежит полакомиться. Люди же, проходя мимо, заметят, что пахнет не очень.
Враги Мастер Чифа
По-настоящему интересное поведение компьютерных противников появилось в игре Halo: к примеру, когда умирает лидер отряда, его подручные могут смекнуть, что дело плохо, и разбежаться. К тому же они стараются действовать сообща, даже зовут друг друга на помощь.
В Halo 2 социальная жизнь солдат ковенанта стала ещё более сложной благодаря системе, что позволяет противникам вовлекать друг друга в действие. Работает это примерно как в Sims: ИИ одного персонажа опрашивает остальных, не готовы ли они помочь, и те соглашаются, если не заняты. Например, человечек видит проезжающую машину и просит водителя подобрать его. То же касается и диалогов: если два солдата смотрят на что-то одно, они начнут это обсуждать.
Оказалось, что предсказуемость — это очень важно. «Если я подбираюсь к пехотинцу и внезапно на него нападаю, я могу ожидать, что он испугается и убежит. Будет неправильно, если он будет убегать только в половине случаев, — это помешает игроку строить планы. Мы решили, что действия должны быть предсказуемыми, а их последствия — нет. Пехотинец всегда будет убегать, но куда именно он убежит, игрок не знает», — рассказывает Крис Батчер, программист, отвечающий за ИИ в Halo.
Ещё более интересное поведение демонстрирует армия дьявольски хитрых клонированных солдат из F.E.A.R.. Контекстная информация в ИИ врагов позволяет им не просто действовать сообща, но прикрывать друг друга, прятаться за укрытиями вроде столов и книжных шкафов, открывать двери, выбивать окна, и так далее.
Но даже самый замысловатый ИИ в шутерах умён только при хорошо продуманных уровнях. Немалая часть «мозга» противников опять же заложена в окружение: дизайнеры уровней прописывают выгодные для стрельбы места и точки укрытий. Ну и конечно, при тестировании выявляются случаи, когда противник выбирает недосягаемую цель и печально упирается в стену. Вот такой вот интеллект!
Разработчики придумывают всё более красивые методы заставить нас думать, что мы имеем дело с равным противником. В компьютерной графике подобный обман называется «дым и зеркала», и точно так же, как компьютеру не под силу реальные оптика и физика, не может он и воссоздать интеллект человека. Приходится идти на уловки.
Впереди тем не менее всё то же непаханое поле. Да, можно обойтись и простыми скриптами — играть всё равно будет весело, но крутой ИИ полностью меняет игровой процесс. Учитывая последние достижения в области нейросетей, можно ожидать не просто улучшения разума противников в играх, но и появления совершенно новых механик.
Вспомним проект DeepMind, в рамках которого исследователи из Google ставят разные эксперименты с нейросетями, в том числе учат их играть в компьютерные игры. Всего за несколько часов компьютер становится профессионалом по одной из старых игр для Atari.