Автор прочитал четыре книги, связанные с числовыми аспектами игр: «Справочник по игровым числам», «Контролёры баланса», «Дизайн игровых чисел» и «Руководство по планированию игровых проектов». Также изучил множество статей на различных онлайн-платформах, связанных с игровыми числами. Обнаружил, что шаги построения таблиц и методы расчёта значительно различаются в разных компаниях и среди различных планировщиков. Причина этих различий заключается в отсутствии унифицированной числовой модели: каждый использует свою привычную модель и методы построения таблиц, что не очень удобно для новичков, только начинающих работать с игровыми числами (например, как я).
Однако, после многочисленных чтений становится понятно, что, несмотря на различия в алгоритмах и формулах на уровне деталей, цели и подходы к дизайну за ними одинаковы. Это легко понять, поскольку решаемые проблемы схожи, и методы, разработанные для их решения, приводят к схожим результатам. В данной статье, основываясь на собственных размышлениях, я структурировал общие подходы к дизайну чисел в RPG, надеясь, что это поможет тем, кто, как и я, только начинает изучать игровые числа.
Необходимо подчеркнуть, что работа по числовому планированию делится на «построение» и «настройку»: на ранних стадиях создаётся таблица, а в середине и на поздних этапах проводится повторное тестирование и настройка чисел. «Построение» больше связано с техническими аспектами, тогда как «настройка» требует большого опыта в игре и работе. В этой статье рассматриваются основные подходы к «построению», без включения аспектов настройки чисел.
Кроме того, примеры в статье в основном взяты из игры «Genshin Impact» («原神»). Все формулы и диаграммы, связанные с «Genshin Impact», являются лишь грубыми обратными выводами автора и не отражают реальные данные.
1. Основные методы дизайна игровых чисел
1.1 Метод построения числовой структуры
Методы построения числовой структуры различаются для оригинальных и зрелых игровых механик:
Для инновационных оригинальных механик: строится простая система для быстрого итерационного процесса, то есть:
Определение рамок атрибутов на основе основной игровой механики.
Разработка конкретных формул.
Проверка игрового опыта.
Корректировка основной механики и рамок атрибутов.
Начало нового цикла итераций.
Для механик с зрелым прототипом:
Найти аналогичные игры на рынке и провести обратное моделирование их числовой структуры и деталей.
Проанализировать цели дизайна и реальные эффекты.
Внести корректировки в существующую структуру на основе особенностей собственного проекта.
Поскольку числовые параметры будут многократно корректироваться, при построении структуры можно использовать некоторые привычки, повышающие эффективность:
Использование первой страницы Excel как страницы параметров: или размещение области параметров в верхней части каждой страницы, выделяя параметры для ручного ввода на отдельной странице или в отдельной области, а остальные разделы будут ссылаться на них для удобной последующей настройки параметров.
Установка параметра контроля масштаба чисел: при построении таблицы все связанные числовые значения умножаются на этот параметр, что облегчает последующую регулировку масштаба чисел.
Использование функции проверки данных в Excel: для ограничения ввода в ячейки; если эта функция не удовлетворяет требованиям, необходимо писать проверочные функции вручную, чтобы избежать ошибок при последующих изменениях чисел.
При распределении вероятностей (требуется сумма вероятностей 100%, например, распределение атрибутов по каналам прокачки, распределение выпадений по игровым модулям и т.д.): использовать веса вместо прямых вероятностей для удобства последующей корректировки.
…
1.2 Метод детализации числовых параметров
Процесс построения таблицы обычно включает следующие этапы:
Определение значений базовых параметров, влияющих на игровой опыт, интуитивно.
На основе значений базовых параметров выводится вся числовая система.
Повторное тестирование и оптимизация.
Первый и третий шаги в основном зависят от долгосрочного опыта, тогда как второй шаг (числовое вывод) — это навык, который можно быстро освоить. Общие шаги числового вывода следующие:
ШАГ 1: Чётко определить объект для решения: найти ключевые параметры, поддерживающие числовую систему, и взять их за объект для решения.
ШАГ 2: Чётко определить требования дизайна: это установленные значения базовых параметров или специальные требования дизайна, которые накладывают определённые ограничения на объект для решения. Например, при проектировании пропорций распределения атрибутов требование «время выживания = 20 секунд» должно быть выполнено.
ШАГ 3: Решение: на основе требований дизайна из второго шага вывести неизвестные параметры из первого шага. Если количество ограничений меньше количества параметров (существуют бесконечные решения), можно интуитивно задать значения некоторых неизвестных параметров, а затем вычислить остальные, главное — удовлетворить требования дизайна.
При проектировании чисел с возрастающей тенденцией (например, рост атрибутов) необходимо определить форму кривой на основе взаимосвязи между переменными. Ниже приведены некоторые распространённые типы кривых:
Линейная: линейная функция.
Увеличивающаяся маржинальная эффективность: полиномиальная функция высших степеней (степень > 1, чаще всего квадратичная функция), экспоненциальная функция (основание > 0).
Убывающая маржинальная эффективность (с асимптотой): экспоненциальная функция (основание < 1), xx+a\frac{x}{x+a}x+ax, обратная пропорциональная функция, функция арктангенса.
Примечание: При определении типа кривой старайтесь избегать слишком сложной математики, которая может создать большую нагрузку на программу и замедлить её работу. Лучше использовать только операции сложения, вычитания, умножения, деления и функции min/max, а различные значения параметров позволят достичь различных эффектов. Кроме того, чтобы обеспечить разный игровой опыт на разных этапах игры, в реальных играх часто используются поэтапные функции. Поскольку игроки чувствительны к небольшим значениям, на ранних этапах игры следует уделять им больше внимания, разбивая на большее количество этапов и, при необходимости, отказываясь от использования формул, обрабатывая каждую точку как особый случай вручную. На более поздних этапах, когда числа становятся большими и факторов больше, игроки становятся менее чувствительными, и можно использовать формулы.
При проектировании чисел, включающих вероятности (например, усиление/синтез в прокачке, выпадения/жеребьёвка в добыче, критические удары/уклонение в боях), необходимо контролировать появление экстремально негативных вероятностей, чтобы избежать оттока игроков. Ниже приведены некоторые распространённые методы:
Постепенное увеличение вероятности: если в текущем раунде неудача, то в следующем раунде вероятность увеличивается на фиксированное значение или фиксированный процент. Начальная вероятность и величина увеличения могут быть рассчитаны исходя из установленного максимального количества попыток и среднего количества успешных попыток. Например, вероятность выпадения пятизвёздочного персонажа в пуле «Genshin Impact» составляет 0.6%, начиная с 74-го розыгрыша вероятность увеличивается на 6% за каждый последующий розыгрыш, и к 90-му розыгрышу вероятность достигает 100%.
Преобразование вероятности в частоту:
Метод предварительного сохранения результатов: если вероятность составляет 5% и гарантия выпадаемости через 60 попыток, то при 100 попытках эта гарантия изменится. Например, можно заранее выбрать определённые числа в диапазоне попыток, чтобы обеспечить гарантированный результат без влияния случайности. Это эффективно предотвращает попытки игроков манипулировать вероятностью путём многократного сохранения и перезагрузки игры.
Метод счётчика или пула наград: при убийстве монстров или совершении розыгрышей счётчик увеличивается. Если вероятность составляет 0.1%, то при достижении 1000 убийств или 1000 розыгрышей выпадает редкий предмет, и счётчик обнуляется. Можно также назначить разные веса для различных монстров или билетов, чтобы игроки, убивающие боссов или использующие качественные билеты, быстрее наполняли счётчик. Этот метод часто используется в крупных MMORPG для выпадения редких предметов и позволяет полностью контролировать количество редких предметов на сервере за счёт частоты обновления.
2. RPG Числа — Рост
В RPG-играх различные аспекты способностей игроков постоянно растут. Цель дизайна чисел роста — количественно отразить рост игрока во всех аспектах и спланировать скорость этого роста. Основные подходы к дизайну следующие:
ШАГ 1: Выбрать ориентира роста и спланировать общий темп роста. Цель этого шага — связать рост игрока с временем, проведённым в игре, с помощью ориентира роста. Это позволяет при проектировании других аспектов роста ориентироваться на заранее спланированный темп роста.
ШАГ 2: Определить, какие существуют боевые атрибуты, спроектировать пропорции распределения атрибутов и кривую роста атрибутов. Боевые атрибуты являются основными атрибутами RPG. Цель этого шага — определить общий объём распределения каждого боевого атрибута на каждом этапе роста.
ШАГ 3: Определить каналы прокачки и спланировать пропорции распределения каждого атрибута в каждом канале. Цель этого шага — распределить общий объём распределения, спланированный на втором шаге, по различным каналам прокачки.
ШАГ 4: Детализировать модели роста каждого канала прокачки. Способы прокачки, кривые роста, интервалы роста и другие детали дизайна каждого канала прокачки различаются. Цель этого шага — определить все детали дизайна окончательно.
2.1. Ростовой ориентир
Ростовой ориентир используется для привязки продолжительности игры. Любые другие разделы, касающиеся темпа игры (такие как рост атрибутов, распределение контента, распределение ресурсов и т.д.), привязаны к уровням, что, в свою очередь, привязывает и продолжительность игры.
Наиболее распространённым ростовым ориентиром является уровень персонажа. В зависимости от мира игры, уровень персонажа может быть представлен в других формах, например, количество лет тренировки в игре «斗战神» («Dou Zhan Shen») или возраст в игре «千年» («Millennium»).
После выбора уровня в качестве ростового ориентира необходимо спланировать время игры (часы или дни), необходимое для повышения каждого уровня. Конкретный подход следует брать из трёх шагов, описанных в разделе 1.2:
ШАГ 1: Чётко определить объект для решения. Обычно время, необходимое для повышения каждого уровня, должно постепенно увеличиваться. Можно использовать способ постепенного увеличения через каждые несколько уровней, либо применять линейную функцию или квадратичную функцию для увеличения. Объектом решения являются неизвестные параметры в функции.
ШАГ 2: Чётко определить требования дизайна. Требования дизайна к времени повышения уровня включают установленный жизненный цикл игры, уровень на первый день, уровень на первую неделю, уровень на первый месяц и т.д.
ШАГ 3: Решение. Исходя из установленных условий жизненного цикла игры, уровня на первый день, уровня на первую неделю, уровня на первый месяц и других условий, необходимо обратным образом определить неизвестные параметры в функции.
Возьмём, к примеру, игру «Genshin Impact» («原神»). Поскольку способ прокачки персонажей в «Genshin Impact» является смешанным (включает как горизонтальные элементы сбора, так и вертикальные числовые элементы), игрок может быстро прокачивать несколько персонажей одновременно. Поэтому в качестве ростового ориентира используется не уровень персонажа, а уровень Приключений (Adventure Rank).
Предположим, что обычный игрок играет только 1 час в день, не использует хрупкую смолу (ежедневно потребляет 180 смолы), и его игровой контент включает ежедневные поручения + 4 сундука + 60 ресурсов большого мира + 1 раз Цветок Золота + 1 раз Цветок Откровений + 1 раз Оружейный подземелье + 1 раз Подземелье Талантов + 1,5 раза Подземелье Реликвий + 40 обычных монстров + 20 элитных монстров + 1 босс-монстр + 1 еженедельный босс. Тогда время, необходимое для повышения уровня этого обычного игрока, представлено на рисунке ниже (грубо обратные вычисления автора, не отражают реальные данные):
Можно заметить, что кривая времени повышения уровня в «Genshin Impact» представляет собой сочетание «поэтапной линейности + ускоренного роста». Время повышения уровня рассчитывается по формуле:
Время повышения уровня=a+b×уровень\text{Время повышения уровня} = a + b \times \text{уровень}Время повышения уровня=a+b×уровень
Однако каждые 5-10 уровней параметры a и b изменяются, что приводит к скачкам в графике. Столбец «Δ耗时(天)」 фактически отражает значения параметра b. Каждое изменение цвета в таблице указывает на изменение параметров a и b.
2.2. Рост боевых атрибутов
Примечание: В некоторых книгах для планирования роста атрибутов используются базовые параметры, такие как сила, интеллект, ловкость и т.д. Однако я считаю, что использование боевых атрибутов предпочтительнее, поскольку все каналы прокачки, кроме уровня персонажа, фокусируются на боевых атрибутах. При использовании базовых атрибутов потребуется дополнительное преобразование при распределении атрибутов, что усложняет процесс.
Боевые атрибуты в RPG можно разделить на следующие категории:
Основные боевые атрибуты: Атака, защита, максимальное здоровье. Это атакующая, оборонительная и жизнестойкая треугольника, которые являются неотъемлемыми атрибутами RPG.
Продвинутые боевые атрибуты: Эти атрибуты можно разделить на атакующие, оборонительные и здоровьесберегающие. Основная цель их дизайна — обогащение механики расчёта урона, углубление боевой системы и добавление элемент неожиданности в бою. Каждый RPG-игра имеет свои уникальные продвинутые боевые атрибуты, зависящие от дизайна боя. Например, в «Genshin Impact» продвинутые боевые атрибуты включают:
Элементальное мастерство (атака)
Критический шанс (атака)
Критический урон (атака)
Увеличение урона определённого элемента (атака)
Увеличение физического урона (атака)
Эффективность щита (защита)
Сопротивление определённому элементу (защита)
Физическое сопротивление (защита)
Увеличение эффекта лечения (здоровье)
Увеличение получаемого лечения (здоровье)
Скоростные боевые атрибуты: Эти атрибуты влияют на знаменатель DPS и имеют невысокую значимость в RPG, чаще всего являясь скрытыми атрибутами (не отображаются на панели). В «Genshin Impact» скоростные боевые атрибуты включают:
Скорость атаки
Сокращение времени восстановления
Эффективность зарядки элементов
Скорость передвижения
Максимум выносливости
При проектировании числовых значений роста необходимо спланировать рост боевых атрибутов для стандартного персонажа. В дальнейшем, при проектировании различных классов и монстров, модуль боевых чисел будет опираться на эти стандартные значения. Планирование роста боевых атрибутов обычно делится на два шага:
Определение пропорций распределения атрибутов.
Определение кривой роста атрибутов.
Первый шаг включает в себя общее распределение боевых атрибутов, а второй шаг — распределение боевых атрибутов на каждый уровень роста ориентировочного показателя.
Пропорции распределения атрибутов:
Согласно трём шагам, описанным в разделе 1.2:
ШАГ 1: Чётко определить объект для решения — определить пропорциональные отношения между общими объёмами распределения различных боевых атрибутов.
ШАГ 2: Чётко определить требования дизайна — основные требования к пропорциям распределения атрибутов связаны с продолжительностью выживания и коэффициентом поглощения урона:
Продолжительность выживания: Самый важный показатель в бою, отражающий победителя сражения и косвенно характеризующий боевую силу персонажа. Предположим, два стандартных персонажа вступают в бой; требования к продолжительности выживания помогут определить соотношение здоровья и урона.
Коэффициент поглощения урона: Если формула урона (подробное описание формулы урона см. в разделе 3.1) является мультипликативной, при определении пропорций распределения атрибутов можно не учитывать коэффициент поглощения, так как его можно контролировать через настройку параметров. Если формула урона является вычитательной, необходимо учитывать требования к коэффициенту поглощения при определении соотношения атаки и защиты.
ШАГ 3: Решение — предположим, что атака равна 1:
Если формула урона мультипликативная:
Интуитивно определить пропорции между другими атакующими атрибутами и атакой.
Рассчитать урон на основе формулы урона и уже заданного коэффициента поглощения.
Определить соотношение здоровья и атаки на основе заданной продолжительности выживания.
В мультипликативной формуле защита может рассматриваться как отдельная система, и соотношение атаки и защиты можно задавать произвольно.
Если формула урона вычитательная:
Интуитивно определить пропорции между другими атакующими атрибутами и атакой.
На основе заданного коэффициента поглощения определить соотношение атаки и защиты.
Рассчитать урон на основе формулы урона.
На основе заданной продолжительности выживания определить соотношение здоровья и атаки.
Особенности пропорций распределения атрибутов в «Genshin Impact»: В «Genshin Impact» требования к продолжительности выживания двух атакующих пятизвёздочных персонажей кажутся неважными, поскольку игра ориентирована на PVE. В реальных боях продолжительность выживания персонажей составляет менее 3 секунд, что на первый взгляд может показаться нелогичным. Однако в контексте PVE это оправдано, так как числовые значения персонажей явно превышают требования игрового процесса. Игроки с достаточными показателями здоровья и защиты легко справляются с монстрами, имеющими низкую атаку и высокое здоровье. Кроме того, игра предполагает командные сражения, где у игроков есть четыре персонажа с разными ролями, включая танков, поддержки и хилеров. Это устраняет проблемы выживания, так как в команде присутствуют персонажи с разными функциями.
Кривая роста атрибутов:
Есть два способа распределения боевых атрибутов: последовательное распределение и поэтапное распределение. Последовательное распределение соответствует вертикальному числовому прокачиванию, а поэтапное распределение — горизонтальному сбору.
Основные боевые атрибуты (атака, защита, здоровье): Распределяются последовательно, обычно линейно увеличиваясь. В поздних стадиях из-за увеличивающегося времени повышения уровня и привыкания игроков может потребоваться добавить скачки для ускоренного роста (например, с уровней 1-50 увеличивать атаку на 90 единиц за уровень, а с уровней 50-100 — на 180 единиц за уровень).
Продвинутые боевые атрибуты: Могут распределяться как последовательно, так и поэтапно. Обычно они увеличиваются с ускорением, и на более поздних стадиях объем распределения на узлах становится больше, предоставляя игрокам экспоненциальное числовое стимулирование.
В «Genshin Impact» три основных канала прокачки (персонажи, оружие, артефакты) являются смешанными, объединяя как вертикальные числовые элементы, так и горизонтальные элементы сбора. В начале игры ресурсы ограничены, доступно мало персонажей/оружия/артефактов, поэтому прокачка фокусируется на вертикальном росте через постепенное повышение уровня. В поздних стадиях, когда игроки собирают больше ресурсов и могут максимально прокачивать персонажей/оружие/артефакты, прокачка переходит на горизонтальный уровень, где основное усиление достигается за счет сбора новых мощных элементов. Введение различных типов персонажей обогащает игровые механики и позволяет игрокам эффективно адаптироваться к различным игровым ситуациям.
2.3. Распределение боевых атрибутов
Распределение боевых атрибутов заключается в распределении общего объёма распределённых атрибутов, спланированного в разделе 2.2, по различным каналам прокачки.
Перед распределением боевых атрибутов необходимо сначала определить позиционирование каждого канала прокачки, а также детали дизайна прокачки, такие как способы прокачки и кривые роста. В общем случае, количество каналов прокачки в RPG должно быть минимальным для облегчения понимания игроками. Если обнаружено, что некоторые каналы имеют схожее позиционирование, их следует объединить.
Пример из «Genshin Impact»: Как показано на рисунке ниже, каналы прокачки в игре очень упрощены. Канал персонажей предоставляет основные боевые атрибуты (атака, защита, здоровье), каналы оружия и талантов дополняют атаку с точки зрения базовой атаки и множителей соответственно. Канал артефактов добавляет дополнительные атрибуты, углубляя прокачку и создавая числовое превышение. Помимо традиционных пяти каналов прокачки в RPG (персонажи, оружие, экипировка, навыки, еда), в «Genshin Impact» добавлены каналы созвездий и усовершенствований. Эти каналы предназначены для предоставления глубокой прокачки для игроков, готовых вкладывать дополнительные средства ("big spenders").
Позиционирование каналов прокачки:
Персонажи: Основные боевые атрибуты.
Оружие: Дополнение атаки через базовую атаку и множители.
Таланты: Дополнение атаки через базовую атаку и множители.
Артефакты: Дополнение атаки и здоровья, а также предоставление дополнительных атрибутов.
Созвездия/Усовершенствования: Предназначены для игроков, готовых вкладывать дополнительные средства, предоставляя дополнительные возможности для глубокой прокачки.
В качестве карты каналов прокачки можно представить следующую схему:
Особенности распределения атрибутов в «Genshin Impact»:
Персонажи: Обеспечивают основные боевые атрибуты (атака, защита, здоровье).
Оружие и таланты: Дополняют атаку через базовую атаку и множители.
Артефакты: Дополняют как атаку, так и здоровье, а также предоставляют множество дополнительных атрибутов, углубляя прокачку и создавая числовое превышение.
Созвездия/Усовершенствования: Предназначены для игроков, готовых вкладывать дополнительные средства. Эти каналы предоставляют дополнительные возможности для глубокой прокачки, стимулируя повторные попытки получения новых возможностей через микротранзакции.
Примечание: В таблице символ «+» означает, что с обновлениями версий количество доступных для сбора типов постоянно увеличивается.
После планирования процесса прокачки, распределите рост атрибутов по процентам между различными основными категориями прокачки, а затем внутри каждой основной категории выполните вторичное или трёхкратное распределение. При распределении необходимо учитывать важность каждого канала прокачки. Например, если в планировании предполагается, что предпочтение игроков должно быть следующим: канал A > канал B, то при распределении следует выделить больше процентов каналу A. Кроме того, канал A должен быть более очевидным, простым и иметь меньшую случайность, чтобы облегчить понимание и восприятие игроками.
Опять же, на примере «Genshin Impact», используя максимальное распределение (то есть распределение всех атрибутных очков в игре без учёта их доступности), статистика распределения атрибутов примерно следующая (грубо обратные вычисления автора, не отражают реальные данные). Можно заметить, что четыре атрибута — базовое здоровье, базовая защита, увеличение урона определённого элемента и увеличение эффективности лечения — в основном поступают от персонажей и артефактов. Два атрибута — базовая атака и увеличение физического урона — в основном поступают от оружия и артефактов. Остальные атрибуты преимущественно поступают от артефактов. Это подтверждает вышеуказанное предположение (артефакты являются основным источником глубины прокачки). Если игрок хочет сосредоточиться на определённых атрибутах для завершения прокачки, ему необходимо уделить больше внимания артефактам.
Максимальное распределение не учитывает доступность. На самом деле, при получении атрибутных очков через прокачку игроки сталкиваются с множеством ограничений: у одного персонажа может быть только один побочный атрибут, у одного оружия — только одна побочная характеристика, можно носить только пять артефактов, а расположение побочных характеристик артефактов и количество их улучшений ограничены. Это приводит к тому, что распределение атрибутов выпускных персонажей в «Genshin Impact» значительно отличается от приведённой выше таблицы.
Для такого вида прокачки, включающего множество пользовательских выборов, при оценке реальных пропорций распределения можно сначала оценить скрытое направление данного канала прокачки, то есть, какие атрибуты разработчики хотят, чтобы игроки стремились развивать, и какие атрибуты приносят наибольшую реальную пользу. Для игроков разных классов и стилей игры атрибуты с наибольшей пользой различаются. Здесь приведён пример для атакующих персонажей: побочные атрибуты персонажей и оружия выбраны как критический шанс и критический урон, артефакты предоставляют множество двойных критических характеристик и небольшое количество других атрибутов. Распределение атрибутов типичного атакующего персонажа примерно выглядит следующим образом (грубо обратные вычисления автора, не отражают реальные данные):
На основе анализа в разделе 2.2, «Genshin Impact» как чисто PVE-игра, числовые показатели персонажей явно превышают требования игрового процесса. Неконфигурируемые параметры роста, предоставляющие здоровье и защиту, уже достаточны, а вместе с мощными танками, поддержкой и хилерами проблемы выживаемости практически отсутствуют. Поэтому выбор игроков часто сводится к тому, чтобы использовать доступные для настройки параметры роста для увеличения атакующих атрибутов, стремясь к быстрому уничтожению монстров. Поскольку игроки в основном стремятся к максимальному DPS, атакующие персонажи накапливают двойной критический шанс и критический урон, персонажи, увеличивающие урон, также накапливают двойной критический шанс и элементальное мастерство. За исключением некоторых хилеров, которые немного увеличивают бонусы к лечению, атрибуты защиты и здоровья остаются практически неиспользуемыми. Способ решения этой проблемы разработчиков заключается в трансформации, то есть, умножении множителей навыков на другие атрибуты, а не на базовую атаку в панели, тем самым преобразуя эти атрибуты в атакующий урон. В настоящее время в «Genshin Impact» персонажи, которые преобразуют здоровье, это Ху Тао, а персонажи, преобразующие защиту, это Аратакки Ито и Албедо.
2.4. Детализация роста
После выполнения первых трёх шагов структура системы роста уже создана. Следующим шагом необходимо усовершенствовать детали дизайна каждого канала прокачки.
Первый шаг: Определение распределения атрибутов по каналам прокачки
Сначала, используя метод бенчмаркинга ростового ориентира, определите количество боевых атрибутов, распределяемых в каждом канале прокачки на каждом этапе:
Для горизонтальной прокачки: сопоставьте узлы распределения различных предметов с ростовыми ориентирами.
Для вертикальной прокачки: сопоставьте уровень данного канала прокачки с ростовыми ориентирами.
Поскольку рост боевых атрибутов и уровень канала прокачки оба привязаны к ростовым ориентирам, можно связать их через эти ориентиры. То есть:
Количество боевых атрибутов для определённого канала на определённом этапе=Общее количество распределённых боевых атрибутов на соответствующем этапе роста×Процентное распределение этого атрибута в данном канале\text{Количество боевых атрибутов для определённого канала на определённом этапе} = \text{Общее количество распределённых боевых атрибутов на соответствующем этапе роста} \times \text{Процентное распределение этого атрибута в данном канале}Количество боевых атрибутов для определённого канала на определённом этапе=Общее количество распределённых боевых атрибутов на соответствующем этапе роста×Процентное распределение этого атрибута в данном канале
Второй шаг: Разработка формул преобразования атрибутов
Если канал прокачки имеет собственный набор атрибутов, необходимо разработать формулы преобразования атрибутов и провести обратное моделирование. Например, во многих RPG канал прокачки персонажей не напрямую увеличивает боевые атрибуты, а вместо этого увеличивает базовые атрибуты, такие как сила, интеллект, ловкость и т.д. Затем эти базовые атрибуты преобразуются в боевые атрибуты, такие как физическая атака, магическая атака, скорость атаки и т.д., с помощью специальных формул преобразования. В таких случаях необходимо вернуть распределённые боевые атрибуты канала прокачки персонажей в базовые атрибуты.
3. RPG Числовые показатели — Бой
3.1. Формула урона
Функция расчёта урона предназначена для вычисления итогового урона, наносимого атакующей стороной, на основе её атакующих атрибутов и защитных атрибутов защищающейся стороны. Формулы расчёта урона можно разделить на две основные категории: вычитательная формула и мультипликативная формула.
Здесь «Атака» обозначает сумму всех атакующих атрибутов, а «Защита» — сумму всех защитных атрибутов. Если используется вычитательная формула расчёта урона, то «Атака» и «Защита» обычно рассчитываются с помощью сложения:
Пусть hhh обозначает урон (harm), aaa — атаку (attack), ddd — защиту (defense). Тогда вычитательная формула может быть выражена как: h=a−dh = a - dh=a−d h′(d)=−1<0h'(d) = -1 < 0h′(d)=−1<0 h′′(d)=0h''(d) = 0h′′(d)=0
Урон уменьшается по мере увеличения защиты, при этом предельная отдача от повышения защиты остаётся неизменной.
Преимущества вычитательной формулы:
Удобство для игроков: Лёгкость понимания, так как урон можно быстро подсчитать в уме.
Недостатки вычитательной формулы:
Постоянная предельная отдача от защиты: Игроки могут массово повышать защиту, что приводит к проблеме непроходимости обороны (непробиваемости). В случае дуэли (1v1) проблему непробиваемости решить сложно, но в сражениях 1 против N её можно решить, уменьшая эффективность защиты по мере увеличения числа нападающих.
Мультипликативная формула:
Урон=Атака×(1−Иммунитет к урону)\text{Урон} = \text{Атака} \times (1 - \text{Иммунитет к урону})Урон=Атака×(1−Иммунитет к урону) где Иммунитет к урону=ЗащитаЗащита+Параметр выражения\text{Иммунитет к урону} = \frac{\text{Защита}}{\text{Защита} + \text{Параметр выражения}}Иммунитет к урону=Защита+Параметр выраженияЗащита
Здесь «Атака» обозначает сумму всех атакующих атрибутов, а «Защита» — сумму всех защитных атрибутов. Если используется мультипликативная формула расчёта урона, то «Атака» и «Защита» обычно рассчитываются с помощью умножения:
Атака=(Атака персонажа+Атака оружия)×(1+Процент воздействия навыка)×(1+Процент увеличения урона экипировки)×…\text{Атака} = (\text{Атака персонажа} + \text{Атака оружия}) \times (1 + \text{Процент воздействия навыка}) \times (1 + \text{Процент увеличения урона экипировки}) \times \dotsАтака=(Атака персонажа+Атака оружия)×(1+Процент воздействия навыка)×(1+Процент увеличения урона экипировки)×…
Защита=(Защита персонажа+Защита экипировки)×(1+Процент воздействия навыка)×…\text{Защита} = (\text{Защита персонажа} + \text{Защита экипировки}) \times (1 + \text{Процент воздействия навыка}) \times \dotsЗащита=(Защита персонажа+Защита экипировки)×(1+Процент воздействия навыка)×…
Пусть hhh обозначает урон (harm), aaa — атаку (attack), ddd — защиту (defense), drdrdr — иммунитет к урону (defense rate), pepepe — параметр выражения (parameter expression). Тогда формула иммунитета к урону может быть выражена как: dr(d)=dd+pedr(d) = \frac{d}{d + pe}dr(d)=d+ped а формула урона: h=a×(1−dr(d))h = a \times (1 - dr(d))h=a×(1−dr(d))
Эта формула обладает следующими свойствами:
dr<100%dr < 100\%dr<100%, dr′(d)>0dr'(d) > 0dr′(d)>0, h′(d)=−a×dr′(d)<0h'(d) = -a \times dr'(d) < 0h′(d)=−a×dr′(d)<0:
Иммунитет к урону увеличивается с ростом защиты, приближаясь к 100%, что приводит к уменьшению урона, приближаясь к 0. В реальных играх обычно не допускается достижение 100% иммунитета к урону. Вместо этого, максимальное значение иммунитета контролируется, чтобы оно приближалось к критическому значению, обычно 60% или 75%. Это предотвращает проблему непроходимости обороны и гарантирует, что урон останется не менее 40% или 25%.
dr′′(d)<0dr''(d) < 0dr′′(d)<0, h′′(d)=−a×dr′′(d)>0h''(d) = -a \times dr''(d) > 0h′′(d)=−a×dr′′(d)>0:
Приближение иммунитета к критическому значению происходит с убывающей предельной отдачей. По мере постоянного увеличения защиты, уменьшение урона становится всё менее значительным, что приводит к убывающей предельной отдаче от повышения защиты. Это стимулирует игроков более сбалансированно распределять атрибуты.
Параметр pepepe может быть постоянным или зависеть от различных переменных, таких как уровень атакующей стороны, уровень защищающейся стороны, атака атакующей стороны и т.д. Приведём несколько примеров:
В игре «League of Legends» (Лига Легенд) параметр pepepe является постоянным.
В этом случае возникает интересное свойство: эффективное здоровье увеличивается линейно с ростом защиты. Причина в следующем:
Если pe=100pe = 100pe=100, то защита фактически представляет собой процентное увеличение фактического здоровья защищающейся стороны.
Примечание: Эффективное здоровье (Effective HP, EHP) обозначает фактическое здоровье плюс эквивалентное количество здоровья, предоставляемое всеми защитными атрибутами защищающейся стороны (защита, уклонение, блокирование, сопротивление критическим ударам и т.д.). Формула EHP выглядит следующим образом: EHP=Фактическое здоровье1−Иммунитет к урону\text{EHP} = \frac{\text{Фактическое здоровье}}{1 - \text{Иммунитет к урону}}EHP=1−Иммунитет к уронуФактическое здоровье
В игре «Genshin Impact» параметр pepepe зависит от уровня атакующей стороны: PE=a×уровень атакующей стороны+b\text{PE} = a \times \text{уровень атакующей стороны} + bPE=a×уровень атакующей стороны+b
Пусть l1l1l1 обозначает уровень атакующей стороны. Тогда: dr′(l1)<0dr'(l1) < 0dr′(l1)<0 h′(l1)=−a×dr′(l1)>0h'(l1) = -a \times dr'(l1) > 0h′(l1)=−a×dr′(l1)>0
При неизменной защите, чем выше уровень атакующей стороны, тем больший урон она наносит. В рамках этой формулы в игре существует механика подавления уровня, что создаёт ощущение значительного роста. Например, мировые боссы в «Genshin Impact» сначала имеют значительно более высокий уровень, создавая ощущение давления, но в поздних стадиях становятся легко побеждаемыми.
В игре «World of Warcraft» параметр pepepe зависит от уровня защищающейся стороны: PE=a×уровень защищающейся стороны+b\text{PE} = a \times \text{уровень защищающейся стороны} + bPE=a×уровень защищающейся стороны+b
Пусть l2l2l2 обозначает уровень защищающейся стороны. Тогда: dr′(l2)<0dr'(l2) < 0dr′(l2)<0
При неизменной защите, чем выше уровень защищающейся стороны, тем выше иммунитет к урону. В рамках этой формулы, по мере повышения уровня игрока, ему всё больше необходимо повышать защиту (иначе фактическая защита будет автоматически снижаться), что предоставляет игрокам долгосрочную цель для улучшения своих атрибутов.
В игре «Diablo» параметр pepepe зависит от атаки: PE=a×атака+b\text{PE} = a \times \text{атака} + bPE=a×атака+b
В отличие от других формул, здесь: h′′(a)>0h''(a) > 0h′′(a)>0
То есть, урон ускоряется по мере увеличения атаки, что приводит к возрастающей предельной отдаче от повышения атаки. Это выгодно атакующей стороне и часто используется в одиночных PVE-играх, где игроки массово уничтожают монстров. Однако для PVP-игр такая формула не подходит, так как она увеличивает разрыв между игроками и делает продолжительность выживания персонажей нестабильной.
Итоги анализа различных формул:
Вычитательная формула и мультипликативная формула с pepepe, включающим атаку, при использовании в PVP могут вызвать определённые проблемы. Обычно они применяются в PVE, при этом:
Вычитательная формула подходит для более хардкорных PVE-игр.
Мультипликативная формула с pepepe, включающим атаку, подходит для PVE-игр с механикой массового уничтожения монстров («грепинг»).
Другие мультипликативные формулы хорошо работают как в PVE, так и в PVP:
В PVE-играх с лёгкой прокачкой параметра pepepe может быть постоянным.
В RPG-играх с глубокой прокачкой, включающей PVP, параметр pepepe обычно связывается с уровнем персонажа.
Примечание: В реальных играх могут использоваться комбинированные формулы. Например, в традиционных RPG физическая атака часто ассоциируется с ближним боем и высокой техникой/сложностью уклонения, поэтому для неё может использоваться вычитательная формула, повышающая отдачу от защиты, стимулируя игроков уделять внимание физической защите. Магическая атака, часто ассоциируемая с дальним боем и высокой манёвренностью, может использоваться с мультипликативной формулой, побуждая игроков больше фокусироваться на уклонении, а не на магической защите.
В некоторых играх, чтобы предотвратить нежелательное поведение игроков или подчеркнуть уникальные особенности геймплея, базовые формулы расчёта урона могут быть изменены. Например, можно вводить штрафы за отклонение атрибутов игрока от целевых значений: Итоговый урон=Исходный урон×(1+max?{0,a×Целевой атрибут−Атрибут игрокаЦелевой атрибут+b})\text{Итоговый урон} = \text{Исходный урон} \times \left(1 + \max\left\{0, a \times \frac{\text{Целевой атрибут} - \text{Атрибут игрока}}{\text{Целевой атрибут}} + b \right\}\right)Итоговый урон=Исходный урон×(1+max{0,a×Целевой атрибутЦелевой атрибут−Атрибут игрока+b}) Здесь целевой атрибут определяется в зависимости от целей дизайна:
Для геймплея, проверяющего атакующие способности игрока, целевым атрибутом может быть целевая атака.
Для геймплея, проверяющего выживаемость игрока, целевым атрибутом может быть целевая защита.
Чтобы предотвратить повышение уровня игроком до уровня монстра, целевым атрибутом может быть уровень монстра.