Балансируем механику в играх

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

На просторах рунета можно найти много достойной информации о том, как правильно упаковывать продукты и какого цвета должны быть узоры на обертке. Но давайте попробуем надкусить конфету.
Поговорим о балансе в играх. Например, мы захотели создать незатейливую RPGMMO-шечку «убийцу WoW», и у нас уже почти все готово, мы уже нафантазировали, какая в игре будет крутая механика боя и система умений. Дело осталось за малым – абстрактные мысли превратить в конкретные значения. Причем, каким-то образом, сочетание этих значений должно убедить пользователя в том, что фраза «Баланс – говно» совершенно не может быть описательной характеристикой нашей механики.
Посмею дать свою интерпретацию — «Как надо делать!»

Воздействия


Игровые взаимодействия, если сильно не вдаваться в детали, это совокупность параметров, которые изменяют свои значения под воздействием каких-либо явлений (сущностей). Если у одного объекта есть параметр «Урон», а у другого объекта параметр «Здоровье», то мы можем создать элементарный игровой процесс «Один объект совершает атаку по другому объекту» и в результате параметр «Здоровье» изменяет свое значение на величину параметра «Урон».

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

  • Мгновенное воздействие меняет значение параметра сразу и безвозвратно;
  • Временное воздействие лишь на время изменяет значение параметра, а по окончанию своего действия возвращает нормальное значение параметра;


Наверняка данная статья привлекла в основном играющих людей и у вас на слуху такие термины, как buff, debuff, dot, hot и т.п. В разных играх эти термины могут принимать иные названия (дары, проклятья), но суть остается одна – некая долговременная сущность, изменяющая параметры объекта в течение своего времени действия.
Обобщив сущности, назовем их эффектами. Эффект – это «контейнер» для воздействий. Внутри этого «контейнера» могут содержаться как мгновенные, так и временные воздействия:

  • Мгновенные воздействия вызываются периодически по таймеру (пример: наносить урон каждые n секунд);
  • Временные воздействия изменяют параметр в течение действия эффекта;


Важной характеристикой воздействия является интенсивность. Выражаясь более простыми словами, интенсивность – величина, на которую мы изменяем параметр. Для эффекта важнейшей характеристикой является его длительность, по окончанию которой эффект завершается. В совокупности две этих характеристики определяют, насколько эффект и его воздействие значимы для игрока (сбалансированы).
Повышая время длительности или величину интенсивности, мы усиливаем эффект. Отсюда следует, что на интуитивном уровне (да и на практическом тоже) значимость эффекта может оставаться одинаковой, если одновременно изменять длительность и интенсивность в разных направлениях (пример: повышать интенсивность и понижать длительность). Назовем эту аксиому «Правилом баланса №1».

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

Состояния


Существует отдельный вид эффектов – состояния.
Если эффект меняет совокупность характеристик объекта и наделяет его новыми свойствами (пример: невидимость, неподвижность, оглушение и т.п.), то такой эффект называется состоянием. Интенсивность, как характеристика, отсутствует в эффектах состояния.

image

Балансируем эффекты


В попытках найти соотношение между двумя характеристиками эффекта (интенсивность и длительность) такое, чтобы эффект считался «сбалансированным», мы можем прийти к бесконечному числу вариантов, удовлетворяющих правилу баланса №1. Для этого можно повышать один параметр (например: интенсивность) и уменьшать другой (например: длительность):

  • Замедлить цель на 50% в течение 5.0 секунд;
  • Замедлить цель на 60% в течение 4.0 секунд;
  • Замедлить цель на 70% в течение 3.0 секунд;
  • Замедлить цель на 80% в течение 2.0 секунд;


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

Сокращаем количество соотношений


Можно проблему бесконечных вариантов решить, если разделить все эффекты на 2 типа:

  • Изменяемые только по длительности (интенсивность то ли отсутствует, то ли всегда постоянна);
  • Изменяемые только по интенсивности (длительность всегда постоянна);


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

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

Пример таблицы:
image


Любой дом начинается с фундамента. Вот и баланс должен начинаться с него же. Этот список у нас и является фундаментом, который мы со временем будет подстраивать под реальность и нужды игроков.
Из таблицы можно сделать некоторые выводы. Если нам необходимо создать эффект для умения, то теоретически не имеет значения, какое из воздействий выбрать, так как они равноценны (шаблонные). Если они таковыми не являются, значит надо исправлять их шаблонные значения.
Для теоретического глобального баланса отсутствует разница, будет ли умение наносить урон в 600 единиц, оглушать на 4 секунды или же применять эффект, изменяющий атаку на 30% в течение n секунд, так как мы создали таблицу шаблонных значений и сделали предположение о равнозначности этих значений.

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

Продолжение следует…

© Habrahabr.ru