Skip to content
Egmatic
баланс idle-игрматематика merge-игригровая экономикадизайн инкрементальных игргеймдизайн

Математика idle- и merge-игр: баланс без кода

Баланс idle-игры — две кривые: экспоненциальная цена и линейный доход — и стена, где они сходятся. Формулы, merge-3 против merge-5, настройка в спредшите.

Владислав КовнеровОснователь и разработчик Egmatic23 октября 2026 г.13 мин

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

Сразу оговорка: этот блог принадлежит Egmatic — no-code-редактору 2D-игр в статусе pre-alpha, построенному вокруг слоя, который нужен игре между сборкой и релизом. Математика ниже не привязана к движку: она управляет idle-играми в любом инструменте, и это редкая часть геймдизайна, которую можно целиком подготовить без единой строчки кода.

Короткий ответ

Экономики idle- и merge-игр держатся на паре формул и правиле пересечения:

ЭлементФормулаЧто решает
Цена генератораcost = base × r^ownedКак быстро дорожает каждая следующая покупка
Доход генератораincome = rate × owned × multipliersКак быстро растёт заработок
СтенаЭкспонента обгоняет многочленГде и когда прогресс упрётся
Эффективность слияний3 входа → 1, или 5 → 2Сжигает ли экономика по 3 или по 2.5 предмета на выход
ПрестижСброс ради бонуса с дробной степеньюКак игроки спасаются от стены

В вышедших играх темпы роста на удивление похожи: AdVenture Capitalist умножает цену лимонадного киоска на 1.07 с каждой покупкой, Cookie Clicker поднимает цену постройки в 1.15 раза. Узость этой полосы — секрет Полишинеля жанра: ощущение idle-игры создаётся не смелыми выдумками, а тем, где вы ставите стену, где включаете множитель и где разрешаете сброс.

Две кривые, которые управляют каждой idle-игрой

Каноническую модель изложил Энтони Пекорелла в серии статей «The Math of Idle Games» на Gamedeveloper: он был ведущим продюсером мобильной версии AdVenture Capitalist в Kongregate. Модель — две строки:

  • cost_next = cost_base × rate^owned
  • production_total = production_base × owned × multipliers

Прогоните её на первом генераторе AdVenture Capitalist, лимонадном киоске: базовая цена 4, темп роста 1.07, базовый доход 1.67 в секунду. При десяти киосках одиннадцатый стоит 4 × 1.07^10 ≈ 7.87, а все десять вместе зарабатывают 16.7 в секунду — покупки ощущаются почти бесплатными. Протяните те же две колонки дальше, и характер меняется: у нескольких сотен киосков следующая покупка стоит уже несколько часов ожидания. Ничего не изменилось — просто степень сделала своё дело.

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

  • Множители за вехи. AdVenture Capitalist удваивает выработку генератора, когда куплено 25 и 50 его экземпляров (удвоения стакаются). Каждый такой рывок на время снова забрасывает доход выше цены — внезапное ускорение на круглых числах, которое любят игроки, прописано строкой таблицы, а не случается само.
  • Новые генераторы. Каждый новый генератор сбрасывает счётчик покупок в нуль и открывает дешёвый участок свежей экспоненты. Только что купленный генератор почти сразу обгоняет по доходу все остальные — и это же балансировочное предостережение: если он обгоняет всегда, старые превращаются в декорацию.
  • Цена покупки пачкой. Точная формула цены для покупки сразу n генераторов: cost = base × r^k × (r^n − 1) / (r − 1), где k — уже куплено. Именно эта математика сидит в кнопке «купить максимум».

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

Merge-игры: та же математика, сведённая к одному решению

Merge-игры — это idle-математика с пространственным интерфейсом. Triple Town (Spry Fox, 2010) задала образец merge-3; 2048 в 2014-м сделала merge-2 всеобщим языком; Merge Dragons на запуске в июне 2017-го превратила это в целую сервисную экономику — первый тайтл Gram Games с внутриигровыми покупками, достаточно успешный, чтобы Zynga в мае 2018-го заплатила за студию из 77 человек 250 миллионов долларов наличными. Под драконами прячется одно решение, которое принимает дизайнер:

ПравилоВходов на выходБазовых предметов на предмет 3-го тира
Merge 3 → 1327
Merge 5 → 22.5~15.6

Слияние пяти вместо трёх экономит один предмет из шести — около 17% — и выгода накапливается на каждом звене цепочки. Официальный гайд Merge Dragons прямо объясняет оба правила: три одинаковых предмета дают один более высокого тира, пять дают два. Всё мастерство жанра в основном сводится к терпеливому коплению пятёрок, и место на поле, которое вы оставляете игроку под это копление, — и есть кривая сложности. Числа в системе слияний растут быстро — длина цепочки сама по себе действует как экспонента, — поэтому merge-экономике нужна та же дисциплина кривой цены, что и idle: сколько стоит произвести каждый тир и сколько он приносит, должно пересекаться там, где выбрали вы.

Стены, тайм-гейты и обрыв седьмого дня

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

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

Престиж: клапан сброса давления

Престиж — сбросить всё и сохранить постоянный бонус — популяризовал Cookie Clicker. Работает он сразу на две цели: возвращает игрока на дешёвый участок кривой, но с новой силой, и одновременно стягивает разбежавшуюся валюту к числу, которое человек в состоянии прочитать. Четыре вышедшие игры — четыре настоящие формулы:

