Научная статья на тему 'ПРАКТИКИ БАЛАНСИРОВАНИЯ КОМПЬЮТЕРНЫХ ИГР'

ПРАКТИКИ БАЛАНСИРОВАНИЯ КОМПЬЮТЕРНЫХ ИГР Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
252
33
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИГРОВОЙ БАЛАНС / КОМПЬЮТЕРНЫЕ ИГРЫ / ЭКОНОМИЧЕСКАЯ СИМУЛЯЦИЯ / ИГРОВОЙ ДИЗАЙН / ИНСТРУМЕНТЫ РАЗРАБОТКИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Сахибгареева Гульнара Фаритовна, Кугуракова Влада Владимировна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ПРАКТИКИ БАЛАНСИРОВАНИЯ КОМПЬЮТЕРНЫХ ИГР»

ISSN 2079-3316 ПРОГРАММНЫЕ СИСТЕМЫ: ТЕОРИЯ И ПРИЛОЖЕНИЯ т. 13, №3(54), с. 255-273

научная статья ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ, ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ, НЕЙРОННЫЕ СЕТИ

УДК 519.876.5+28.23.29

10.25209/2079-3316-2022-13-3-255-273

Практики балансирования компьютерных игр

Гульнара Фаритовна Сахибгареева1^, Влада Владимировна Кугуракова2

Казанский (Приволжский) федеральный университет, Казань, Россия

1 gulnara.sahibgareeva42@gmail.com (подробнее об авторах на с. 269)

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

Результаты работы - два инструмента для создания и автоматического редактирования игрового баланса. Они являются частью плана разработки игрового инструмента для прототипирования компьютерных игр, сокращающего время и ресурсы на разработку за счет автоматического создания контента. (see abstract in English on p. 270)

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

Благодарности: Работа выполнена за счет средств Программы стратегического академического лидерства Казанского (Приволжского) федерального университета («ПРИОРИТЕТ-2030»)

Для цитирования: Сахибгареева Г.Ф., Кугуракова В.В. Практики балансирования компьютерных игр // Программные системы: теория и приложения. 2022. Т. 13. № 3(54). С. 255-273. http://psta.psiras.ru/ read/psta2022_3_255-273.pdf

© Сахибгареева Г.Ф., Кугуракова В. В.

2022

Введение

