6 месяцев работы

Фигасе, я всё ещё продолжаю развивать свою онлайн игру, которую выпустил в 2010-м. Давайте расскажу что успел сделать за полгода (лонг на 15 минут).

Что за игра?

Witchcraft - это браузерная фэнтези РПГ, сваренная с любовью по бабушкиным рецептам. Я запустил её почти 15 лет назад и с тех пор поддерживаю, развиваю, и пишу про неё собирающие награды лонги.

Замешано на советской соде, шоколаде Алёнка и раннем Леонтьеве
Замешано на советской соде, шоколаде Алёнка и раннем Леонтьеве

В этой игре много всего сделано не так как надо, она росла как лопух за баней, и я по мере сил и мозгов стараюсь её всячески улучшить. Иногда получается.

Зачем я это пишу на DTF?

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

Сегодня полдня сгорело на написание этой заметки. Давайте погреемся у огня.
Сегодня полдня сгорело на написание этой заметки. Давайте погреемся у огня.

Но вероятнее всего, такие посты помогают мне осознать, сколько работы на самом деле проделано. Когда ты каждый день роешь носом землю - некогда оглянуться и оценить масштаб содеянного.

Точка Б

В данный момент моя главная цель - сделать игру пригодной для смартфонов. Нынешний UI деды ковали когда люди в карманах носили ключи и семечки, а не гаджеты за 100к. Отсутствие анимаций и озвучки, меню на треть экрана - все эти олдовские штуки надо вылечить.

Примерно так играет в Witchcraft на своем смартфоне мой эталонный 55-летний игрок.
Примерно так играет в Witchcraft на своем смартфоне мой эталонный 55-летний игрок.

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

Новые сезоны

За прошедшие полгода я успел выпустить два сезонных обновления контента - Ритуалы возрождения и Затонувшая крепость (идет прямо сейчас).

Слава роботам за годные маркетинговые картинки!
Слава роботам за годные маркетинговые картинки!

Помимо стандартного набора из порядка 30 предметов, которые можно купить в сезонном магазине или получить в награду за сезонные активности, я сделал несколько важных дополнений:

Автоматизировал генерацию скриптов

Раньше приходилось весь контент вносить в движок путём копирования шаблонов и простановки нужных ключей и цифр вручную.

Примерно вот столько разных шаблонов мне нужно скопировать при каждом сезонном апдейте. И это только предметы. А ещё столько же для эвентов и прочей солянки.
Примерно вот столько разных шаблонов мне нужно скопировать при каждом сезонном апдейте. И это только предметы. А ещё столько же для эвентов и прочей солянки.

В последнем сезоне я вместо копирования файлов потратил время чтобы написать скрипт, копирующий файлы и подставляющий нужные ключи и цифры везде где надо. На следующий сезон будет в десять раз меньше тупой работы.

Добавил сезонную коллекцию

Теперь в ежедневном сундуке игроки могут получить кусочек коллекции, которая конвертируется в эпик-предмет с годными статами. В первом из двух сезонов эта тема хорошо зашла - и я её развил во втором.

Правда, найти эту коллекцию среди сотни других - та ещё задачка.
Правда, найти эту коллекцию среди сотни других - та ещё задачка.

Игроки стали охотнее покупать ключики к сундуку, который бесплатно можно открыть один раз в день.

Делегировал работу над артом

Теперь генерацией и обработкой почти всех картинок сезона занимается специально обученная, очень ответственная художница. В особенности много времени у меня уходило на сборку аватаров, а теперь я вместо этого пишу посты на ДТФ.

6 месяцев работы

Версия для ВК

Аудитория ВК очень похожа на ту, что играет в Witchcraft на моем сайте. И я честно попытался выпустить свою игру в ВК, на десктопе. Сделал интеграцию с API - аутентификацию, платежи, вот это всё. Полностью готов к успеху.

Но на праздник жизни пришла модерация и заявила:

В вашей игре есть скроллинг.
Никогда такого не было чтобы в браузерах на страницах был скроллинг, а у вас вот есть.
Убирайте.

Искренне ваша, модерация ВК

Пытаться что-то объяснять в данном случае - бессмысленно. Без скроллинга действительно будет лучше, тут они правы, но избавиться от него на сотне экранов по щелчку пальцев не выйдет.

Не знаю какого лешего они докопались, всё влезает. Может, не умеют браузер на весь экран разворачивать?
Не знаю какого лешего они докопались, всё влезает. Может, не умеют браузер на весь экран разворачивать?

Пришлось отложить запуск до момента когда в новом интерфейсе будет реализована хотя бы основная масса экранов. Что там творится в недрах на уровне 20+ - никакая модерация ни на одной площадке никогда не узнает, потому что им начхать.

Бойцы невидимого фронта

Часть изменений, напрямую влияющих на успех игры, вряд ли достойна отдельного упоминания в беседе с игроками. Однако, на случай если вам интересно, как всё устроено под капотом, я всё же упомяну:

Добавил персональные офферы

Заходя в Witchcraft, игрок теперь может увидеть не только глобальные-тотальные распродажи, но и индивидуальные предложения в духе "псс, парниша, не хочешь рубинчиков прикупить?".

