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

Обновлено: 05.07.2024

Заглядываем под капот искусственных интеллектов, отвечающих за управление автомобилями.

В начале февраля разработчики серии Gran Turismo представили Sophy — искусственный интеллект, который должен вывести гоночные игры на совершенно иной уровень. По заверениям разработчиков, новый алгоритм способен обрабатывать реальную физику движения машины, обходить воздушные потоки и соблюдать этикет соревнований.

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

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

Создание искусственного интеллекта для гоночной игры — задача комплексная. На самом базовом уровне машины, управляемые компьютером, должны хотя бы просто уметь двигаться по трассе. Достигается это разными способами. Одним из самых ранних приёмов, который использовался ещё до того, как центральные процессоры смогли проводить сложные вычисления, было использование заранее проведённых по трассе линий, по которым двигались машины, управляемые ИИ. Их называют сплайнами (spline).

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

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

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

Ещё один старый приём — создание путевых точек (waypoints). Это набор координат в пространстве на трассе. Агент ИИ перебирает их, направляя машину, пока не пройдёт их все.

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

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

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

Допустим, нужно ли им, чтобы машины по трассе двигались на одной высоте или на дороге будут возвышенности и низменности? Надо ли на трассе выполнять разные задачи, вроде эффектного выполнения автомобильных трюков? Будет ли гонка проходить в условиях спортивной трассы, предназначенной только для машин, участвующих в заезде, или на ней найдётся место и автомобильному траффику? Каждый раз к решению этих задач разработчики ИИ подходят по разному. Разберём несколько примеров.

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

Самый популярный приём, который помогает избежать подобной ситуации — rubber band (резиновая лента). Он применяется в том или ином виде практически в любой гоночной игре, как бы привязывая резиновой лентой ИИ-гонщиков к машине игрока.

Если сильно упростить, при rubber band честность заезда жертвуется в угоду зрелищности. Машины, управляемые ИИ, не стараются вас победить, а скорее отыгрывают разные роли, чтобы вам было интереснее.

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

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

Mario Kart: Double Dash!, вышедшая в 2003-м на GameCube — одна из самых известных игр, использовавших приём rubber band. Начиная с этой части, гонщики в Mario Kact, которые находились в хвосте, чаще получали синий самонаводящийся черепаший панцирь, которым они могли сбить игрока-лидера.

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

После Mario Cart этот приём стал чаще применяться и в других играх. Но в хардкорных симуляторах, где нет пауэрапов, его реализуют иначе — за счёт преимуществ, получаемых искусственным интеллектом.

Так, серия Need for Speed использовала систему Catch-up, которая представляет собой разновидность rubber band. Её суть в том, что машины, управляемые компьютером, едут тем быстрее, чем дальше вы от них уехали. И наоборот, их скорость будет искусственно занижаться, если вы вдруг сильно отстали. В итоге как бы вы ни старались оторваться от соперников, они всё равно вас догонят. Например, эта система была реализована в Need for Speed 2015 года. В ней можно было столкнуться с абсурдной ситуацией, когда маленький Volskwagen Golf boost вдруг догонял Lamborghini.

У этой несправедливости была и другая сторона — машины, управляемые ИИ, вдруг резко замедлялись перед финишем, чтобы у пользователя всё же был шанс выиграть. Игрокам это не сильно понравилась и разработчикам из Ghost Games пришлось выпустить апдейт, который менял поведение искусственного интеллекта на трассе.

Своим путём при реализации rubber band пошли разработчики Pure — аркадного симулятора гонок на квадроциклах, вышедшего в 2008 году. При создании ИИ программисты намеренно использовали этот принцип, чтобы рядом с игроком всегда были другие гонщики. Но саму систему они немного усложнили в связи с тем, что в Pure надо не только приехать к финишу самым первым, но и набрать как можно больше очков, выполняя трюки.

В Pure поведение гонщиков, управляемых компьютером, зависело от параметров навыков, присвоенных каждому из них.

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

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

