Филлинг We Are Warriors
Больше интересного про ГК - в моём тг-канале:
>>>> Геймдев Бомж <<<< Спасибо за подписку!
Отличный чат по разработке гипер-казуальных игр: https://t.me/hyper_casual
(Спасибо Анатолию за рекламу и статистику)
Статья написана совместно с Александром Кузнецовым, спасибо за помощь!
О чём речь
Есть такая игра, We are Warriors, от авторов EatVenture.
С виду очень простая и поначалу многим кажется скучной. По факту серьезно затягивает и ревенью у неё тоже серьёзный:
Немного доп.инфы от разработчика:
Сколько времени заняла разработка? - 3 недели для изначального прототипа и первого теста. 5 месяцев до полного релиза.
Сколько людей работало над игрой? - 2 разработчика, 1 художник и 1 геймдизайнер
Какие дальнейшие планы по игре? - Выпускать регулярные обновления
Почему эта скучная игра столько зарабатывает? В этой статье я опишу первую сессию и покажу, какие эмоции она вызывает.
Таблица филлинга
Тактика имеет значение
Если смотреть, сколько времени занимал каждый трай, и сколько денег за трай игрок зарабатывал, то никакой плавной зависимости от прокачки не наблюдается. Жёлтая линия заработка скачет туда-сюда от трая к траю, хотя никакого рандома в поведении врагов нет.
в котором они спавнятся во время трая.
Видно, что до последней волны с 6-ю динозаврами я дошёл уже на 9м трае, тогда как победить их смог только на 25м.
Зелёные горизонтальные полоски - сколько времени я продержался на конкретном трае.
После 17го трая мне хватило на Эволюцию (Evolve) - все прокачки сбросились, купленные юниты сбросились, золото сбросилось:
Зато чувак с дубиной превратился в чувака с вилами, у которого в 2.6 раз больше ДПС и в 3.6 раз больше ХП.После чего я за несколько траев снова дошёл до последней волны, купил дальнобойного чела, и ещё через три трая всех победил.
Выводы 1
Крутые моменты, которые я себе записал:
- Ручная подстройка мелочей в балансе:
- Твой самый слабый юнит на 0.01% сильнее вражеского (на остальных юнитов это правило не распространяется)
- Камнеметатель умирает от одного удара милишника, но ему хватает 0.01 сек, чтобы успеть его закидать издалека.
- При первом трае тебе не хватает 0.01 сек, чтобы заспавнить юнита и спасти базу.
- Тебе не показывают окошко, сколько ты заработал за трай, пока ты не заработаешь серьезную сумму и будешь готов нажать на х2. Правило действует до первого показа окна, потом оно появляется, если заработал хоть что-то.
- Тебе перестают давать возможность посмотреть ревард в начале трая, чтобы ты почувствовал неудовлетворение и желание повторить то чувство, когда твоя толпа всех выносит. Для этого придётся пофармить и посмотреть побольше ревардов на х2.
- Ты понимаешь, что спавнишь юнитов не идеально. В следующем трае заспавнишь получше.
- У тебя есть мнимый выбор, что прокачивать, но вторая прокачка, по сути, бесполезна. В итоге выбор есть, а муки выбора нет.
- Ты не можешь купить софтвалюту. Возникла мысль, что сейчас никто не пытается развести меня на деньги, поэтому не грех и пофармить.
Во второй части статьи я прикину, как с нуля считают баланс для такой игры, не до конца, но хотя бы первый этап.
Часть 2 - Расчёт баланса
Как это балансить?
Чтобы забалансить такую игру, придётся делать симуляцию геймплея, чтобы можно быстро рассчитывать, какой прогресс будет через N часов.
Но для симуляции всё равно нужен какой-то изначальный баланс, так что расчехляем Эксель!
Коэффициент скила
По графику результатов за каждый трай видно, что скилл (умение вовремя спавнить правильных юнитов) существенно влияет на результат.
Давайте посмотрим, насколько.
Простой способ, попробовал где то в середине прокачки:
Важно ещё не просто спавнить танков перед дальнобоями, но и не давать замесу случаться близко к вражеской базе. Если замес вплотную к базе, твои юниты переключаются на уничтожение базы, и вражеские дальнобои расстреливают твоё войско не отходя со спавна.
Получается, успех зависит от прокачки процентов на 60-70, примем что коэф-т скила = 0.65 (использую эту инфу позже)
Игра подначивает тебя пробовать трай за траем, такой Clash Royale на минималках. В каком-нибудь Арчеро ты можешь объяснить свои неудачи, что ты просто дед без реакции. В этой игре геймплей очень неспешный, так что отговорок и фрустрации нет.
Настраиваем волны мобов
Время на все волны должно быть полторы минуты.
Мощность волн не должна постоянно расти, а то будет скучно, должны быть и лёгкие волны.
Настраиваем характеристики юнитов, чтобы между ними чувствовалась разница:
Не умею дизассемблить апк-шки и вытаскивать баланс, прикинул поэтому характеристики мобов по видео:
Важный момент: юниты наносят другим юнитам один урон, а базе - другой. Сделано, видимо, чтобы база не уничтожалась слишком быстро.
У нас есть один главный параметр:
Враги нападают волнами, характеристики у вражеских юнитов такие же, как у наших.
Получается простой KPI для баланса:
Если в числах, то это 153 мяса за 1:50 сек, т.е. 1.39 мяса в секунду будет достаточно для победы тупым копированием волн противника. Умножаем на коэффициент скила 0.65, получаем 0.9 мяса в сек.
// Проверка
Прошёл первый этап ещё раз, не делая Эволв, и у меня получилось победить как раз при 0.92 мяса в секунду.
Но затем я опять несколько раз проиграл) На 1 мяса в сек. побеждал уже более-менее стабильно.
Теперь нам надо настроить стоимость и количество прокачек, а также прикинуть, сколько в принципе уйдёт времени на прохождение.
Наши вводные на основе наших хотелок:
- Мин. и макс. продолжительность трая (30 и 130 сек)
- Скорость производства мяса, при которой можно будет пройти уровень
(1 мясо в сек)
- Начальная цена прокачки (8 мяса)
- Шаг прокачки (0.02 мяса в сек)
Что нам надо найти:
- По какому закону должна расти стоимость прокачки?
- Сколько времени необходимо потратить игроку для прохождения 1 стейджа?
Находим на изи число уровней прокачки:
0.16+0.02*x=1
x=(1-0.16)/0.02=42 раза надо нажать на кнопку “Upgrade”
Находим формулу увеличения стоимости прокачки:
- Знаем, что в таких играх обычно применяют формулу с экспонентой вида y=e^(kx+b)
- Теперь знаем количество прокачек (42)
- Если подсматриваете баланс в чужой игре, можно пользоваться этим сайтом:
выставляешь точки, и он по ним аппроксимирует кривую нужного типа.
А потом уже подгоняешь в Экселе, довольно быстро получается:
- Если делаешь с нуля, просто прикидываешь, чтобы цены за прокачку были разумные.
Если для одной прокачки надо фармить 50 траев - баланс туговат). У нас финальная прокачка стоит 7к, это 8-10 траев, норм. - После подгонки в Экселе коэффициентов k и b, (чтобы сумма прокачек была как в оригинале)
Получилась формула y=e^(1,94x+1,64)
Если вам интересно почитать про экспоненциальные функции, то вот классная статья на GDCuffs
Находим число монет за весь 1й стейдж:
- В нашей упрощенной модели игрок накапливает до последней прокачки и одерживает победу
Следовательно, за все траи он заработает ровно столько, сколько в сумме стоят все прокачки, 43977 золота.
Находим число траев, и сколько игрок потратит в итоге времени:
- В реальной игре заработок игрока за трай - скачущая жёлтая линия.
Продолжительность трая так же скачет. - Но в нашей упрощенной модели длительность трая растёт линейно, так же как и заработок:
Красная линия на графике:
- Площадь этого треугольника - это сколько игрок заработает за весь стейдж, это мы уже рассчитали, 43977 золота.
- Зная максимальный заработок за трай (1000), находим сколько траев в итоге уйдёт на прохождение:
Получается, на всё потребуется 88 траев
Находим время, которое игроку придётся на эти траи потратить:
Суммарная продолжительность всех траев, это площадь прямоугольной трапеции, где:
левая сторона - минимальное время трая (30сек),
правая сторона - максимальное время трая (130сек),
основание - количество траев (88).
Итого, общее время на прохождение 1го стейджа = (30*88)+(130*88/2) = 8360 секунд = 2.3 часа
Думаю, это хорошая метрика, что все реварды в совокупности должны ускорять прогресс где то в 2.5 раз.
Как балансить дальше:
- Дальнейший фарм после эволва никакого смысла не несёт - прогресс при эволве сбрасывается.
- Получается, единственно верная тактика - копить на эволв и сразу его делать. После чего можно перепроходить старые уровни и фармить золото там.
- Получается, мы с каждым эволвом повышаем сложность врагов, и компенсируем это добавлением перманентных улучшалок, которые постепенно копятся и не сбрасываются.
- Дальше в игре так же добавляются скилы, они вносят небольшое разнообразие, но по ощущениям не особо влияют на баланс.
- В общем, конечно, не просто балансить, но в этой игре хотя бы виднеется дно, если делать анализ, как её считать.
Можно анализировать и учиться.
Выводы 2
- Чтобы упростить написание баланса, можно просто ввести “коэффициент скила” для расчётов.
- Реварды в совокупности должны ускорять прогресс где то в 2.5 раз.
- Приятно зачищать старые уровни после Эволва
Больше интересного в моём тг-канале: >>>> Геймдев Бомж <<<< Спасибо за подписку!
Отличный чат по разработке гипер-казуальных игр: https://t.me/hyper_casualНаписать мне в лс - @belchak