Прогрессия и кривые опыта

Проектируем рост персонажа: уровни, опыт и форму кривой, по которой растёт сила.

Прогрессия — ощущение роста: как игрок становится сильнее, открывает новое и видит результат вложенного времени.

Зачем нужна прогрессия

Прогрессия отвечает на вопрос «что я получу, если продолжу играть?». Уровни, новые умения, лучшее снаряжение — всё это превращает время в ощутимый результат. Без прогрессии многие игры быстро надоедают: core loop приятен, но непонятно, ради чего его повторять. RPG целиком построены на прогрессии.

Под прогрессией лежит фундаментальный психологический механизм — чувство компетентности. Людям приятно становиться лучше, и игры дают это ощущение в концентрированной, гарантированной форме: в реальной жизни рост даётся годами и неочевиден, а в игре полоска XP заполняется на глазах, и каждый уровень — материальное «я стал сильнее». Прогрессия превращает усилие в видимый, измеримый, неотъемлемый результат — и именно это делает её таким мощным крючком удержания. Игрок продолжает не только ради геймплея, но и ради ощущения, что время потрачено не зря и что-то накапливается.

Полезно различать два слоя прогрессии. Прогрессия персонажа — то, что растёт внутри игры: уровни, экипировка, открытые зоны. Прогрессия игрока — рост его собственного мастерства: он реально лучше целится, лучше читает поведение врага, лучше планирует. Лучшие игры дают оба слоя. В Dark Souls прогрессия персонажа умеренная, а главный рост — это рост навыка игрока: вернувшись к раннему боссу, вы побеждаете не потому, что прокачались, а потому, что научились. В гриндовых RPG, наоборот, перекошен слой персонажа, и игрок «побеждает временем», а не умением. Когда прогрессия персонажа полностью заменяет прогрессию игрока, геймплей вырождается в ожидание нужного уровня.

Кривые опыта

Сколько XP нужно на каждый уровень? Форма этой зависимости — кривая опыта — задаёт темп игры. Три базовых типа:

  • Линейная — каждый уровень требует одинаково (100, 200, 300...). Рост ровный, но поздние уровни берутся слишком легко.
  • Экспоненциальная — каждый следующий заметно дороже (100, 200, 400, 800...). Поздние уровни — серьёзное достижение, но есть риск гринда.
  • Степенная — золотая середина (растёт быстрее линейной, мягче экспоненты).

Как работает под капотом: считаем кривую

Сравним, как растёт «цена» уровня для линейной и экспоненциальной кривых.

print("Ур | Линейная | Экспонента")
for level in range(1, 8):
    linear = level * 100
    exp = int(100 * (1.6 ** (level - 1)))
    print(f"{level:2} | {linear:8} | {exp:8}")

Вывод:

Ур | Линейная | Экспонента
 1 |      100 |      100
 2 |      200 |      160
 3 |      300 |      256
 4 |      400 |      409
 5 |      500 |      655
 6 |      600 |     1048
 7 |      700 |     1677

Видно: сначала экспонента даже легче, но к 7 уровню требует в 2.4 раза больше, чем линейная. Так дизайнер растягивает поздние уровни, чтобы они оставались целью на десятки часов. Подбор основания (тут 1.6) — тонкая настройка: 1.2 даст пологий рост, 2.0 — крутой гринд.

Но «сколько XP нужно» — лишь половина уравнения. Темп прогрессии определяется отношением кривой цены уровня к скорости притока XP. Если враги дают всё больше опыта по мере прокачки, крутая кривая цены может ощущаться ровной; если приток постоянный, а цена растёт — каждый уровень даётся дольше предыдущего. Посчитаем именно это: сколько боёв нужно на уровень, если враг даёт фиксированные 50 XP, а цена уровня растёт по той же экспоненте.

