Как работает искусственный интеллект в видеоиграх

Как работает искусственный интеллект в видеоиграх

Создание игр – целое искусство. Это очень сложный, трудоемкий и кропотливый процесс, над которым работает целая команда специалистов разного профиля: программисты пишут код, дизайнеры рисуют мир и персонажи, сценаристы трудятся над написанием интересной истории. Искусственный интеллект в играх представлен многочисленными NPC, или НИП (не игровые персонажи).

Без хорошо прописанного ИИ игра становится скучной, однообразной и неинтересной. Она не чувствуется по-настоящему живой. Сейчас мы попробуем разобраться, как работает искусственный интеллект в видеоиграх, как ААА-проектам удается показать действительно живой игровой мир.

Симуляция, как иллюзия жизни

С многопользовательскими играми все просто, в них NPC не играют особо важной роли и служат лишь средством достижения определенных целей. Ключевые моменты игры происходят во взаимодействии между самими игроками. Но вот сингловые проекты требуют превосходного ИИ, ведь NPC здесь – единственные, с кем контактирует игрок на протяжении всей игры. И, если все они будут делать одно и то же или просто стоять на месте, геймеру станет скучно, и играть в эту игру он больше не будет. Ярчайший пример симуляции настоящей жизни – недавно вышедший Red Dead Redemption 2, где каждый NPC занят своим делом, что создает для игрока иллюзию реального мира. Наблюдать за жизнью виртуальных людей – действительно впечатляюще. Однако, все то лишь обычный программный код, и ничего сверхъестественного в нем нет.

Как работает искусственный интеллект в видеоиграх

Каждый NPC, как в RDR2, так и в других играх, занимается тем, что прописано у него в коде. У него есть одно или несколько заранее записанных действий, которые он будет выполнять при приближении игрока. Стоит вам зайти за угол, как NPC и весь игровой мир вне вашего поля зрения просто замрут. Некоторые из неигровых персонажей могут разговаривать с игроком какими-то случайными на первый взгляд фразами. Либо же, если вы совершите какое-то определенное действие в игре, у некоторых NPC может активироваться новые фразы, которые будут комментировать это событие. Так и создается иллюзия жизни в игре: программным кодом, if’ами да while'ами.

Вспомните Far Cry 4 или Assassin’s Creed Odyssey, где даже животные постоянно дерутся друг с другом, что выглядит просто невероятно. Лев охотится на более мелких животных, волки стаями забивают оленя, медведи дерутся на смерть между собой. Как же работает вся эта магия?

Да очень просто. Бои между различными NPC без участия игрока существовали в играх еще до столкновений спартанских и афинских солдат в Assassin’s Creed Odyssey. По сути мы имеем две враждующие между собой фракции, и при встрече разных NPC из обеих фракций происходит столкновение. Они будут драться между собой до тех пор, пока представителей враждебной фракции не останется. То же самое происходит между животными. Они случайно бродят по лесным массивам, и, когда пересекаются друг с другом, вступают в бой до смерти.

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

Чем сложнее, тем реалистичнее

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

Как работает искусственный интеллект в видеоиграх

В играх обычно нет более или менее умных NPC. У всех их одинаковый искусственный интеллект, а вот действия и характеристики разные.

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

Чем искусственный интеллект превосходит игрока

Да буквально всем. ИИ может выполнять абсолютно любые действия, которые прописаны для него разработчиками. И действия эти зачастую не совсем честные. Например, все же знают, что такое RTS-стратегии: Warcraft, Starcraft и прочие. Играя против ИИ в таких играх, вы можете заметить, что враги мало того, что быстрее вас строят свои здания и зарабатывают ресурсы, так еще и с легкостью отбивают атаки ваших юнитов. А все потому, что NPC, или боты, играют не совсем честно.

Во-первых, они не собирают ресурсы, а просто получают их буквально из воздуха. То есть у вас ресурсы ограничены, у NPC бесконечны. Так, конечно, не во всех играх, но в большинстве.

Как работает искусственный интеллект в видеоиграх

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

Помимо всего прочего NPC могут автоматически подстраиваться под уровень игрока или наращивать силу с течением времени. Если в начале игры вы легко раскидываете всех направо и налево, то ближе к концу вам нужно будет быть более осторожным. Это также добавляет

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

Искусственный интеллект не совершенен. Это нормально, он ведь искусственный. Да и интеллектом не блещет, как Скайнет. Может, оно и к лучшему. Итак, разрешите представить самые серьезные проблемы искусственного интеллекта в играх:

  • Неограниченный обзор. Снова вспомним Assassin’s Creed и ей подобные стелс-игры. Вас тоже бесит, когда вы ночью двигаетесь на большом расстоянии от враждебного NPC, а он замечает вас буквально за километр только потому, что повернут к вам лицом? Естественно, радиус обзора у NPC обычно ограничен, но от багов или несознательных разработчиков никто не застрахован. А бывает и такое, что вы сидите в каком-либо укрытии, прячетесь, все у вас хорошо, и тут на вас неожиданно начинает бежать армада врагов, потому что у кого-то из них произошла ошибка в коде и он увидел вас через непроходимые заросли.
  • Командная работа. При нормальной реализации это скорее плюс, чем минус. Ведь всегда приятно наблюдать, как NPC разговаривают друг с другом и кооперируются, чтобы вместе победить игрока. Тогда они еще больше кажутся живыми. Но у всех же была подобная ситуация: стелс-миссия, вы крадетесь по локации, и тут вас случайно замечает один NPC. Вы успешно успеваете его убить, но нет, не успеваете. За вами уже выехала целая армия. Что, как? Он ведь даже крикнуть не успел, почему вдруг все узнали, где я? А вот потому что. Спросите у тех, кто создавал захваты фортов в Far Cry 3.
  • Несправедливо сильные. Об этом я уже говорил чуть выше. Даже если вы нереально крутой игрок, и захватили все точки с ресурсами на карте, играя против искусственного интеллекта, у него обязательно вдруг появятся ресурсы, которых точно хватит, чтобы надавать вам лещей.
  • Ограниченность. Каждый NPC в игре ограничен лишь своим программным кодом. И это нормально. Но почему-то среди них попадаются на столько ограниченные персонажи, что я бы не назвал это интеллектом, пусть и искусственным. Например, если за вами следует NPC, и вы идете слишком быстро, он может просто остановится, так как потеряет вас из поля зрения. Даже если вы идете по прямой дороге: десять метров вперед и все, ступор. Или же NPC, который только в кат-сцене разрывал врагов на пополам, в самой игре просто стоит и тычет в них мечом, даже не нанося урона, чтобы всех вокруг вам пришлось убивать самому.
  • Заскриптованность. Да, у каждого NPC свой прописанный скрипт действий, повторяющихся по кругу. Понятно, что они не смогут сами придумать что-либо новое, но, когда ты достаточно долго играешь в одну игру, начинаешь замечать, что мир вокруг тебя на самом деле не живой, а постоянно делающий одно и то же. Каждый по своему сценарию. Фразы и действия когда-нибудь заканчиваются, а игра продолжается. И это становится уже не так весело. Хотя это больше проблема затянутости игры, чем искусственного интеллекта. Играя в одну и ту же Assassin’s Creed Odyssey на протяжении 90 часов, вам начинает казаться, что все вокруг одинаковое, все NPC делают одно и то же, хотя по началу вы были в восторге от того, что с каждым из них можно поговорить о чем-то своем, каждый занимался разными делами.