1 Чому баланс важливий у фракційних іграх

В однофракційній RPG баланс стосується гравця проти середовища — ви налаштовуєте HP монстрів та криві XP. У двофракційній MMO баланс стосується гравця проти гравця, помноженого на сотні одночасних персонажів. Статистична перевага однієї фракції в 5% не відчувається як 5% — вона відчувається величезною, коли накопичується в тисячах PvP-боїв та транслюється через чат і рейтинги.

Конкретна небезпека у VvW — дисбаланс кількості гравців фракцій. Якщо вампіри виграють 58% PvP-боїв, нові гравці помічають це й обирають вампіра. Кількість вампірів зростає. Більше вампірів означає ще більше перемог вампірів у фракційній події Затемнення. Протягом тижнів гра перетворюється на "всі — вампіри" — і фракційна ідентичність руйнується.

Наша ціль — вузький діапазон частоти перемог: 48–52% для кожної фракції за сукупністю всіх PvP-боїв за тиждень. Це наш основний KPI балансу. Все інше — коефіцієнти навичок, криві зростання статистики, обмеження економіки — налаштовується для досягнення цього числа.

ФІЛОСОФІЯ ДИЗАЙНУ

Ми свідомо погоджуємося з тим, що індивідуальні зіткнення навичок будуть нерівними. Вампір із максимально прокачаною збіркою крадіжки здоров'я переможе більшість збірок вовкулак на тому ж рівні. Те, що ми балансуємо — це сукупна частота перемог фракцій, а не кожне можливе зіткнення збірок, що неможливо повністю вирівняти.

2 Формули статистики

Кожен бойовий результат у VvW визначається невеликим набором основних формул. Вони не приховані — публікація їх є навмисною, оскільки непрозорі системи породжують недовіру та теорії змов у спільнотах MMO.

Формула шкоди

Базова шкода обчислюється як:

damage = (STR × 1.5 + weapon_power) × variance × (1 − DR)

Де variance = random(0.85, 1.15) — кидок ±15%, що застосовується до кожного удару. Варіація запобігає повній детермінованості бою, додаючи значущу невизначеність навіть у нерівних боях.

Зниження захисту (DR)

Зниження захисту використовує формулу зменшення доходності, щоб запобігти перетворенню DEF на непробивну стіну при великих значеннях:

DR = DEF / (DEF + 50)

При DEF 50 зниження становить 50%. При DEF 100 — 67%. При DEF 200 — 80%. Формула гарантує, що накопичення чистого DEF дає все менший результат, зберігаючи ефективність наступальних збірок на всіх рівнях спорядження.

Шанс критичного удару

Шанс критичного удару визначається Удачею:

crit_chance = LCK / 500

При LCK 50 шанс крит. удару становить 10%. При LCK 100 — 20%. Критичні удари завдають шкоди 1.75×. Формула природно обмежується, оскільки LCK має зменшення ефективності вище 150 — вкладення більше в LCK дає менше крит./одиниця, ніж вкладення в STR.

Шанс ухилення

dodge_chance = DEX / (DEX + 30)

Шанс ухилення використовує ту саму структуру зменшення доходності, що й DR. Повне ухилення уникає всієї шкоди від цього удару. Це робить збірки вампірів з акцентом на DEX відчутно ухильними у грі без порушення балансу.

Зростання статистики на рівень

Стат База/рівень вампіра База/рівень вовкулаки Примітки
STR8 + 1.8/рів8 + 2.0/рівВовкулаки масштабуються трохи сильніше
INT6 + 1.4/рів4 + 0.8/рівВампіри лідирують у магічній силі
DEX5 + 1.2/рів4 + 0.9/рівВампіри більш ухильні
VIT6 + 1.5/рів8 + 2.2/рівВовкулаки більш живучі
LCK4 + 1.0/рів3 + 0.7/рівВампіри частіше б'ють критично

3 Дані про частоту перемог (ціль: 48–52% на фракцію)

Ми відстежуємо частоту перемог фракцій через нічне аналітичне завдання, яке агрегує попередні 7 днів журналів PvP-битв. Дані сегментовані за діапазоном рівнів (1–20, 21–40, 41–60, 61–80), щоб виявити дисбаланси конкретних діапазонів, які загальні підсумки можуть приховати.

