Как и зачем внедрять AI в соревновательные онлайн-игры

Александр Пиндык, Team Lead/Senior Game AI Developer киевской студии Wargaming в своей статье рассказывает, как можно использовать искусственный интеллект в тех играх, где игрок играет не против среды, а против других игроков-людей.

Уже несколько лет мы в команде разрабатываем AI (artificial intelligence) для самой популярной игры в Украине — World of Tanks. Хочу рассказать о том, для чего сегодня внедряют искусственный интеллект в соревновательные и кооперативные игры, и как команды разработки таких игр используют AI.

Спойлер: не только в качестве противников для игроков, но и как полезный инструмент разработки.

Давайте для начала разберемся, что такое соревновательные и кооперативные игры. Это — игры, основной игровой цикл которых, основан на формате PVP (Player versus Player и/или Team versus Team). Зачастую на начальном этапе в них даже не предполагалось наличие ботов, управляемых искусственным интеллектом, например: World of Tanks, PlayerUnknown’s Battlegrounds Mobile, Fortnite, Overwatch.

В других проектах, например, Counter-Strike: Global Offensive, StarCraft, Escape from Tarkov ботов добавляют только в одном из режимов. Но все эти игры объединяет одно — главным для них является противостояние игроков друг с другом. Сегодня такие проекты присутствуют как на больших платформах вроде PC, Xbox, PlayStation так и на мобильных Nintendo Switch, iOS, Android.

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

Но если основным элементом этих игр является противостояние с другими игроками, тогда зачем в этих играх искусственный интеллект? Причин много, но я бы сосредоточился на основных. Это:

  • помощь игрокам;
  • разнообразие с помощью PVE режимов и механик;
  • инструмент для разработки игры.

Помощь игрокам

Зачастую порог вхождения в PVP игры невысок, за исключением проектов, рассчитанных на хардкорных игроков (привет, Escape from Tarkov). Но вот уровень навыка, при котором достигается хорошая результативность, достаточно высокий. С ростом результативности происходит получение эмоций, которые заставляют игрока возвращаться в проект. Это принцип easy to learn hard to master, в вольном переводе это звучит как: «легко освоить базовый принцип, но сложно добиться мастерства».

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

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

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

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

Например, в таких играх, как World of Tanks и Hearthstone у новичков автоматически включается сценарий обучения. Игрок проходит несколько этапов, где его знакомят с базовыми механиками на реальных примерах и дают возможность победить своих первых противников-ботов. Это позволяет в начале игры получить позитивный опыт. Освоение игровых механик через решение практических задач лучше воспринимается, чем большое количество текста и картинок, которые игрок скорей всего пропустит.

Еще одну задачу, которую могут решить боты под управлением AI, — это поиск подходящего противника. Например, в таких играх как World of Warships и PUBG Mobile игрок, идя в свои первые настоящие бои, на самом деле часто играет с ботами на 100% или же частично. И часто игроки даже не замечают этого!

Я, к примеру, играя в PUBG Mobile, понял, что противники это боты, только после того, как взял свой 3-й ТОП-1 подряд. При этом боты-противники обычно играют лучше, чем боты из обучения и для игрока плавно повышается сложность, а он сам не проигрывает слишком часто. Сделано это также и для того, чтобы новички не становились жертвами профи, желающих отвести душу на тех, кто только делает первые шаги в игре.

Например, World of Tanks на начальных уровнях техники позволяет разделить в матчмейкере новых игроков с теми, у кого за плечами тысячи боев игре.

Другая задача для противников под управлением AI — заселение регионов с малым количеством онлайна. Такая ситуация может наступить как в связи с вводом нового региона (например, Африка), в котором проект только запускается и игроков там слишком мало, так и в случае сильного сдвига по временным зонам. Например, когда все игроки Евразии находятся на одном сервере и есть временные зоны, в которых на данном сервере играет мало игроков.

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

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

Разнообразие с помощью PVE-режимов и механик