Когда начиналась гонка, искусственный интеллект разыгрывал целый спектакль. Сначала все резво устремлялись вперёд, а затем гонщики из группы отстающих начинали стремиться к точке в 0 метров от игрока. То есть в самом начале они старались держаться рядом с ним. Ближе к концу гонки они уже стремились к точке в -500 метров позади игрока. То есть они намеренно оказывались далеко позади — это не пользователь их побеждал, это они ему поддавались.

Но реализация такой механики требовала ответа на вопрос — как заставить машину, из которой игрок неожиданно выскочил, продолжать ехать сквозь городской трафик так, будто он по-прежнему в ней, чтобы она не врезалась в другие машины, не останавливалась и вела себя как ни в чём не бывало?

Для реализации этой задачи разработчики создали два разных типа искусственного интеллекта. Первый отвечал за поведение трафика на дороге. Второй был более сложной системой искусственного интеллекта, которую разработчики назвали Active Life.

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

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

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

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

Gran Turismo Sophy создана на принципах машинного обучения. Но в этом плане она вовсе не новатор. Ранее разработчики гоночных игр уже применяли эту технологию или экспериментировали с её внедрением. Один из самых удачных и ярких примеров — система Drivatar в серии игр Forza. Она используется в ней с 2005 года и считается одной из самых долгоживущих систем машинного обучения в игровой индустрии.

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

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

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

На примере игры Forza это выглядит так. Зная, как игрок проходит определённый поворот, на каждом кругу Drivatar предлагает несколько вариантов угла, под которым машина будет проходить поворот, а также несколько вариантов скорости, на которой она должна ехать. Затем Drivatar из этих вариантов выбирает тот, который ближе всего к тому, что сделал игрок.

Чтобы лучше понять, как игрок ведёт себя на трассе, Drivatar разбивает трек на небольшие фрагменты и изучает поведение пользователя на каждом из них. Например, трассу Road Atlanta он разбивает на 27 фрагментов и смотрит, в какой позиции машина находится на дороге, на какой скорости едет, а также насколько последовательно игрок действует. При этом ИИ бесполезно учить плохому — он просто не учитывает такие попытки.

Также Drivatar подразумевает, что игрок с каждым разом ездит всё лучше и лучше, поэтому приоритет при воспроизведении его поведения отдаётся более новым данным.

В играх Forza Motorsport с первой по четвёртую части использовалась первая версия Drivatar, которая существовала только на консоли игрока и получала знания лишь от него.

Начиная с Forza Motorsport 5, использовалась уже вторая версия системы Drivatar. Теперь ИИ жил не на одной консоли, а обитал в облаке в Xbox Network. А значит, у игрока был доступ не только к своему натренированному Drivatar, но и к тем, которые тренировались у других игроков. Так что можно было покататься с ИИ, который научился ездить у вашего друга, например. При этом у Drivatar есть интересная особенность. Если ваш друг постоянно таранит машины, то наученный им ИИ, будет и вас таранить на трассе, так как вы находитесь в списке его друзей в Xbox. А вот игрока не из списка друзей она таранить не будет.

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

И тут такие самовозы..

Блин, такой интересный материал, но люди не ставят плюсики, не пишут комменты, эх…
Автору большое спасибо. Очень познавательно

Вот тоже негодую в адрес форзовских драйватаров. В FH5 если обогнать всех драйватаров, они просто начинают ехать стройной колонной, без обгонов, атак и маневров, при том что машины хоть и в одном классе производительности, но все же не одинаковые. А с повышением уровня сложности навыки всех ботов не растут, просто появляется 1, 2 или 3 драйватара, которые едут как черти быстро, не допуская ошибок, и догнать их зачастую просто невозможно.
Допускаю, что проблема в том, с кого драйватары считываются, потому что подавляющее количество ботов в гонке оказывается первого уровня, т.е. даже при работающей нейросети считывать попросту нечего. Но в таком случае нужно было учесть этот момент и делать выборку только среди активно играющих. А этого явно нет, как и нормального перемешивания образов ботов, потому что запросто можно увидеть на стриме какого-нибудь особо яростного драйватара, а потом самому в игре из гонки к гонке видеть его уже у себя в оппонентах.
Подводя итог - задумка драйватаров хорошая, но она не работает.

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

