Игровой ИИ Игровой ИИ — это набор программных приемов, используемых в компьютерных играх для создания иллюзии интеллекта
Игровой ИИ
Игровой ИИ — это набор программных методов, используемых в компьютерных играх для создания иллюзии интеллекта в поведении управляемых компьютером персонажей. Игровой ИИ, помимо традиционных методов искусственного интеллекта, также включает в себя алгоритмы теории управления, робототехники, компьютерной графики и информатики в целом.
Внедрение ИИ сильно влияет на игровой процесс, системные требования и бюджет игры, и разработчики балансируют между этими требованиями, пытаясь сделать интересный и нетребовательный ИИ по низкой цене. Поэтому подход к игровому ИИ серьезно отличается от традиционного подхода ИИ: широко используются разного рода упрощения, обманы и эмуляции. Например: с одной стороны, в шутерах от первого лица присущие роботам безупречное движение и мгновенное прицеливание не оставляют человеку ни единого шанса, поэтому эти способности искусственно снижаются. С другой стороны, ботам приходится устраивать засады, действовать командой и так далее, для этого они используют «костыли» в виде контрольных точек уровней.
Основная задача ИИ не обыграть игрока, а красиво ему отдаться.
Персонажи компьютерных игр, управляемые ИИ, делятся на:
(англ. Non-Player Character — NPC) — как правило, эти ИИ-персонажи дружелюбны или нейтральны по отношению к игроку-человеку; (англ bot) — враждебные игроку ИИ-персонажи, приближающиеся по способностям к игровому персонажу; небольшое количество ботов сражается с игроком в любой момент времени. Ботов сложнее всего программировать. (англ. Mob) — «неразумные» ИИ-персонажи, враждебные игроку. Игроки массово убивают мобов в обмен на очки опыта, артефакты или территорию.
Взгляды
Некоторые программисты игр рассматривают любую технику, используемую для создания иллюзии интеллекта, как часть искусственного интеллекта игры. Однако эта точка зрения противоречива, поскольку включает в себя методы, широко используемые вне движка искусственного интеллекта игры. Например, информация о потенциальных столкновениях в будущем является важным входом для алгоритмов, которые помогают создавать ботов, достаточно умных, чтобы избегать столкновений с объектами. Но эти методы обнаружения столкновений сами по себе являются необходимым и одним из наиболее важных компонентов физического движка. Точно так же результаты прямой видимости (игры) обычно являются важными входными данными для системы прицеливания бота; однако эти данные широко используются для рендеринга в графическом движке. Последний пример — сценарии, которые могут быть полезным инструментом для всех аспектов разработки игр, но часто тесно связаны с управлением поведением NPC.
Пуристы считают, что выражение «искусственный интеллект» в термине «игровой искусственный интеллект» является преувеличением, поскольку игровой ИИ не характеризует интеллект и использует немногие из отраслей академической науки «искусственный интеллект». В то время как «настоящий» ИИ относится к отраслям самообучающихся систем и систем принятия решений, основанных на произвольных входных данных и даже к конечной цели «сильного» ИИ, способного рассуждать, игровой ИИ часто состоит из нескольких практических правил, и эвристики достаточно, чтобы обеспечить игрок с хорошим игровым опытом, чувством и игровым опытом.
Растущее понимание академического ИИ разработчиками игр и растущий интерес академического сообщества к компьютерным играм поднимают вопрос о том, как и в какой степени игровой ИИ отличается от классического ИИ. Однако значительные различия между различными областями применения ИИ означают, что игровой ИИ по-прежнему можно рассматривать как отдельную подветвь ИИ. В частности, важное значение имеет возможность «законно» решать некоторые проблемы ИИ в играх с помощью обмана. Например, вывод положения невидимого объекта из прошлых наблюдений может быть сложной проблемой, когда ИИ применяется к робототехнике, но в компьютерных играх NPC может просто искать положение в игровом графе (сцене). Такой обман может привести к нереалистичному поведению и поэтому не всегда желателен. Но его способность различать ИИ в игре приводит к новым проблемам, например, когда и как использовать обман.
ИИ в играх — это набор алгоритмов, определяющих поведение NPC в разных ситуациях. Игровой ИИ не способен ни к мышлению, ни к творчеству, его действия предопределены разработчиками. Несмотря на то что…
Как игровой ИИ получает информацию
Прием информации происходит примерно так же, как и в реальном мире: у ИИ есть специальные датчики, с помощью которых он исследует окружающую среду и следит за происходящим. Датчики совсем другие. Это может быть традиционный зрительный конус, уши, улавливающие громкие звуки, или даже обонятельные рецепторы. Конечно, такие датчики — это всего лишь имитация настоящих органов чувств, что позволяет сделать игровые ситуации более правдоподобными и интересными.
В 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 визуальный сенсор противников сложен. Враги имеют свой основной вид в виде вытянутого шестиугольника. Это то место, где толпа видит лучше всего, поэтому лучше вообще не заходить в это пространство. Также есть гекс большего размера, имитирующий периферийное зрение — там противник видит хуже. В эту же зону входят отдаленные участки, плохо просматриваемые.
Но самое интересное, что позади врага тоже есть области, которые может заметить игрок. Эти зоны имитируют ощущение того, что кто-то стоит за спиной, поэтому игрок не сможет долго подкрадываться к противнику.
Как ИИ передвигается в пространстве
Действия ИИ напрямую связаны с его задачей: это может быть рукопашная атака, занять более выгодную позицию для стрельбы, помочь союзнику. Независимо от поставленной задачи агент должен добраться до места действия — для этого ему нужна информация об окружающей среде.
Обычно такие данные содержатся в навигационной сетке (NavMesh): это специальная карта, на которой указано, куда могут перемещаться NPC.
В Horizon Zero Dawn сразу шесть навигационных сеток: четыре для существ разного размера, одна для парящих существ, одна для того, чтобы игрок мог как следует оседлать моба.
В верхней части навигационной сетки может быть размещена система узлов, которая используется для обеспечения корректного выполнения NPC сценариев поведения. Например, в Assassin’s Creed Origins у всех NPC есть свой распорядок дня, которому они следуют даже без участия игрока. Чтобы персонажи следовали сценарию и не застревали в окружении, разработчики создали специальную сеть узлов — точек на плоскости, где NPC выполняют свою личную задачу. Описанный метод подходит для предопределенных сценариев. Кажется, что NPC перемещаются по дорожкам от точки к точке.
Навигационная сетка зеленого цвета, а сверху находится система узлов. Желтая стрелка указывает на ошибку: кто-то разместил на узле игровой объект, тем самым заблокировав NavMesh.
В ситуациях, когда необходимо реагировать на действия игрока, используется другой подход. В Just Cause 3 есть система, которая выбирает приоритетные локации, где NPC может выполнить свою задачу более эффективно. Выбор той или иной локации зависит от конкретных критериев: удаленность от цели, наличие препятствий между мобом и его целью, удаленность от союзников и так далее.
NPC будут стараться оставаться в зеленых точках, так как это наиболее выгодные для них позиции.
Похожая система существует и в Final Fantasy XV: когда NPC хочет использовать навык, он оценивает окружающую среду вокруг своей цели, чтобы найти наиболее выгодную позицию. Сначала ИИ ищет цель, затем строит вокруг цели сетку точек, отфильтровывает неподходящие локации из-за особенностей ландшафта или расстояния до цели, а из остальных выбирает самую высокую точку.
Навигационная сетка уже содержит информацию о вертикальном перемещении между уровнями.
Продолжая тему игрового ИИ, которая когда-то поднималась в нашем блоге, поговорим о том, насколько машинное обучение применимо к нему и в какой форме. С их опытом и теми, кто выбрал для него…
Игровой ИИ
Когда дело доходит до применения машинного обучения в игровой индустрии, существует ряд ограничений, из-за которых не всегда возможно использовать этот тип архитектуры. К ним относятся системные требования, особенно относящиеся к ЦП, которые определяют способность компьютера обрабатывать сложные игровые структуры и его пригодность для повествования и игрового процесса в игре.
Таким образом, получается, что во многих играх для реализации сложной системы искусственного интеллекта нет возможности организовать необходимое оборудование, а тем более кластер серверов, который существует, например, для сетей распознавания изображений на Фейсбук. Иногда приходится одновременно запускать несколько ИИ, и не только на компьютерах, но и на мобильных устройствах и других менее производительных платформах. Все это накладывает ограничения на размер и сложность архитектуры машинного обучения, ведь все расчеты по-прежнему должны выполняться с длительностью кадра порядка 1 или 2 миллисекунд. Конечно, можно использовать различные технологии оптимизации и балансировки нагрузки между фреймами, но полностью устранить эти ограничения пока невозможно.
Сложность игры может вызвать серьезные проблемы у ИИ. На самом деле в таких играх, как StarCraft II, игровая механика в разы сложнее, чем в играх Atari. Поэтому не стоит ожидать, что машинное обучение обязательно возьмется за изучение всего состояния игры и сможет взаимодействовать с ней при заданной частоте кадров и при известных системных требованиях. Поскольку игрок часто руководствуется интуицией в начале игры, ИИ должен научиться изначально отрабатывать состояние игры, чтобы было легче продвигаться дальше. Например, в одном из последних API для Starcraft II на картах отображается только та информация, которую разработчики посчитали важной: в одном случае ИИ использовал уменьшенный вид всей территории карты, во втором — как игрок , он мог двигать камеру и поэтому его восприятие ограничивалось информацией на экране.
Визуализация матча ИИ AlphaStar против игрока в StarSraft II: На скриншоте показаны первые необработанные наблюдения, активность нейросети, некоторые ее возможные действия и координаты, а также ожидаемый исход матча
Особенно это касается игр. Часто общепринятые методы решения задач машинного обучения неприменимы к игровому ИИ. Например, обычно ему не нужно побеждать или делать все возможное для победы, как в случае с играми Atari. Чаще всего роль ИИ заключается в том, чтобы сделать игру более привлекательной. Возможно, ему нужно будет сыграть роль и вести себя так, чтобы подсказать характер персонажа, за которого он отвечает. Поэтому игровые ИИ больше привязаны к игровому дизайну и повествованию и должны иметь инструменты, необходимые для манипулирования их поведением для достижения своей цели. Машинное обучение в чистом виде не всегда подходит для этого, а значит, придется искать что-то другое.
Необходимость параллельных подходов
Хотя ИИ, основанный на машинном обучении, развивался медленно и не очень хорошо, более совершенный ИИ и более надежные ИИ противников стали необходимы для других этапов тестирования и разработки. Для их реализации использовалась архитектура Utility, с помощью которой возможно создание специального ИИ для тестирования и контроля качества игры, внутриигровых тестов и балансировки оружия и монстров и создания конкретных лабиринтов и монстров. Однако в процессе разработки Unleash сами создатели оттачивали свои навыки по его преодолению, поэтому решили использовать полученные знания для создания более сложной утилиты ИИ. Так стало понятно, что многие проблемы, возникающие в системах искусственного интеллекта на основе машинного обучения, можно легко решить с помощью систем утилит, которые используют заложенные в них знания, и наоборот.
Например, лучше строить более эффективные лабиринты с помощью Utility AI на основе баз знаний, составленных из результатов внутренних тестов. Вы можете легко описать и запрограммировать алгоритм построения лабиринта и размещения в нем оружия таким образом, чтобы живому игроку было проще защищать башню от конкретных монстров. Но создание армии монстров, основанной на знании вражеской базы, было сложной задачей для таких ИИ, поскольку количество различных условий и комбинаций, которые нужно было учитывать, поражало. При таком типе архитектуры ИИ поиск подходящих наборов монстров занял бы бесконечно много времени. Таким образом, учитывая ограничения, глубокое обучение было бы идеальным решением для этой задачи.
Виртуальные миры в видеоиграх не уступают проработанным кинематографическим вселенным. Николай Дубинин, ведущий YouTube-канала РБК Тренды, понял, как новые технологии улучшают анимацию игры
Может ли нейросеть создать игру
В 2020 году искусственный интеллект GameGAN воссоздал игру Pac-Man с нуля за четыре дня. Microsoft Flight Simulator использует нейронные сети и карты Bing для представления Земли, включая все страны, города и аэропорты. Несмотря на эти достижения, ИИ еще предстоит создавать игры самостоятельно. Но нейронные сети могут освободить сотрудников игровой компании от рутинной работы и сосредоточиться на нетривиальных творческих занятиях.
По словам Вячеслава Уточкина, директора образовательных программ для игровой индустрии Центра развития компетенций в области бизнес-информатики Высшей школы бизнеса НИУ ВШЭ, можно будет полностью отказаться от рутинных задач искусственному интеллекту в ближайшем будущем. Например, нейронные сети улучшают перевод. Это значит, что скоро можно будет нанимать не переводчиков, а только редакторов, которые будут дорабатывать готовый перевод.
В будущем все больше внимания будет уделяться автоматизированному бета-тестированию игр. Однако ручное тестирование сегодня в приоритете, так как зачастую организация процесса с использованием искусственного интеллекта обходится дороже, чем работа специалистов по ручному тестированию. Кроме того, ИИ сможет заменить специалистов техподдержки, работающих по сценарию. Эта тенденция касается не только игровой индустрии — робот, скорее всего, ответит на звонок в аэропорту или банке.
История развития ИИ в играх: эволюция, алгоритмы, хардкор
А что же Left4Dead?
Зомби в этой игре довольно тупые существа. Мы не будем сейчас говорить об этом, а только о глобальном ИИ. Да, есть уровни сложности, но они больше влияют на количество врагов и вашу чувствительность к урону. Система адаптации сложности, называемая Valve «директором», тщательно контролирует ваше «навык», а затем определяет, когда направить на вас орду зомби, призвать Танка или в несколько неудобном положении для вас и вашей команды, поставить ведьму. Так что каждая игра уникальна по-своему. В этом матче ты ковер для сотни жокеев, а в следующем он появился только один раз и только один раз за игру, чуть не изнасиловав твоего товарища по команде. Однако это не спасло проект от гибели, так как даже «режиссер» через какое-то время застревал в печени у каждого игрока.
Хотя это не видеоигра, а скорее приложение, созданное для развлекательных целей, оно почти всегда угадывает вещи или людей, о которых вы думаете, задавая вам определенные вопросы. Те, кто наткнулся на Акинатор, вероятно, хотя бы раз задавались вопросом: «Как, черт возьми, он работает?» Сам Akinator представляет собой базу данных, которую можно представить в виде разветвленной блок-схемы со случайными элементами. Потому что, в зависимости от нашего ответа «да», «нет» или «затрудняюсь ответить», этот восточный парень подводит нас к одному из следующих вопросов, соответствующих условию ответа и блок-схеме. Я написал этот текст спонтанно, поэтому не знаю, насколько хорошо я объяснил, но мне кажется, что это хороший пример на тему искусственного интеллекта.
Когда вы сражаетесь с компьютерным противником, вы часто представляете его намного умнее, чем он есть на самом деле. Однако стоит отметить оплошность, и иллюзия рассеивается.
Враги Мастер Чифа
В Halo появилось очень интересное поведение киберпротивников: например, когда умирает бригадир, его подручные могут понять, что дела плохи, и разбежаться. Кроме того, они стараются действовать сообща, даже призывая друг друга на помощь.
В Halo 2 социальная жизнь солдат Ковенанта еще больше усложняется системой, которая позволяет противникам вступать в бой друг с другом. Это работает как в The Sims: ИИ персонажа спрашивает других, готовы ли они помочь, и они соглашаются, если не заняты. Например, мужчина видит проезжающую машину и просит водителя подобрать его. То же самое и с диалогом: если два солдата что-то смотрят, они начнут об этом говорить.
Оказалось, что предсказуемость очень важна. «Если я подойду к пехотинцу и внезапно нападу на него, я могу ожидать, что он испугается и убежит. Было бы неправильно, если бы он убегал только в половине случаев — это мешало бы игроку строить планы. Мы решили, что действия должны быть предсказуемы, а их последствия — нет. Пехотинец всегда будет бежать, но куда именно он побежит, игрок не знает», — говорит Крис Батчер, программист искусственного интеллекта в Halo.
Еще более интересное поведение демонстрирует армия дьявольски хитрых клонированных солдат FEAR. Контекстная информация во вражеском ИИ позволяет им не только действовать вместе, но и прикрывать друг друга, прятаться за укрытиями вроде столов и книжных шкафов, открывать двери, разбивать окна и так далее.
Но даже самый изощренный ИИ в шутерах умен только тогда, когда уровни хорошо продуманы. Немалая часть «мозга» противников вновь встраивается в окружение: дизайнеры уровней прописывают выгодные для выстрела позиции и точки укрытия. И, конечно же, в ходе испытаний выявляются случаи, когда противник выбирает недосягаемую цель и уныло бьется об стену. Вот это интеллект!
Разработчики придумывают все более красивые способы заставить нас думать, что мы имеем дело с равным противником. В компьютерной графике такой обман называется «дым и зеркала», и так же, как компьютеру не под силу реальная оптика и физика, он не может воссоздать человеческий интеллект. Вы должны пойти на уловки.
Впереди, однако, такое же непаханое поле. Да, можно обойтись простыми скриптами — играть все равно будет весело, но обалденный ИИ полностью меняет геймплей. Учитывая последние достижения в области нейронных сетей, можно ожидать не только улучшения сознания противников в играх, но и появления совершенно новых механик.
Рассмотрим проект DeepMind, в рамках которого исследователи Google проводят различные эксперименты с нейронными сетями, в том числе обучают их играть в компьютерные игры. Через несколько часов компьютер становится профессионалом в одной из старых игр Atari.
Источники
- https://dic.academic.ru/dic.nsf/ruwiki/936246
- https://habr.com/ru/company/netologyru/blog/598489/
- https://habr.com/ru/company/pixonic/blog/473932/
- https://trends.rbc.ru/trends/industry/6197a0599a79473c84decc32
- https://stopgame.ru/blogs/topic/93248
- https://www.igromania.ru/article/29712/Luchshiy_iskusstvennyy_intellekt_v_igrah_ili_Pochemu_II-yeto_poddelka.html