Поточні живі дані про частоту перемог із закритої бети (на момент написання девлогу):

Діапазон рівнів Частота перемог вампірів Частота перемог вовкулак Статус
1–2051.2%48.8%В межах цілі
21–4052.8%47.2%Незначна перевага вампірів — моніторинг
41–6049.6%50.4%В межах цілі
61–8053.1%46.9%Позначено для перегляду патча

Дисбаланс у діапазоні рівнів 61–80 зумовлений однією домінуючою збіркою вампіра, що поєднує крадіжку здоров'я вищого рангу з конкретним модифікатором зброї Епічного рівня. Саме цей тип проблем призначений для виявлення та швидкого виправлення конвеєром симуляцій.

ПРИМІТКА ЩОДО ДАНИХ

Дані про частоту перемог є значущими лише при достатніх розмірах вибірки. Ми вимагаємо мінімум 500 PvP-боїв у діапазоні, перш ніж реагувати на числа частоти перемог. Реакція на малі вибірки призводить до надмірної корекції — прокляття балансу живих ігор.

4 Рішення щодо балансу навичок

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

Обмеження крадіжки здоров'я (вампір)

Характерна механіка вампіра — крадіжка здоров'я — відновлення HP на основі завданої шкоди. На ранньому бета-тесті крадіжка здоров'я не мала жорсткого обмеження. Повністю оптимізована збірка могла практично нескінченно витримувати майже будь-який вихід шкоди, роблячи бої з вампірами вищого рангу з крадіжкою здоров'я непереможними для вовкулак.

Виправлення: крадіжка здоров'я тепер обмежена 40% максимального HP відновленого за раунд, незалежно від завданої шкоди. Це зберігає суть — вампіри відчуваються витривалими та загрозливими — при цьому обмежуючи стелю, що робить бої безглуздими для протилежної фракції.

Тривалість лютого вовка (вовкулака)

Лютий вовк — це вміння трансформації вовкулаки, що надає +35% STR, +20% VIT та розсікання (вражає всіх супротивників у груповому контенті) на певний час. Початкова тривалість становила 6 раундів. У максимум 50-раундових боях цього було достатньо, щоб вчасно активований Лютий вовк провів вовкулаку через всю вирішальну фазу будь-якого бою.

Після того, як дані симуляцій показали Лютого вовка в кожній топ-збірці вовкулаки та 57% частоту перемог для збірок, що використовують її оптимально, ми скоротили тривалість до 4 раундів. Наступні симуляції показали 51.3% — в межах цілі.

Інші помітні зміни балансу

  • Тіньовий крок (вампір): Бонус шансу ухилення знижено з +25% до +18% після того, як дані показали, що збірки вампіра-DEX досягають майже недоторканних показників ухилення на рівні 50+.
  • Ватажок зграї (вовкулака): Масштаб кланського бонусу знижено з +3% за члена клану до +2%, щоб запобігти накопичуваній мультиплікативній перевазі великих кланів вовкулак у кланських війнах.
  • Кров'яне прокляття (вампір): Шкода від кровотечі за раунд знижена на 15% — воно давало занадто багато пасивної шкоди у довгих боях, фактично роблячи його обов'язковим вибором для всіх збірок вампіра.

5 Баланс економіки

Зламана економіка завдає шкоди браузерній MMO швидше, ніж будь-який бойовий дисбаланс. Якщо золото надто легко здобути, магазин стає нерелевантним. Якщо воно надто рідкісне, прогресія відчувається покаранням. Ми встановили явні цілі для потоку золота на кожному діапазоні рівнів.

Обмеження доходу від золота

Діапазон рівнів Цільове золото/день (активна гра) Золото/день (лише вхід)
1–20800–1 200200–350
21–402 000–3 500600–900
41–605 000–8 0001 500–2 200
61–8010 000–16 0003 000–4 500

Дія Роботи (доступна кожні 8 годин) забезпечує мінімальний дохід "лише при вході". Активна гра через підземелля, квести та PvP досягає верхнього діапазону. Співвідношення між активним та пасивним доходом навмисно підтримується приблизно 4:1 — активні гравці заробляють значно більше, але пасивні гравці все одно можуть прогресувати.