На основании анализа известных определений игрового баланса можно прийти к выводу, что в широком смысле под ним подразумевается баланс в значении гармоничности, целостности и логичности игрового процесса, в том числе с учетом игрового повествования, дизайна уровней, аудиосопровождения и даже дизайна пользовательского интерфейса [1]. Коротко —это баланс дизайнерских решений. В узком же смысле игровой баланс —это то, чему чаще всего обучают игровых дизайнеров с прикладной точки зрения, это математический баланс всех функций и переменных, т. е. экономической системы компьютерной игры (см., например, сайт Game Balance Concept (http://gamebalanceconcepts.wordpress.com/) или сайт с обучающими курсами для разработчиков игр (https : //www. devtodev. com/ education/online-course/mathematics-in-game-design)).

Приведение игрового проекта в баланс является одной из актуальных и нетривиальных задач, которая стоит на стыке дизайна и математики. Ежегодно в этой области появляется все больше работ, упоминающих прямую зависимость математических функций, регулирующих игру, с контекстом, создаваемым благодаря компьютерной графике, музыке, игровому сценарию и доступным игровым механикам1 [2,3]. Тонкая контекстуальная настройка игрового процесса на целевую аудиторию — это субъективная оценка, отражающая суть авторского замысла и его зависимости от игроков [4,5].

Для решения задач математического баланса применяются методы комбинаторики, теории вероятностей, математической статистики и теория игр. [1,6-8].

Оценить и прочувствовать игровой баланс помогают, в свою очередь, опытность и критический взгляд на дизайн концепции — подобный тезис указан, например, в серии обучающих статей на сайте Sirlin on game design (https://www.sirlin.net/articles/balancing-multiplayer-games-part-1-definitions).

Настоящая работа посвящена анализу эффективности авторских инструментов и подходов для работы над игровым балансом игр. Для этого предпринята попытка создания двух инструментов для работы с математическим балансом.

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

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

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

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

Симуляция игровой экономики

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

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

2Machination - визуальный онлайн редактор динамических диаграмм игрового баланса (https://machinations.io/).

3Примаченко А. М. Проектирование и разработка игровой экономики / Выпускная квалификационная работа // Казанский федеральный университет, 2022.-48 с.

4MMORPG (англ., сокр. Massively multiplayer online role-playing game) — массовая многопользовательская ролевая онлайн-игра, игровой жанр.

Реализацией является проект в игровом движке Unity5 с применением информационно-ориентированного стека технологий DOTS6 для высокопроизводительных многопоточных вычислений.

Базовым в направлении игрового балансирования является тезис о том, что игра—это упрощенная модель реальности. Для создания достоверной экономической системы используются следующие элементы: ресурсы, хранилища, источники/стоки, конвертеры и торговцы [9].

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

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

Для объектов, из которых состоит система, были выбраны следующие именования: юниты и здания.

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

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

5Unity—игровой движок для работы над интерактивными проектами с компьютерной графикой на языке программирования C# (http://unity.com).

6Unity DOTS —безопасная среда для разработки многопоточного кода на C# для Unity (https://unity.com/ru/dots).

7NPC (англ., сокр. Non-Player Character) — неигровой персонаж, которым управляет ИИ-алгоритм.

В конце концов благодаря им распространяется еда, которую покупают юниты.

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

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

Во время работы программа показывает значение ряда переменных, которые образуют статистику проекта (рисунок 1). Например, это такие данные, как среднее значение сытости юнита, объема производства зданий одного типа, добычи каких-либо ресурсов.

Day 1, Monday, 11:51 495 FPS

Рисунок 1. Симуляция на 1000 юнитов

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

Приложение имеет следующий функционал: создание и запуск

симуляции, просмотр и настройка статистики для оценки сбалансированности и производительности.

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

Автоматическое балансирование

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

Однако тестирование занимает много времени. В противовес ручному тестированию распространены алгоритмы автоматического тестирования, в том числе с применением методов машинного обучения [10-13].

В следующем примере8 инструмента для реализации функции автоматического балансирования настроена связь с онлайн-инстру-ментом Machination. Сделано это было для того, чтобы опустить реализацию функций визуализации динамического игрового баланса и запуска симуляции экономической системы.

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

Для эксперимента в Machination создана диаграмма баланса механики кровотечения из настольной игры Dungeons and Dragons (https://dnd.wizards.com/).

Механика состоит из урона от кровотечения, шанса ослабления или остановки кровотечения, урона от атак противника и шанса того, что атака противника попадет по игроку.

8Галимзянов Г. Р. Разработка инструмента автоматической корректировки внутриигровых параметров / Выпускная квалификационная работа // Казанский федеральный университет, 2021. —35 с.

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

Рассмотрим работу компонента, непосредственно отвечающего за то, чтобы передавать информацию, сколько урона получает игрок от кровотечения (рисунок 2).

Рисунок 2. Диаграмма баланса механики кровотечения

Пул «medicine roll» проверяет медицинские навыки персонажа с кровотечением. Если проверка покажет наличие таких навыков, то кровотечение уменьшится. В противном случае, кровотечение усилится. Пул «bleed dice count» отвечает за то, сколько конкретно крови потеряет игрок.

Итоговая диаграмма содержит в себе также компоненты, которые вычисляют значения атаки и урона (рисунок 3).

Рисунок 3. Итоговая диаграмма механики кровотечения

Конкретные численные переменные, использованные в эксперименте, следующие: уровень здоровья игрока—44, ожидаемая продолжительность боя —6-10 ходов.

В результате автоматического балансирования приложение вывело оптимальные значения остальных параметров: уровень кровотечения — 2, количество граней кости урона— 12.

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

Интеграция в генератор игровых прототипов

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

Инструмент для реализации игрового баланса показал, каким образом создается игровая экономика на примере ММОИРС-симулято-ра. Его логичным развитием станет составление перечня параметров, являющихся общими для игр схожего жанра.

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

Генератор игровых прототипов [16] —это планируемый результат обширного исследования, целью которого является разработка инструмента для игровых разработчиков и сценаристов, который призван ускорить этап прототипирования. Схема генератора отображена в виде взаимосвязи нескольких модулей (рисунок 4).

Рисунок 4. Схема инструмента генерации сценарного прототипа

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

Для генерации визуализации игровых механик и баланса необходима избыточная информация. Кроме этого могут быть использованы методы машинного обучения [17,18]. Для этого необходимо разметить достаточный для обучения объем материалов, основываясь на котором, можно сделать однозначный вывод о характере генерации.

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

[19].

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

[20].

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

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

9Липатов В. В. Автоматическая генерация игровых механик в соответствии с нарративом / Выпускная квалификационная работа // Казанский федеральный университет, 2019.—78 с.

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

• генерация технических документов с применением технологии синтетических данных;

• обучение нейросети генерации запроса для генерации динамической диаграммы игрового баланса для Machination.

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

Концепция итогового приложения с точки зрения работы над игровым балансом имеет следующие функции:

• прием текстовых документов;

• анализ текста, извлечение данных для построения диаграммы баланса;

• формирования и отправка запроса в Machination;

• запуск страницы с сгенерированной Machination диаграммой в браузере;

• редактирование диаграммы в Machination;

• экспорт экономической системы в игровой движок11, например, Unity.

Доступ к функциям Machination сократит время на разработку итогового инструмента.

Заключение

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

10API (англ., сокр. Application Programming Interface) — «программный интерфейс приложения») — описание способов, взаимодействия одной компьютерной программы с другими.

11Игровой движок (калька с англ. Game Engine) — общеупотребительный термин для систем разработки интерактивных приложений.

i Надоели баннеры? Вы всегда можете отключить рекламу.