Сделка века! Доступно всего 12 часов, решать надо быстро.
Сделка века! Доступно всего 12 часов, решать надо быстро.

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

Уменьшение билда

При сборке билда теперь перекодирую всё что возможно в WebP и сжимаю gzip-ом для быстрой раздачи с сервера. Добавил прелоадер для предзагрузки, разбил ассеты на "надо прямо щас" и "будет надо - привезём", сократил время загрузки нового интерфейса втрое. Теперь шустренько всё.

Бета-тест

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

Этот финт ушами уже принёс свои плоды - самые шебутные игроки включили галочку и вовсю строчат фидбэк, по большей части полезный и конструктивный. Ну а у хейтеров, которым всё и всегда не так, теперь есть законный повод изливать желчь и писать в комментариях своё любимое "лучше бы ты делал {любая другая херня} чем это!"

Поменял формулу урона

Тут прям есть о чём рассказать, так что давайте отдельным пунктом.

Формула урона

При запуске очередного Титана - это такое игровое чучело которого все два дня пинают с весёлыми криками - я вдруг решил что надо был наверное мощность противника поменять. Игроки ведь подросли, давно не подтягивал я гайки.

Давать по щщам мерзкому кракену - любимейшее развлечение игроков Witchcraft. Они его ждут как второго Рождества.
Давать по щщам мерзкому кракену - любимейшее развлечение игроков Witchcraft. Они его ждут как второго Рождества.

И вдруг выяснилось неприятное:

Моя формула урона - говно.*

* согласно результатам независимых исследований

Урон противнику считался примерно так:
Урон = Моя атака - защита противника (но не больше 80%).

В этой формуле всё классно, за исключением двух пунктов:

  • Защита противника нигде не написана и игрок её не видит. А видит только примерное количество урона, которое он нанесёт противнику. В прошлом титане игрок наносил 100к урона, а в новом - 70к урона. Почему? Обывателю не понять.

  • Защита противника зависит от его уровня. Для титана, чтобы он был всем интересен и по зубам, уровень не фиксированный, а подстраивается под уровень игрока который его пинает. Да, это не круто, но это работало.

    Прикол в том, что из-за смены мощности оппонента игроки обратили внимание: если прокачивать свой уровень во время битвы с титаном, то уровень титана тоже подрастает вместе с твоим, защита титана растёт - и твой урон по титану ПАДАЕТ.

Сложилась ситуация когда игрок не может понять что ему делать для того, чтобы становиться круче. Ведь игрок ниже него уровнем с такими же статами наносит больше урона чем он. Качаться? Так ведь может вырасти уровень противника - и вот ты вместо 100к делаешь опять 80.

Те, кто больше всего вкидывают в игру, теряют от роста собственной же крутости. Более крутые предметы - не гарантия роста крутости. Нет очевидного смысла покупать и качать новые предметы. А это *очень* плохо для бизнеса.

В итоге я решил формулу поменять на золотой стандарт:

Твой урон = Твоя атака.

Теперь моя игра настоящий, эталонный Pay to win. Как в жизни прям. И даже не пришлось на UE5 переписывать чтоб добиться такой реалистичности. Как это повлияет - посмотрим, релиз этой штуки был всего пару дней назад.

Карта местности

Я уже даже не могу сосчитать сколько раз я пытался прикрутить к игре карту мира. Можно сказать, влажная мечта, которая никак не находит своего идеального воплощения.

Резонный вопрос - нафига?

Правильный ответ: потому что это глубже погружает игрок в сеттинг и создаёт ощущение что мир игры - живой.

Честный ответ: хочу!

У меня импринтинг в фэнтези начался с карты Средиземья на первой странице Хоббита. Фэнтези игра без карты мира - как кошка без хвоста.

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

Потом я вспомнил про Inkarnate. Это такой редактор карт для любителей DnD, весьма насыщенный фичами и с большой коллекцией объектов в едином стиле. А самое главное - их коммерческая лицензия, рассчитанная на нердов-DnDшников, а не прожжённых коммерсантов вроде меня, стоит копейки и позволяет использовать сгенерированные карты как хочешь.

Я поспрашивал на фрилансе чё почём, мне назвали цены от $20 до $600 за кусочек карты размером с ладошку, и сроки от 2 часов до полугода. Чтобы составить впечатление о реально сложности работы я решил сделать хотя бы кусочек карты самостоятельно - и в итоге за 3 дня забабахал весь игровой мир целиком.

Маленько поленился раскрашивать регионы в разный цвет, всё получилось в основном зелёное. Но это не беда, в таком размере карту нигде особо не посмотришь, кроме как на DTF.
Маленько поленился раскрашивать регионы в разный цвет, всё получилось в основном зелёное. Но это не беда, в таком размере карту нигде особо не посмотришь, кроме как на DTF.

Реальный размер карты в пикселях - 7168 x 6144, можно на билборд печатать. В разрешении игры выглядит вот так:

Игрок двигается по квестам от точки до точки, как по рельсам, и выполняет задания. Пока что этих заданий маловато, но теперь их даже интересно будет придумывать и привязывать к объектам на карте.