РИЗИК ЕКОНОМІКИ

Аукціонний будинок є основним вектором спотворення економіки гравцями. Ми щотижня моніторимо тенденції цін аукціону — якщо звичайні матеріали починають торгуватися за 10× від очікуваної вартості, це сигналізує про вузьке місце в таблицях випадіння, яке потребує виправлення.

6 Методологія тестування: 10 000 симульованих битв

Жоден патч балансу не відправляється без проходження через наш конвеєр симуляцій. Симулятор — це окремий Python-скрипт, що використовує точно той самий код бойового рушія, що й виробничий сервер (battle_engine.py) у безголовому режимі, засіяний конфігурованими збірками персонажів.

Для будь-якої запропонованої зміни балансу ми запускаємо:

  1. 10 000 випадкових зіставлень — випадково вибрані збірки з поточної бази даних збірок, для виявлення сукупних ефектів
  2. 1 000 цільових зіставлень — конкретні збірки, найбільш уражені зміною, для виявлення вузько спрямованих надмірних/недостатніх послаблень
  3. 500 зіставлень ендгейму на максимальному рівні — топ-спорядження, топ-навички, щоб переконатися, що зміни середнього рівня не порушили баланс ендгейму

Симуляція виводить розбивку частоти перемог за фракцією, діапазоном рівнів та архетипом збірки. Зміна відправляється лише якщо сукупна частота перемог фракцій залишається в межах 48–52% у всіх діапазонах і жоден архетип збірки не перевищує 60% частоту перемог проти всього поля.

ТЕХНІЧНА ПРИМІТКА

Запуск 11 500 симульованих битв займає приблизно 8 секунд на сучасному ноутбуці. Рушій — чистий Python без I/O — досить швидкий, щоб ми запускали його в CI на кожному PR бекенду для виявлення випадкових регресій балансу від змін коду, не пов'язаних із балансом.

7 FAQ

Чи послаблять патчі балансу збірки, які я вже побудував?

Так — і ми не будемо вибачатися за це. Жива гра, яка відмовляється послаблювати домінуючі збірки, щоб не засмучувати гравців, в кінцевому підсумку має повністю застарілу мету. Те, що ми зобов'язуємося робити — чітко повідомляти про зміни в девлогах (як цей), давати 48-годинне попередження перед виходом патчів та гарантувати, що послаблені збірки залишаються життєздатними, навіть якщо більше не домінуючими.

Чи є формули статистики дійсно остаточними?

Основні формули — шкода, DR, крит, ухилення — стабільні. Коефіцієнти (множник STR 1.5, +50 у формулі DR) можуть змінюватися в міру збору живих даних гравців. Ми розглядаємо формули як архітектуру, а коефіцієнти — як параметри, що можна налаштовувати.

Чи можна грати виключно як підтримка/цілитель у VvW?

Не в традиційному сенсі. Обидві фракції орієнтовані на бій. Однак збірки алхімії вампіра можуть значно інвестувати в навички посилення/ослаблення, що підтримують союзників клану у кланській війні та сценаріях підземелля, виконуючи м'яку роль підтримки без класу цілителя.

Як ви запобігаєте тому, щоб гравці маніпулювали даними про частоту перемог?

Агрегований KPI частоти перемог використовує 7-денні плинні дані, зважені за різницею ELO у бою — бої між рівно підібраними супротивниками рахуються більше, ніж односторонні. Це запобігає тому, щоб координований "фарм смерфів" (одна сторона навмисно програє для маніпуляції своєю статистикою) спотворював дані, на які ми реагуємо.

Чи проходять нові навички, додані в майбутніх патчах, через конвеєр симуляцій?

Завжди. Кожна нова навичка симулюється проти існуючої бази даних збірок на всіх діапазонах рівнів перед відправленням. Нові навички також випускаються з навмисно консервативними рівнями сили та посилюються вгору, якщо дані показують їхню недостатню використаність — набагато легше посилити проігноровану навичку, ніж послабити домінуючу, навколо якої гравці побудували свої збірки.