Как я писал выше, главным в многопользовательских играх является противостояние игроков друг с другом, player vs player. Но иногда этот вид сражения надоедает, игрок хочет «что-то такого же, но другого». Закрывать игру, запускать другую? Необязательно. Здесь как раз и приходит на помощь искусственный интеллект. Ведь основным способом разнообразить PVP-игру может стать введение режимов PVE (player vs environment). Цели и преимущества таких режимов могут быть разными:

  • Временные PVE-события в игре. Зачастую это — дополнительные режимы и проводятся на протяжении фиксированного времени, а по их завершению игрок получает особую награду, которой нет в стандартном PVP-режиме. Например, в World of Tanks есть событие Halloween («Мирный-13»), которое появляется раз в году и позволяет игрокам получить другой игровой опыт. Да, за почти 11 лет все привыкли, что «танки» – это 15 на 15, где нужно победить команду игроков. PVE-режим позволяет взглянуть на игру под другим углом, отвлечься, получить награды, пройдя все событие, и использовать их уже в обычном PVP-режиме. При этом само событие подталкивает геймеров к конструктивному взаимодействию и совместному поиску стратегий победы, что увеличивает вовлеченность в проект.

  • Контент для казуальных и PVE-only игроков. Даже в PVP-играх есть категория игроков, которые большую часть времени играют только в PVE-события. И новые режимы — это повод для них вернуться в игру. Часть игроков после события и получения награды за него, начинают заново играть в PVP-режим.
  • PVE-механики. Одним из вариантов разнообразить PVP-режим, является введение разных умений персонажа, которые будут использовать AI в своей работе. Например: это призыв помощников, которые будут атаковать противников, тем самым помогая игроку (DoTA 2, League of Legends). Призванные боты управляются упрощенным искусственным интеллектом, у которого как правило есть одна цель. Но при этом бот должен уметь находить и выбирать цель, двигаться к врагу и атаковать его. Использование AI позволяет сделать этого помощника более естественным и полезным, а также дает возможность регулировать сложность такого бота для противника. Так как основой игры все равно остается противостояние игрока с игроком.
  • Баланс экономики. PVE-события позволяют сбалансировать количество накопленных игровых ресурсов. Если у игроков не хватает внутриигровой валюты, значимые награды за ивенты могут стать хорошим поводом пройти их. В свою очередь это позволит комфортно вернуться в PVP-режим, уже имея накопления. В случае переизбытка ресурсов в экономике, награда за событие делается сильно значимой или престижной, но её получение становится достаточно затратным для игрока. Тем самым получение награды становится интересным вызовом, а также предметом коллекционирования. Так как практическая польза явно меньше затраченных ресурсов.
  • Раскрытие мира игры и создание комьюнити. Когда основной игровой цикл — это PVP-бои, сложно рассказать какой-либо сюжет. С PVE-событиями появляется возможность рассказать небольшой сюжет о мире или персонажах. Это способствует вовлечению игроков и созданию сообщества вокруг проекта. Это же сообщество со временем само начинает генерировать фанатский контент вокруг лора игры, тем самым повышая интерес и узнаваемость проекта. Например, в том же режиме «Мирный-13» в World of Tanks мы создали целую историю про события в закрытом военном городе, придумали персонажей и привлекли создателей Silent Hill для создания необходимой атмосферы в игре – от противников до музыкального сопровождения. Можно ли это представить в стандартных боях на исторической технике средины XX века?

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

Инструмент для разработки игры

Все описанные выше варианты использования AI были связаны с взаимодействием с игроком. Но искусственный интеллект может хорошо помогать и команде разработки. Основные области применения:

Дизайн уровней

Создание карт или арен для PVP-сражения — это достаточно долгий и трудоемкий процесс. Любое изменение влечет за собой большое количество тестирований, а изменений на картах сегодня достаточно много и происходят они постоянно. Проводить проверки только командой дизайнеров уровня и очень сложно, и затратно по времени, но тестирование геометрии и баланса уровней можно автоматизировать с помощью AI-ботов.

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

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

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

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

Внедрение новых механик и тестирование балансных правок

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

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

Проведение нагрузочного тестирования

Критически важным аспектом PVP-игр, является стабильность работы сервера в условии постоянного развития проекта. Для этого запускается большое количество боев с ботами, что позволяет проверить такие области продукта как:

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

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

Проведение функционального тестирования

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

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

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

Вывод

Несмотря на то, что для соревновательных и кооперативных PVP-игр главной механикой является противостояние игроков друг с другом, разработка AI для таких продуктов имеет множество преимуществ. С одной стороны, это помощь новичкам, с другой — разнообразие игрового опыта.

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

Мы в Wargaming активно используем AI как для игроков, так и для разработчиков, что позволяет сильно экономить ресурсы и доставлять игрокам более качественный продукт.

Автор: Александр Пиндык, Team Lead/Senior Game AI Developer киевской студии Wargaming

Источник: ain.ua



Самые актуальные новости - в Telegram-канале

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

Вверх