ИграФормулаОт чего считаетЧтобы удвоить престиж, заработать
Realm Grinderp = (√(1 + 8·max/10¹²) − 1) / 2Максимум заработка~4× прошлого забега
AdVenture Capitalistp = 150 × √(lifetime/10¹⁵)Заработок за всё время~3–4×
Cookie Clickerp = ∛(lifetime/10¹²)Заработок за всё время~8×
Egg, Inc.Δp = (this_run/10⁶)^0.14Только текущий забег~128× (2⁷)

Степень — рычаг дизайна. Квадратный корень означает, что каждое удвоение валюты престижа требует примерно вчетверо больше заработка; кубический корень Cookie Clicker поднимает планку до восьмикратного; степень 1/7 у Egg, Inc. заставляет каждый забег зарабатывать престиж самостоятельно — и это сходится с двухчасовым оффлайн-капом: прогресс не может опираться на время простоя. Максимум заработка в формуле Realm Grinder добавляет правило, которого нет у остальных: сброс в той же точке, что и всегда, не приносит ничего нового, и заходить каждый забег приходится дальше прежнего. Выберите, какую цену удвоения должны встречать игроки, — и формула определится сама.

Цикл в спредшите: балансировка без кода

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

  1. Перечислите все генераторы по строкам: базовая цена, темп роста, базовый доход.
  2. Добавьте два вычисляемых столбца — «цена следующего» и «суммарный доход при этом количестве» — и протяните их на несколько сотен покупок.
  3. Постройте оба графика. Пересечения — ваши стены; пересчитайте строки между ними, чтобы прочитать расстановку стен сначала в покупках, а потом в секундах при ожидаемом доходе.
  4. Расставьте множители нарочно. Ставьте удвоения (25, 50, 100 куплено) там, где разрыв начинает расстраивать; каждое удвоение — всплеск прогресса, который игрок чувствует.
  5. Прогоните в таблице одну неделю. Складывайте доход по дням и сверяйте с ценами; если лист показывает, что день 7 — плоская линия и купить нечего, обрыв виден заранее — подвиньте стену или добавьте веху.
  6. Выберите престиж из таблицы выше и сверьте цену удвоения с тем, сколько на деле длится забег.
  7. Только теперь зашивайте числа в игру. Настройка уже произошла на этапе дизайна; движок просто исполняет константы.

Поэтому дизайн экономики — настоящая дисциплина без кода: решения здесь — арифметика и чтение графиков. Общая привычка проверять механику до того, как строить вокруг неё игру, работает и здесь: экономика просто механика, чей прототип — спредшит. А раз idle-экономика в итоге — функция сохранённого состояния и метки времени, а не живая симуляция, естественное продолжение — вопрос о том, где это состояние живёт; его клиентская версия — одна из пяти схем в разборе асинхронного мультиплеера без сервера.

Роль Egmatic

Egmatic создаётся ровно под такую работу: вы направляете, оно исполняет, результат — ваш. Экономика, настроенная в спредшите, — это таблица констант и правил, и именно такие вещи наш no-code-редактор с ИИ в основе должен позволять выражать без единого файла кода — рядом со слоем сохранений, синхронизации и выпуска, который нужен готовой игре. Мы честно говорим, что проект в pre-alpha: функции появляются, когда выдерживают проверку.

Если вы прямо сейчас балансируете idle- или merge-экономику, лист ожидания на egmatic.com — место, где вы говорите, что редактор должен взять на себя. Тогда слой выпуска подстроится под игру, которую настроили именно вы, а не под шаблон.

И об одной соседней теме стоит сказать прямо: в idle- и merge-играх числа и есть ощущение. Когда прыгать нечего, ощущение игры и есть кривая темпа; подробности — в статье про game feel и сочность. Сочность тоже важна — хлопок слияния, звук покупки, — но никакая тряска экрана не починит стену, которую никто не поставил.

Ошибки, которые губят баланс

  • Выбирать темп роста на ощупь. Вышедшие игры держатся в пределах 1.07–1.15, и выбор должен сходить с графика, а не из чутья: 1.07 и 1.15 — это разные игры.
  • Делать цены линейными или многочленными. Доход, который тоже линеен, рано или поздно обгоняет их насовсем; игра решается тривиально и умирает от инфляции. Экспонента обязана всегда возвращать первенство.
  • Разрешать свежему генератору доминировать. Если тир n+1 в момент появления перекрывает по доходу все предыдущие, предыдущие — балласт на экране. Размывайте ценность множителями, разными у каждого генератора.
  • Пускать стены на самотёк. Каждое пересечение в таблице — эмоция по расписанию: разметьте их и решите, перед какой поставить множитель, разблокировку или кнопку престижа.
  • Выбирать формулу престижа последней. Цена удвоения (4×, 8×, 128× заработка) задаёт длину каждого забега в игре; выбирайте её на одном экране с кривыми цены.
  • Считать merge-5 бонусным правилом. При 2.5 входа на выход вместо 3 это 17-процентная скидка на всю экономику, накапливающаяся с каждым звеном. Ей место в балансной таблице с первого дня, а не в списке изменений патча.

Заключение

Баланс idle- и merge-игр — не мистика жанра, а две кривые, точка пересечения и правило сброса; все они видны в спредшите ещё до первой строчки кода. Выберите темп роста осознанно, ставьте стены нарочно, тратьте множители там, где график провисает, и подберите степень престижа под нужную длину забега. Игры, которые кажутся щедрыми, никогда не переставали быть экспоненциальными — они просто выбрали, где экспонента кусает. Настройте таблицу до тех пор, пока первая неделя не станет читаться так, как должна ощущаться игра, — и только потом собирайте.

Читайте также