Экономика MMORPG в Telegram без pay-to-win: витрина на пять вещей, пропуск за 350 звёзд и запрет, вшитый в код
Я делаю EclipseFall, MMORPG внутри Telegram, и год назад решил за себя главный вопрос экономики: за реальные деньги в игре нельзя купить силу. В прошлом лонге я разбирал, как в этой MMORPG бой считает сервер и зачем я записал 146 эталонных боёв. Сегодня про деньги: что стоит на витрине, как этот запрет держится кодом и во что мне обошлась собственная честность.
Запрет на продажу силы записан типом данных
Обещание «мы не продаём преимущество» стоит ровно столько, сколько стоит слово разработчика. Я себе не верю, поэтому запрет живёт в коде.
В файле каталога монетизации есть перечисление типов товара, и в нём три значения: косметика, удобство, доступ к платной ленте пропуска. Категорий вроде «характеристики», «снаряжение», «усиление» там просто нет. Чтобы продать силу, мне придётся сначала дописать новый тип в это перечисление, а потом объяснить самому себе, зачем я это делаю. Тест рядом проверяет состав перечисления и падает, если в наградах пропуска заведутся поля со статами.
То же самое и в других местах. Награды за приглашённых друзей — только косметика, золота и характеристик там нет по построению. Апгрейд предмета за золото жёстко упирается в потолок уровня вещи, поэтому голд-синк не умеет продавать силу выше этого потолка. Даже эффект крита, который продаётся за звёзды, отдаёт наружу только css-классы: чисел в этом модуле нет, взять их оттуда негде.
Что стоит на витрине
Пять предметов. Титул «Сломивший Тишину» — 60 звёзд, рамка «Затмение» — 75, эффект «Золочёный удар» — 100, рамка «Дыхание Бездны» — 120, Плащ Аэрнгарда — 150.
Отдельно сезонный пропуск за 350 звёзд: 12 ступеней, у каждой бесплатная награда и премиальная. В премиальной ленте девять косметик и три денежные выдачи, в бесплатной — золото, знаки доблести и рамка на последней ступени.
Цену задаёт сервер. Клиент присылает только код товара, сервер сверяет его с каталогом и берёт стоимость оттуда, поэтому подставить свою цену в запрос бесполезно.
Два товара, которые не делали ровно ничего
В августе я гонял поиск по коду на предмет «кто читает эти коды товаров» и нашёл, что два кода из каталога не читает никто. Эффект крита за 100 звёзд и слот пресета ротации за 90 звёзд стояли на витрине с картинками, продавались, и в игре после покупки не происходило ничего.
Дальше было два решения. Эффект крита я сделал: теперь он надевается как рамка, красит только собственные криты игрока и стал четвёртым косметическим слотом. Слот пресета ротации снял с витрины совсем, и не только потому, что он не работал. Он продавал удобство системы, которой новичок ещё не пользуется, то есть был непонятным товаром для того, кто мог бы его купить.
Главное последствие этой истории — новый тест. Он берёт каждый код из каталога и ищет его потребителя в игровом коде; кода без потребителя достаточно, чтобы прогон покраснел. До него полсотни тестов проверяли, что каталог согласован сам с собой, и такой дефект пройти мимо них мог свободно.
Проверка живым проходом по игре нашла ещё одну вещь, которой тесты не видели. Условий «есть ли игроку что менять во внешности» оказалось два: одно у кнопки-входа, другое у самого раздела. Новый слот я дописал только в одно, и у игрока с единственным купленным эффектом кнопка гасла. Тесты читали исходник, обе строки были на месте и говорили разное.
Пропуск пришлось пересобрать после замера
Сезонный пропуск я собрал раньше, чем научился проверять его числами. Когда дошли руки посчитать, картина получилась такая: все денежные награды платной ленты за весь сезон давали 1200 золота, то есть примерно одно убийство обычного босса на максимальном уровне, и 19 знаков доблести — восемь процентов стоимости одной вещи у торговца. Двенадцать наград, из которых заметна была одна.
Хуже всего, что суммы были круглыми и ни из чего не выводились. Это не ошибка расчёта, расчёта не было вовсе.
Пересобрал в три хода. Знаки доблести убрал с платной ленты целиком: это единственная валюта в игре, которая покупает силу, и в платном месте она вредна в любой дозе. Денежных выдач стало три вместо шести, и все они переехали в начало ленты, потому что золото тратится на прокачке, а к последним ступеням игрок уже на максимальном уровне, где золоту почти некуда деваться. И главное: каждая сумма теперь равна ровно одному рероллу вторичных характеристик своего этапа — 560, 1600 и 3480 золота. Реролл в игре единственный повторяемый сток золота, значит награда всегда во что-то превращается. Равенство суммы и формулы стока держит тест, поэтому разойтись молча они больше не смогут.
Косметик в ленте стало девять вместо пяти за тот же арт. Титулы и боевые эффекты не стоят ни одной нарисованной картинки, рамка стоит одну, облик героя — шестнадцать.
Партнёрская программа Telegram: 20% на 12 месяцев
С конца 2024 года владелец мини-приложения может завести в Telegram партнёрскую программу, и тогда владельцы каналов видят её в списке у себя в настройках, отсортированную по размеру комиссии и сроку. Приведённый канал получает долю от звёзд, которые потратил приведённый им игрок.
Я включил 29 августа: 20 процентов, срок 12 месяцев. Параметры Telegram разрешает потом только увеличивать, поэтому стартовать имело смысл консервативно.
Работает это пока никак, и причина арифметическая. Комиссия платится с потраченных звёзд, а тратить их у меня пока некому: игроков в игре десятки. Владельцу канала в списке программ не видно причин нас брать, потому что заработать не с чего.
Своя рефералка игрок-игрок буксовала по похожей причине, только там я сам себе устроил ловушку. Награда за приглашённого засчитывалась, когда тот доберётся до пятого уровня, а при нулевом возврате в первый день до пятого уровня не доходил никто. Порог переехал на первый завершённый бой приглашённого и уехал в прод в начале сентября.
Честные цифры
Живых игроков в базе 23. Девятнадцать создали героя, одиннадцать дошли до боя, пятеро возвращались на следующий день.
При таких числах разговор об экономике выглядит преждевременным, и это правда. Но выбор способа продавать делается один раз и потом врастает в дизайн: система, где сила продаётся за деньги, требует, чтобы силу было куда продавать, и под это приходится перестраивать всю выдачу наград. Я предпочёл закрыть себе эту дверь, пока стоимость закрытия равна нулю.
Проверить, чего стоит такая экономика, я смогу только на потоке игроков, которого пока нет. Поэтому ближайшая задача у меня про возврат на второй день, и следующий отчёт будет о нём.
Игра работает внутри Telegram, ставить ничего не нужно: открыть EclipseFall. Девлог с разбором таких находок я пишу в канале: t.me/eclipsefall_game