6 месяцев работы
Фигасе, я всё ещё продолжаю развивать свою онлайн игру, которую выпустил в 2010-м. Давайте расскажу что успел сделать за полгода (лонг на 15 минут).
Что за игра?
Witchcraft - это браузерная фэнтези РПГ, сваренная с любовью по бабушкиным рецептам. Я запустил её почти 15 лет назад и с тех пор поддерживаю, развиваю, и пишу про неё собирающие награды лонги.
В этой игре много всего сделано не так как надо, она росла как лопух за баней, и я по мере сил и мозгов стараюсь её всячески улучшить. Иногда получается.
Зачем я это пишу на DTF?
Если честно, я точно не знаю. Возможно, прокрастинирую следующий тикет. А может быть, внутренняя чуйка мне подсказывает что это самый важный пост в моей жизни и с него-то и начнётся моё триумфальное восхождение на неприлично высокую кучу бабла.
Но вероятнее всего, такие посты помогают мне осознать, сколько работы на самом деле проделано. Когда ты каждый день роешь носом землю - некогда оглянуться и оценить масштаб содеянного.
Точка Б
В данный момент моя главная цель - сделать игру пригодной для смартфонов. Нынешний UI деды ковали когда люди в карманах носили ключи и семечки, а не гаджеты за 100к. Отсутствие анимаций и озвучки, меню на треть экрана - все эти олдовские штуки надо вылечить.
Главная проблема текущей версии игры на мобилах - шрифты как в кредитном договоре. Если всё остальное можно было бы навертеть сверху, то эту проблему можно решить только кардинальной переделкой интерфейса. Чем я, собственно, сейчас и занимаюсь.
Новые сезоны
За прошедшие полгода я успел выпустить два сезонных обновления контента - Ритуалы возрождения и Затонувшая крепость (идет прямо сейчас).
Помимо стандартного набора из порядка 30 предметов, которые можно купить в сезонном магазине или получить в награду за сезонные активности, я сделал несколько важных дополнений:
Автоматизировал генерацию скриптов
Раньше приходилось весь контент вносить в движок путём копирования шаблонов и простановки нужных ключей и цифр вручную.
В последнем сезоне я вместо копирования файлов потратил время чтобы написать скрипт, копирующий файлы и подставляющий нужные ключи и цифры везде где надо. На следующий сезон будет в десять раз меньше тупой работы.
Добавил сезонную коллекцию
Теперь в ежедневном сундуке игроки могут получить кусочек коллекции, которая конвертируется в эпик-предмет с годными статами. В первом из двух сезонов эта тема хорошо зашла - и я её развил во втором.
Игроки стали охотнее покупать ключики к сундуку, который бесплатно можно открыть один раз в день.
Делегировал работу над артом
Теперь генерацией и обработкой почти всех картинок сезона занимается специально обученная, очень ответственная художница. В особенности много времени у меня уходило на сборку аватаров, а теперь я вместо этого пишу посты на ДТФ.
Версия для ВК
Аудитория ВК очень похожа на ту, что играет в Witchcraft на моем сайте. И я честно попытался выпустить свою игру в ВК, на десктопе. Сделал интеграцию с API - аутентификацию, платежи, вот это всё. Полностью готов к успеху.
Но на праздник жизни пришла модерация и заявила:
В вашей игре есть скроллинг.
Никогда такого не было чтобы в браузерах на страницах был скроллинг, а у вас вот есть.
Убирайте.
Пытаться что-то объяснять в данном случае - бессмысленно. Без скроллинга действительно будет лучше, тут они правы, но избавиться от него на сотне экранов по щелчку пальцев не выйдет.
Пришлось отложить запуск до момента когда в новом интерфейсе будет реализована хотя бы основная масса экранов. Что там творится в недрах на уровне 20+ - никакая модерация ни на одной площадке никогда не узнает, потому что им начхать.
Бойцы невидимого фронта
Часть изменений, напрямую влияющих на успех игры, вряд ли достойна отдельного упоминания в беседе с игроками. Однако, на случай если вам интересно, как всё устроено под капотом, я всё же упомяну:
Добавил персональные офферы
Заходя в Witchcraft, игрок теперь может увидеть не только глобальные-тотальные распродажи, но и индивидуальные предложения в духе "псс, парниша, не хочешь рубинчиков прикупить?".
Скидка на ценные ресурсы пока невысока, чтобы не перекормить страждущих, однако она приучает игрока к тому, что есть эксклюзивные скидки и предложения "только для вас".
Уменьшение билда
При сборке билда теперь перекодирую всё что возможно в WebP и сжимаю gzip-ом для быстрой раздачи с сервера. Добавил прелоадер для предзагрузки, разбил ассеты на "надо прямо щас" и "будет надо - привезём", сократил время загрузки нового интерфейса втрое. Теперь шустренько всё.
Бета-тест
Вместо отдельного специального сайта для бета-теста, как это было у нас когда-то, я добавил галочку в настройках персонажа, и теперь можно включить и посмотреть новый интерфейс игры на части страниц - алхимии, кузне, экране коллекций, экипировки, и ещё нескольких.
Этот финт ушами уже принёс свои плоды - самые шебутные игроки включили галочку и вовсю строчат фидбэк, по большей части полезный и конструктивный. Ну а у хейтеров, которым всё и всегда не так, теперь есть законный повод изливать желчь и писать в комментариях своё любимое "лучше бы ты делал {любая другая херня} чем это!"
Поменял формулу урона
Тут прям есть о чём рассказать, так что давайте отдельным пунктом.
Формула урона
При запуске очередного Титана - это такое игровое чучело которого все два дня пинают с весёлыми криками - я вдруг решил что надо был наверное мощность противника поменять. Игроки ведь подросли, давно не подтягивал я гайки.
И вдруг выяснилось неприятное:
Моя формула урона - говно.*
Урон противнику считался примерно так:
Урон = Моя атака - защита противника (но не больше 80%).
В этой формуле всё классно, за исключением двух пунктов:
- Защита противника нигде не написана и игрок её не видит. А видит только примерное количество урона, которое он нанесёт противнику. В прошлом титане игрок наносил 100к урона, а в новом - 70к урона. Почему? Обывателю не понять.
- Защита противника зависит от его уровня. Для титана, чтобы он был всем интересен и по зубам, уровень не фиксированный, а подстраивается под уровень игрока который его пинает. Да, это не круто, но это работало.
Прикол в том, что из-за смены мощности оппонента игроки обратили внимание: если прокачивать свой уровень во время битвы с титаном, то уровень титана тоже подрастает вместе с твоим, защита титана растёт - и твой урон по титану ПАДАЕТ.
Сложилась ситуация когда игрок не может понять что ему делать для того, чтобы становиться круче. Ведь игрок ниже него уровнем с такими же статами наносит больше урона чем он. Качаться? Так ведь может вырасти уровень противника - и вот ты вместо 100к делаешь опять 80.
Те, кто больше всего вкидывают в игру, теряют от роста собственной же крутости. Более крутые предметы - не гарантия роста крутости. Нет очевидного смысла покупать и качать новые предметы. А это *очень* плохо для бизнеса.
В итоге я решил формулу поменять на золотой стандарт:
Твой урон = Твоя атака.
Теперь моя игра настоящий, эталонный Pay to win. Как в жизни прям. И даже не пришлось на UE5 переписывать чтоб добиться такой реалистичности. Как это повлияет - посмотрим, релиз этой штуки был всего пару дней назад.
Карта местности
Я уже даже не могу сосчитать сколько раз я пытался прикрутить к игре карту мира. Можно сказать, влажная мечта, которая никак не находит своего идеального воплощения.
Резонный вопрос - нафига?
Правильный ответ: потому что это глубже погружает игрок в сеттинг и создаёт ощущение что мир игры - живой.
Честный ответ: хочу!
У меня импринтинг в фэнтези начался с карты Средиземья на первой странице Хоббита. Фэнтези игра без карты мира - как кошка без хвоста.
В этот раз, как мне кажется, я наиболее близко подошёл к удовлетворению собственной хотелки. Начал с того, что взялся собирать динамическую карту из ассетов, писать скрипты расстановки объектов и вот этого всего. Пришёл к выводу что не найду достаточно одинаковых ассетов в едином стиле. Принялся рисовать сам - вышла какая-то дрянь. Хотел нанять художников - смета чуть не пробила мне лоб.
Потом я вспомнил про Inkarnate. Это такой редактор карт для любителей DnD, весьма насыщенный фичами и с большой коллекцией объектов в едином стиле. А самое главное - их коммерческая лицензия, рассчитанная на нердов-DnDшников, а не прожжённых коммерсантов вроде меня, стоит копейки и позволяет использовать сгенерированные карты как хочешь.
Я поспрашивал на фрилансе чё почём, мне назвали цены от $20 до $600 за кусочек карты размером с ладошку, и сроки от 2 часов до полугода. Чтобы составить впечатление о реально сложности работы я решил сделать хотя бы кусочек карты самостоятельно - и в итоге за 3 дня забабахал весь игровой мир целиком.
Реальный размер карты в пикселях - 7168 x 6144, можно на билборд печатать. В разрешении игры выглядит вот так:
Игрок двигается по квестам от точки до точки, как по рельсам, и выполняет задания. Пока что этих заданий маловато, но теперь их даже интересно будет придумывать и привязывать к объектам на карте.
Для сравнения, в текущей версии игры эти квесты выглядят так, что почти что угодно выглядело бы лучше:
Вместе с интефейсом новая карта смотрится, на мой взгляд, вполне прилично:
Чего я пока не придумал, так это каким образом - и стоит ли вообще - сделать свободное перемещение по карте.
У меня есть идея добавить игровые события, расставленные по карте мира - торговцев, стычки с бандитами, корованы (для ценителей), заначки всякие прикольные с головоломками. Однако как это реализовать в интерфейсе чтобы было понятно и логично - пока не придумывается.
Руна и клановое состязание
В Witchcraft есть система кланов и мест силы, которые кланы отвоёвывают друг у друга. Не буду погружаться в тонкости, но если кратко: там дофига проблем и главная из них - то, что игроки не дерутся за места силы честно, а договариваются кто кому сольёт, чтобы все оставались при своём и тихонько фармили на битвах.
Меня эта ситуация бесит до трясучки, но в одночасье её не решить. Нельзя заставить людей воевать когда они уже научились договариваться и получать желаемое без усилий, не изменив кардинально правила игры. А смена правил - это всегда жёсткая просадка по кассе, возмущённое хлопанье дверьми от особо чувствительных и потеря части игроков. Я так уже делал и мне не понравилось.
Поэтому я придумал новую штуку - сделать Клановые состязания в рамках уже хорошо работающих эвентов. Вместо того, чтобы ломать уже работающее, я добавляю новую игровую механику.
Теперь в Титанах можно не просто пинать чучело для получения личной награды, но и пинать его вместе с соклановцами. Кланы при старте битвы разбиваются на пары и какой клан больше титану напинает - тот и победил. Крутышам даём дополнительно уникальный предмет и заряжаем Руну Нексуса, а сосункам - дополнительных наград не даём, остаются с тем что заработали с титана персонально.
Главная фишка тут - это Руна Нексуса клана. Она позволяет продлить владение местом силы клана без битвы за него или вообще захватить новое место силы, чего нельзя сделать иным способом. И получается что вместо договорной битвы за место силы кланам приходится реально пыжиться и гнать нос к носу, кто больше титану наваляет. Договариваться некогда.
Игроки поначалу говнились что они на это не подписывались и ваще я их заставляю прям вот жилы рвать чтоб победить, и можно ли от этого всего отказаться. Однако по результатам первого эвента стало вдруг понятно, что в принципе они так-то не против побороться, и ресурсы готовы тратить, и время. Титан с этим клановым состязанием собрал побольше народу и побольше состриг расходников, чем любой из трёх предыдущих.
Я продолжу развивать эту тему и добавлять зарядку Рун в другие эвенты. И возможно запилю отдельный специальный эвент для битвы за руны, по аналогии с битвами за места силы, но без договорняков.
Новые экраны
Помимо уже перечисленных доработок, я успел переделать ряд ключевых экранов, нужных для запуска мобильного интерфейса. Они все входят в набор функционала, с которого начинается знакомство с игрой.
Давайте просто покажу в формате было-стало, там нечего рассусоливать, это просто рефакторинг UI.
Диалог информации о предмете:
Экран навыков:
Магазин рубинов:
Ачивки и медали:
Левел-ап:
Коллекции:
Диалог награды:
План-капкан
Для того, чтобы начать тестировать новый интерфейс на живых пользователях, мне осталось по сути немного:
- задизайнить главную страницу и страницу ежедневного сундука
- забалансить сложность противников для новой боёвки - я меняю матч-3 на авто-баттлер по всей игре, сейчас он только в титанах и клановых боях
- встроить старые страницы в новый UI через iframe - сейчас оно сделано наоборот, новый интерфейс встроен в старый
- собрать туториал для новичков
Я хочу это всё сделать за ближайшие месяц-полтора, чтобы уже в июне запустить таки игру в ВК и использовать эту платформу как плацдарм для А/Б тестов и улучшения показателей игры.
Надеюсь, вам пришёлся по вкусу этот экскурс за кулисы
Поиграть в Witchcraft можно тут.
Вопросы-пожелания-предложения - велкам в комментарии или в личку. Негатив оставьте при себе, у меня есть свой. :) Люблю, целую, всем котиков.