xp_per_fight = 50
print("Ур | Нужно XP | Боёв на уровень")
for level in range(1, 8):
    need = int(100 * (1.6 ** (level - 1)))
    fights = -(-need // xp_per_fight)   # округление вверх
    print(f"{level:2} | {need:8} | {fights:3}")

Вывод:

Ур | Нужно XP | Боёв на уровень
 1 |      100 |   2
 2 |      160 |   4
 3 |      256 |   6
 4 |      409 |   9
 5 |      655 |  14
 6 |     1048 |  21
 7 |     1677 |  34

Вот где экспонента превращается в гринд: первый уровень — два боя, седьмой — уже тридцать четыре. Если ничего не менять, к десятому уровню игрок будет убивать сотни одинаковых врагов ради одной полоски. Поэтому крутую кривую цены почти всегда уравновешивают растущим притоком: новые зоны дают больше XP за бой, квесты выдают крупные порции, а старые враги перестают приносить опыт вовсе. Кривая прогрессии — это всегда баланс двух потоков, а не одна формула, и здесь она напрямую смыкается с экономикой ресурсов из прошлого урока.

Прогрессия силы vs прогрессия возможностей

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

У этих видов разная судьба во времени. Прогрессия силы линейна и быстро приедается: десятое «+5% урона» ощущается слабее первого, потому что мозг воспринимает изменения относительно, а не абсолютно (то же, что инфляция в экономике — числа растут, ценность каждого падает). Прогрессия возможностей, наоборот, даёт качественные скачки: получив крюк-кошку, игрок открывает не «больше того же», а целый новый способ взаимодействия с миром, и каждое такое открытие — отдельное событие. Поэтому в играх с долгой прогрессией силу обычно перемежают возможностями: чистый рост чисел нужен, чтобы давать частые мелкие награды между редкими крупными разблокировками.

ТипЧто меняетсяПример
Силачисла (урон, HP)+10% урона
Возможностиновые действиядвойной прыжок

Метапрогрессия и «горизонтальный» рост

Отдельно стоит метапрогрессия — рост, который сохраняется между забегами в играх со смертью и перезапуском. В Hades каждый забег начинается с нуля, но между ними копятся постоянные улучшения, новые открытия и сюжет — так игра остаётся честным roguelike, но не наказывает за неудачу полностью. Метапрогрессия решает классическую проблему roguelike: «я проиграл и потерял всё» превращается в «я проиграл, но что-то унёс с собой», что резко смягчает фрустрацию.

Есть и горизонтальная прогрессия — рост не «вверх» (сильнее), а «вширь» (больше вариантов). Открытие нового класса, билда, стиля игры не делает персонажа мощнее, но даёт свежий опыт и реиграбельность. Горизонтальная прогрессия особенно ценна в долгоживущих и соревновательных играх: она даёт чувство роста, не ломая баланс инфляцией силы. Игрок, открывший десятого героя, не сильнее новичка, но у него больше выбора — а выбор, как мы помним, и есть сердце геймплея.

Частые ошибки

Гринд-стена. Слишком крутая экспонента (как показал расчёт боёв) превращает прогрессию в нудную работу, где уровень берётся часами однообразного фарма.

Только числа. Если рост — лишь увеличение цифр без новых возможностей, он быстро перестаёт радовать. +5% урона не ощущается как достижение, особенно десятое подряд.

Прогрессия вместо мастерства. Если игра позволяет «победить уровнем» любую сложность, исчезает рост игрока — остаётся только ожидание нужной цифры, и геймплей вырождается в фарм.

Итог

  • Прогрессия превращает время в ощутимый результат, даёт чувство компетентности и цель повторять core loop.
  • Темп задаёт не одна кривая цены, а её отношение к притоку XP; крутую кривую уравновешивают растущим притоком, иначе она вырождается в гринд.
  • Прогрессия возможностей (новые действия) даёт качественные скачки и сильнее простого роста чисел; метапрогрессия и горизонтальный рост расширяют опыт, не ломая баланс.
Проверьте себя
1. Чем экспоненциальная кривая опыта отличается от линейной?
AОна всегда легче
BКаждый следующий уровень дорожает заметно сильнее, растягивая поздний прогресс
CОна не зависит от уровня
DОна применяется только в шутерах
2. Почему прогрессия возможностей сильнее прогрессии силы?
AЕё проще считать
BНовые действия меняют то, как игрок играет, а не только числа
CОна дешевле в разработке
DОна не требует баланса