На основе длительной игры в FH4 и FH5 заметил интересную особенность. В обе начинал играть на релизе. Первоначально в каждой игре двайватаров было очень сложно догонять: на уровне сложности "Непобедимый" действительно было практически невозможно выиграть. Однако, спустя несколько месяцев, выигрывать становилось проще, как будто драйватары со временем замедлялись и в итоге фиксировались на каком-то уровне.
PS: это чисто субъективное наблюдение, не претендую на истинность. Скорее всего, какую-то роль и изучение мной трасс сыграло.

ИИ в играх — это набор алгоритмов, которые диктуют поведение NPC в разных ситуациях. Игровой ИИ неспособен на мышление или творчество, его действия предопределены разработчиками. Несмотря на такие ограничения, грамотно созданный ИИ подстраивается под ситуацию и меняет поведение в зависимости от контекста.

ИИ нужен для имитации разумности NPC, при этом его задача не в том, чтобы обыграть пользователя, а в том, чтобы развлечь его. В современных играх используются разные подходы для создания ИИ. В основе лежит общий принцип: получение информации → анализ → действие. В статье — самые популярные методы и примеры использования ИИ в играх.

Зачем NPC разум: искусственный интеллект в играх

Владимир Семыкин

Энтузиаст геймдизайна, автор Нетологии

Конус зрения, уши и обонятельные рецепторы — как игровой ИИ получает информацию

Зачем NPC разум: искусственный интеллект в играх

В Tom Clancy’s Splinter Cell: Blacklist вражеские собаки умеют выслеживать героя по запаху. Это вынуждает игрока постоянно менять укрытие и не засиживаться на одном месте

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

Зачем NPC разум: искусственный интеллект в играх

Виртуальные рецепторы устроены по-разному. В Metal Gear Solid у противников совсем простой конус зрения, отсутствует периферийное зрение, поэтому они видят только то, что происходит прямо перед ними.

Зачем NPC разум: искусственный интеллект в играх

В Shadow Tactics: Blades of the Shogun тоже используется конус, но он сложнее. Конус поделён на зоны видимости, которые зависят от особенностей ландшафта. Если игрок попадёт в однородную зелёную зону, то его почти сразу увидят. В полосатой зоне видимость затруднена, поэтому игрок будет незаметен, если будет двигаться пригнувшись. А в зоне, покрытой точками, герой полностью скрыт.

Зачем NPC разум: искусственный интеллект в играх

Когда противник замечает игрока, конус зрения постепенно меняет цвет на жёлтый. Когда он заполнится, враг поднимет тревогу

В Tom Clancy’s Splinter Cell: Blacklist визуальный сенсор противников комплексный. У врагов есть основная зона видимости в форме вытянутого шестиугольника. Здесь персонаж видит лучше всего, поэтому в это пространство вообще лучше не заходить. Есть и более крупный шестиугольник, который имитирует периферийное зрение — там противник видит хуже. В такую же зону входят удалённые участки, которые недостаточно хорошо просматриваются.

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

Зачем NPC разум: искусственный интеллект в играх

Особенность противников в Splinter Cell: Blacklist в том, что они могут видеть игрока в частичном укрытии. Если несколько частей тела героя выглядывают из-за препятствия, то враг замечает его. Чтобы реализовать эту механику, разработчики использовали технологию рейкастинга — из глаз врага кастуются лучи, и если они пересекают несколько частей тела героя, то противник поднимает тревогу.

Зачем NPC разум: искусственный интеллект в играх

Зачем NPC разум: искусственный интеллект в играх

Профессия

Геймдизайнер

Узнать больше

  • Освоите профессию геймдизайнера с нуля: от идеи до балансировки и маркетинга
  • Разработаете прототип собственной игры на движке Unreal Engine
  • Составите полный комплект проектной документации для запуска игры