Для сравнения, в текущей версии игры эти квесты выглядят так, что почти что угодно выглядело бы лучше:

Глядя на это кто угодно возмечтал бы о карте местности.
Глядя на это кто угодно возмечтал бы о карте местности.

Вместе с интефейсом новая карта смотрится, на мой взгляд, вполне прилично:

Приходится весь дизайн делать под вертикальный экран и растягивать на горизонтальный. Делать две ориентации - пока что никак, одну-то едва успеваю.
Приходится весь дизайн делать под вертикальный экран и растягивать на горизонтальный. Делать две ориентации - пока что никак, одну-то едва успеваю.

Чего я пока не придумал, так это каким образом - и стоит ли вообще - сделать свободное перемещение по карте.

У меня есть идея добавить игровые события, расставленные по карте мира - торговцев, стычки с бандитами, корованы (для ценителей), заначки всякие прикольные с головоломками. Однако как это реализовать в интерфейсе чтобы было понятно и логично - пока не придумывается.

Руна и клановое состязание

В Witchcraft есть система кланов и мест силы, которые кланы отвоёвывают друг у друга. Не буду погружаться в тонкости, но если кратко: там дофига проблем и главная из них - то, что игроки не дерутся за места силы честно, а договариваются кто кому сольёт, чтобы все оставались при своём и тихонько фармили на битвах.

Сядь на пенёк, съешь пирожок. За этот пенёк деды воевали, кроме шуток.
Сядь на пенёк, съешь пирожок. За этот пенёк деды воевали, кроме шуток.

Меня эта ситуация бесит до трясучки, но в одночасье её не решить. Нельзя заставить людей воевать когда они уже научились договариваться и получать желаемое без усилий, не изменив кардинально правила игры. А смена правил - это всегда жёсткая просадка по кассе, возмущённое хлопанье дверьми от особо чувствительных и потеря части игроков. Я так уже делал и мне не понравилось.

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

Теперь в Титанах можно не просто пинать чучело для получения личной награды, но и пинать его вместе с соклановцами. Кланы при старте битвы разбиваются на пары и какой клан больше титану напинает - тот и победил. Крутышам даём дополнительно уникальный предмет и заряжаем Руну Нексуса, а сосункам - дополнительных наград не даём, остаются с тем что заработали с титана персонально.

Только сейчас обратил внимание что вся нижняя часть висит в воздухе. Надо бы подложки добавить.
Только сейчас обратил внимание что вся нижняя часть висит в воздухе. Надо бы подложки добавить.

Главная фишка тут - это Руна Нексуса клана. Она позволяет продлить владение местом силы клана без битвы за него или вообще захватить новое место силы, чего нельзя сделать иным способом. И получается что вместо договорной битвы за место силы кланам приходится реально пыжиться и гнать нос к носу, кто больше титану наваляет. Договариваться некогда.

Как же некоторые орали когда я им новый интерфейс навялил без включенной галочки бета-теста... ух...
Как же некоторые орали когда я им новый интерфейс навялил без включенной галочки бета-теста... ух...

Игроки поначалу говнились что они на это не подписывались и ваще я их заставляю прям вот жилы рвать чтоб победить, и можно ли от этого всего отказаться. Однако по результатам первого эвента стало вдруг понятно, что в принципе они так-то не против побороться, и ресурсы готовы тратить, и время. Титан с этим клановым состязанием собрал побольше народу и побольше состриг расходников, чем любой из трёх предыдущих.

Я продолжу развивать эту тему и добавлять зарядку Рун в другие эвенты. И возможно запилю отдельный специальный эвент для битвы за руны, по аналогии с битвами за места силы, но без договорняков.

Новые экраны

Помимо уже перечисленных доработок, я успел переделать ряд ключевых экранов, нужных для запуска мобильного интерфейса. Они все входят в набор функционала, с которого начинается знакомство с игрой.

Давайте просто покажу в формате было-стало, там нечего рассусоливать, это просто рефакторинг UI.

Диалог информации о предмете:

Экран навыков:

Магазин рубинов:

Ачивки и медали:

Левел-ап:

Коллекции:

Диалог награды:

План-капкан

Для того, чтобы начать тестировать новый интерфейс на живых пользователях, мне осталось по сути немного:

  • задизайнить главную страницу и страницу ежедневного сундука
  • забалансить сложность противников для новой боёвки - я меняю матч-3 на авто-баттлер по всей игре, сейчас он только в титанах и клановых боях
  • встроить старые страницы в новый UI через iframe - сейчас оно сделано наоборот, новый интерфейс встроен в старый
  • собрать туториал для новичков

Я хочу это всё сделать за ближайшие месяц-полтора, чтобы уже в июне запустить таки игру в ВК и использовать эту платформу как плацдарм для А/Б тестов и улучшения показателей игры.

Надеюсь, вам пришёлся по вкусу этот экскурс за кулисы

Поиграть в Witchcraft можно тут.

Вопросы-пожелания-предложения - велкам в комментарии или в личку. Негатив оставьте при себе, у меня есть свой. :) Люблю, целую, всем котиков.

13
2
1
1