Анализ, коллективный интеллект и навыки режиссёра — что помогает ИИ принимать решения

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

Зачем NPC разум: искусственный интеллект в играх

В Gears Tactics у ИИ противников всегда есть глобальная цель. Групповой ИИ раздаёт каждому задание, которое помогает достигать общей цели. А NPC сами решают, каким образом выполнить задачу

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

Зачем NPC разум: искусственный интеллект в играх

В Horizon Zero Dawn робозвери умеют объединяться в стада, а их поведением управляет групповой агент. У каждой машины есть своя роль: патрулирование, атака, поиск ресурсов

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

Зачем NPC разум: искусственный интеллект в играх

Например, в Final Fantasy XV есть мета ИИ, который постоянно анализирует ситуацию и управляет NPC. Если игрок попал в передрягу, то именно мета ИИ вызовет ему на помощь союзника

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

Зачем NPC разум: искусственный интеллект в играх

Преимущество этого подхода в том, что персонаж всегда будет находиться в каком-то состоянии и не зависнет где-то между ними. Так как разработчик должен прописать все переходы, он точно знает, в каких состояниях может находиться игровой объект. Недостаток метода в том, что с увеличением количества механик значительно разрастается и система конечных автоматов. Это увеличивает риск появления багов, а также может снизить скорость операций.

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

Зачем NPC разум: искусственный интеллект в играх

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

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

Зачем NPC разум: искусственный интеллект в играх

В Gears Tactics у каждого типа юнитов есть собственное дерево поведения, в котором учтены все индивидуальные особенности и способности NPC

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

Зачем NPC разум: искусственный интеллект в играх

Есть и менее популярные решения, которые не смогли полноценно закрепиться в индустрии. В F.E.A.R. использовалась система целеориентированного планирования действий (Goal-Oriented Action Planning, GOAP) — для всех NPC она создаёт план действий, основываясь на информации об игровом мире. Если персонажу нужно перейти в другую комнату, то система сперва проверяет, какое расстояние нужно пройти до двери, есть ли на пути препятствия, открыта ли дверь и так далее. Когда у системы есть вся информация об окружении, она составляет план, а NPC просто проигрывает последовательность анимаций.

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

Зачем NPC разум: искусственный интеллект в играх

F.E.A.R. запоминается достаточно умными противниками, которые умеют работать сообща. На самом деле они даже не знают о существовании друг друга — просто ИИ грамотно координирует их действия

На смену GOAP постепенно пришла система ИИ под названием иерархический планировщик сети задач (HTN). Эта сеть создаёт планы, которые состоят из макросов действий, в которых уже заложена определённая последовательность.

Такая система применяется в Horizon Zero Dawn. С помощью неё робоживотные могут обмениваться информацией и запрашивать у группового ИИ план действий для решения задачи.

Зачем NPC разум: искусственный интеллект в играх

У каждого противника в Horizon Zero Dawn есть свой паспорт, который используется при идентификации и добавлении в новую стаю. Когда персонаж попадает в неё, ему присваивается роль внутри группового агента

На земле, в воде и по воздуху — как ИИ передвигается в пространстве

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

Обычно такие данные содержатся в навигационной сетке (NavMesh) — это особая карта, на которой обозначено, где NPC могут передвигаться.

Зачем NPC разум: искусственный интеллект в играх

В Horizon Zero Dawn есть сразу шесть навигационных сеток: четыре для существ разного размера, одна для тех, кто плавает, одна, чтобы игрок мог корректно оседлать существо

Поверх навигационной сетки может располагаться система узлов, которая применяется для того, чтобы NPC корректно выполняли сценарии поведения. К примеру, в Assassin’s Creed Origins у всех NPC есть свой распорядок дня, который они соблюдают даже без участия игрока. Чтобы персонажи следовали сценарию и не застревали в окружении, разработчики сделали специальную сеть узлов — точки на плоскости, где NPC выполняют свою персональную задачу. Описанный метод подходит для заранее предопределённых сценариев. NPC словно перемещаются по рельсам от одной точки к другой.

Зачем NPC разум: искусственный интеллект в играх

Зелёным обозначена навигационная сетка, а поверх неё находится система узлов. Жёлтая стрелка указывает на ошибку — кто-то поставил на узел игровой объект, чем перекрыл NavMesh

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

Зачем NPC разум: искусственный интеллект в играх

Похожая система есть и в Final Fantasy XV: когда NPC хочет применить способность, он оценивает окружение вокруг своей цели, чтобы найти наиболее выгодную позицию. Сначала ИИ ищет цель, потом выстраивает сетку из точек вокруг цели, отсеивает позиции, которые не подходят из-за особенностей ландшафта или удалённости от цели, а из оставшихся выбирает самую высокую точку.

Зачем NPC разум: искусственный интеллект в играх

Зачем NPC разум: искусственный интеллект в играх

A* высчитывает траекторию, основываясь на самой высокой точке локальной местности. Именно из-за этого воздушные противники в Horizon Zero Dawn не могут залетать под мосты или скалы

За 3 года работы над одним из проектов накопилось очень много информации на стыке Edtech, GameDev и AI, хочется увязать всю информацию в единое целое, и это первая статья, надеюсь, из цикла публикаций. Узкоспециализированных статей будет всего несколько, остальные же публикации будут посвещены популяризации взаимопроникновения искусственного интеллекта, игровой индустрии и образовательных платформ, ведь именно искуственный интеллект способен сделать игровые технологии доступными для массового образования, чего я лично очень и очень жду.

Искусственный интеллект по праву является флагманом развития целого ряда отраслей: автоматизация промышленных процессов, облачные решения, медицина, даже уже представлены крайне интересные решения в области сельского хозяйства. Принято считать, что драйверами роста ИИ являются автоматизация бизнес-процессов и решения для интернета вещей. Так, к примеру, аналитик IDC Customer Insights & Analysis Petr Vojtisek считает, что искусственный интеллект способен сыграть важную роль для компаний в реагировании на кризис с COVID-19, а рынок AI в IoT, согласно исследованию ReportCrux Market Research, к 2027 году превысит $27 млрд. Но в этой статье мы рассмотрим, как ИИ влияет на развитие отрасли компьютерных игр, ведь есть все основания предполагать, что именно GameDev – новый драйвер развития технологий искусственного интеллекта.

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

А что же искусственный интеллект может дать существенно нового любителям видеоигр? Во-первых, внедрение машинного обучения позволит реализовать в ряде игр такую долгожданную возможность, как вариация сюжетных линий. Сейчас большинство игр имеют определенный авторами сюжет, вокруг которого выстроен игровой мир. Машинное обучение, которое позволяет моделировать не заданный алгоритм (ответ на определенное действие), а формировать новый ответ системы в зависимости от ряда прочих факторов. Так, выбирая те или иные действия, а также в зависимости от прочих параметров игрового мира геймер сможет выбирать, в какую сторону искривится сюжетная линия.

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

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

Важно отметить существенную роль GameDev в развитии технологий искусственного интеллекта в целом. Механизмы рыночной экономики определяют пропорциональное распределение средств, инвестируемых в те или иные проекты исходя из их доходности, которая уже, в свою очередь, определяется уровнем спроса. Рынок компьютерных игр в мире, по данным портала Global Games Market Report оценивается на 2019 год более $150 млрд. B Российский рынок уже перешагнул отметку в $2 млрд.

К тому же важно понимать, что сфера игр одна из наиболее восприимчивых к новым технологиям и решениям. Таким образом, определенная (и далеко не малая!) доля от почти 2 миллиардов долларов только на российском рынке будет инвестирована в ИИ-инструменты, которые позволят сделать игры еще интереснее. Получается, что применение ИИ-алгоритмов в сфере видеоигр позволит привлечь существенный объем дополнительных инвестиций, что, безусловно, позитивно скажется на отрасли в целом и позволит ускорить ее дальнейшее развитие.

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

Будем дальше наблюдать, за развитием AI-GameDev интеграции. Убедимся, насколько наши прогнозы оказались верными.

Искусственный интеллект в компьютерных играх

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

В данном обзоре мы собрали информацию о специфике применения средств искусственного интеллекта в компьютерных играх. Рассмотрены особенности разработки подобных систем и примеры их практического использования.

Специфика игрового искусственного интеллекта

В настоящий момент, рынок компьютерных игр демонстрирует стабильный и уверенный рост. По данным исследовательского центра Newzoo, уже в этом году объем рынка достигнет $99.6 млрд., что на 8.5% превышает показатели прошлого года. К 2019 году ожидается, что эта цифра приблизится к $120 млрд.

1.jpg

По данным ассоциации развлекательного программного обеспечения (ESA), средний опыт современных геймеров составляет около 13 лет. Все они уже давно привыкли к тому, что год от года компьютерные игры становятся все более сложными, интересными и увлекательными. Чтобы удовлетворить такие потребности пользователей, разработчикам необходимо постоянно развивать имеющиеся системы игрового искусственного интеллекта.

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

Основные принципы разработки игрового искусственного интеллекта

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

Система на основе правил

Одной из самых простых форм игрового искусственного интеллекта является система на основе правил, в которой поведение игровых агентов определяется заранее заданными алгоритмами. Такие системы наиболее далеки от традиционного понятия искусственного интеллекта. Правила могут как задаваться жестко (например, игровой агент всегда поворачивает в одну сторону), так и основываясь на анализе текущего состояния объектов (например, игровой агент всегда движется за игроком).

Конечные автоматы

Конченые автоматы применяются для создания игровых агентов, которые в течение игры могут обладать различным (конечным) числом состояний. В качестве таких состояний можно задать физические условия, в которых находится объект, его эмоции и т.д. Данные состояния в зависимости от условий игры могут меняться. Примеры возможных состояний игрового агента представлены на рисунке ниже.

2.jpg

Стоит отметить, что под эмоциональным состоянием игрового агента понимается его алгоритм поведения в той или иной ситуации. Эмоциональное состояние не имеет никого отношения к эмоциям искусственного интеллекта.

Адаптивный искусственный интеллект

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

Адаптивный искусственный интеллект должен обладать достаточно важным свойством – уметь предсказывать следующий ход противника. Для этого могут применяться различные методы (выявление закономерности прошлых ходов игрока, использование случайных догадок и т.д.)

Восприятие окружающего мира игровым искусственным интеллектом

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

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

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

Взаимодействие с временными объектами

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

Навигация искусственного интеллекта

Практическое применение. Военные тренажеры

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

В последние годы используемые алгоритмы для игрового искусственного интеллекта продолжают активно развиваться. Этому, в частности, способствует увеличение области их применения. Помимо компьютерных игр, игровой искусственный интеллект активно применяется для создания узкоспециализированных военных симуляторов. Военные симуляторы уже давно стали частью системы тренировок Вооруженных сил некоторых стран (США, Великобритания). При разработке подобных систем особую значимость приобретает правдоподобное поведение виртуальных солдат на поле боя.

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

В 2015 году в прессу просочилась информация о том, что в России создали самый большой и самый высокотехнологичный полигон - 333-й Центр боевой подготовки, в котором активно применяются военные симуляторы. Был момент, когда этот масштабный проект находился под угрозой срыва. Немецкий концерн, занимающийся созданием данного полигона, в одностороннем порядке разорвал контракт из-за санкционной политики западных властей. Обратившись в суд, Министерство обороны все-таки продолжило проект, проучив закончить все работы отечественным инженерам.

В настоящий момент на обучение в 333-й Центр боевой подготовки приезжают солдаты и офицеры со все России. Пройдя курс обучения продолжительностью 7 месяцев, все они возвращаются в свои части уже готовыми специалистами. За год на полигоне могут пройти обучение около 30 тысяч военных.

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

Читайте также: