Из разработчиков игр в разработчики сервиса Balancy для разработчиков игр
Несколько лет стартапства и разработки своей провальной MOBA, чтобы в итоге создать новый стартап для помощи другим разработчикам игр. Сорванные оферы из-за *****, переезд на Кипр и другие приключения.
Как всё начиналось
В далёком 2014 на одном из геймджемов мы представили прототип кроссплатформенной MOBA.
Часть геймплея с боями на арене представляла собой, по сути, мобильную Лигу Легенд (на тот момент подобных игр ещё не было, а Vainglory появился чуть позже). С этим проектом мы поучаствовали в нескольких акселераторах и получили инвестиции.
За несколько лет посетили несколько других стран и акселераторов, но из-за неопытности и амбиций стартап пришлось закрыть. Про наши косяки, ошибочные решения и некоторые технические аспекты можно почитать в отдельной статье.
Мы до последнего тянули проект и надеялись, что всё получится, но в какой-то момент, всё же, осознали, что игру лучше закрыть. У нас ещё оставалось немного денег на з/п сотрудникам (основатели на тот момент уже год как не получали зарплату), решили из ассетов UnnyWorld по быстрому сделать батлер Hero Masters.
Примерно месяца за 2-3 запустили более-менее рабочую версию, чтоб собрать базовые метрики. Они были неплохими, игра даже приносила немного денег (на удивление, больше, чем MOBA, которую пилили несколько лет), но для самоокупаемости не хватало. В итоге было принято окончательное решение закрыть компанию.
Инструменты нужны всем
Для каждого нашего проекта мы создавали те или иные тулзы. Для UnnyWorld, где очень много игровых данных (баланса), я написал простенькую админку на php. Визуально она представляла собой типичные дашборд, где слева дерево элементов (конкретных сущности, e.g. предметы игровые), а справа параметры этих элементов (стоимость, прочность и т.д).
Было несколько окружений: dev, stage, production. При публикации изменений они все улетали в виде json’ов на CDN, а игра уже эти данные потом подкачивала. Было довольно удобно: не нужно возиться напрямую со спредшитами, json’ами, xml’ками и прочими штуками. Геймдизайнер в руки получал удобный инструмент, а вся остальная магия, связанная с движением данных по сети, их не заботит.
Для Hero Masters использовали эту же админку. Игра была частично оффлайн, отдельные игровые инстансы были не нужны, для неё сделали API’шку для авторизации через социалки/геймцентры и для работы с сейвами. На этом этапе призадумались над тем, что похожие вещи делаем в каждом проекте. Как раз в этот этот момент начали обдумывать, как бы сделать это в виде отдельного сервиса, чтобы и другие разработчики могли использовать в своих проектах.
Т.к. компанию пришлось закрыть, а денег последний год+ мы себе не платили, то пришлось искать работу, но параллельно с одним из ко-фаундеров Пашей Игнатовым решили, всё же, попробовать запилить сервис.
Судьбоносный пивот или как появился Balancy
Пока пилили Hero Masters и UnnyWorld, очень хотели сделать аналог BattleNet, но для своих игр: общий аккаунт, друзья, чат и прочие социальные фишки. Так и появилась первая версия сервиса под названием UnnyNet.
Под капотом у нас было опенсорсное решение Nakama, которое, в свою очередь, использовало CockroachDB в роли базы данных. На тот момент у нас уже были реализованы чат, группы, гильдии, лидерборды, ачивки и даже какая-никакая кастомизация чатика.
Отдельно отмечу, что сам чат и его дизайн работали из коробки, в мобильных билдах это всё открывалось в WebView. Разработчикам не нужно было ничего верстать или писать логику по обработке сообщений. Но, само собой, из минусов то, что наш дизайн мог не подходить под игровой UI и смотрелся инородно.
По ходу дела мы решили пивотнуться именно в сторону админки, через которую разработчики могли бы управлять игровым балансом. Тащить и допиливать старую систему на php не было особого смысла, слишком уж там много легаси, да и с php я уже перестал работать.
На беке использовал ноду, а на фронте реакт, т.к. я с ним хотя бы работал. Визуально выглядело всё примерно также как и старая админка — слева список типов сущностей, а справа дерево самих сущностей и их параметров.
Для прототипа этого хватило, но тут же всплыло множество проблем, начиная от удобства (особенно, если человек раньше работал с чем-то типа Гугловских Спредшитов), заканчивая тем, что не было каких-то чётких структур сущностей, что выливалось в некорректно сгенерированные json’ы.
После общения с разработчиками и эдвайзерами переделали дизайн на более привычный большинству, плюс пересмотрели механизм того, как задаются структуры документов.
Прикрутили бутстрап и плюс-минус однородный дизайн получился. Навигация слегка поменялась: слева типы сущностей (шаблоны), справа таблица с данными.
Сами шаблоны и их параметры теперь нужно задавать заранее.
Для работы с документами шаблона выбираем потом его в левом меню.
В админке шаблоны помогают работать с чёткими структурами, типами и параметрами. Это в принципе удобно, но и, как следствие, получаем из коробки механизм по валидации этих данных: проверка типов, битых ссылок и прочее.
Шаблоны ещё используются и в том же Unity (для которого нужно поставить наш плагин) для генерации необходимых классов. Все те параметры, которые были заданы в админке, становятся свойствами сгенерированных классов. Код по закачке json’ов и их мапингу на эти классы тоже генерируется нами. Разработчик в итоге получает уже готовые структуры, которые использует непосредственно для работы с игровой логикой.
Мы позиционировали решение как «умные Спредшиты». Клиенты находились, но, если сравнивать с нашим прошлым стартапом, Balancy — это чистый b2b проект, для которого намного тяжелее искать клиентов. Продать потенциальному покупателю решение, которое «будет лучше json’ов и Гугл Таблиц», весьма проблематично. Как пример, самые частые препятствия, которые мы встречали:
- Я привык к X, Y, Z
- Наши разработчики сами такую админку сделают за месяц (спойлер: не сделают)
- За это нужно платить
- Вендерлок (это частая причина отказа крупных студий, который хотят всё инхауз делать)
- У нас уже есть подобие админки
Очевидно, что продавая решение теглайном «как Гугл таблицы, но лучше», мы особого успеха не достигнем. Нужна была какая-то особенная фича, которая сразу бы заинтересовала потенциальных покупателей.
Умные оферы и лайвопс
Наблюдая за нашими клиентами, мы заметили, как на базе админки они пытаются реализовать какие-то свои бизнес-задачи. Один из них, например, на базе шаблонов и наследования построил систему туториалов и квестов.
Чуть позже другой клиент, которому мы помогали с переносом их данных с уже запущенного проекта, пытались реализовать в админке систему оферов внутриигровых.
Таким образом получилось реализовать как базовые логические условия типа и/или, так и всякие дополнительные по полям/enum’ам. И, что самое главное, редактировать такие документы очень удобно по сравнению с Гугл Таблицами или, упаси боже, сырыми json’ами.
Обмозговав это и поговорив с другими людьми из индустрии, мы пришли к выводу, что было бы неплохо что-то такое реализовать нам самим в виде отдельного модуля/пакета. Разработчик потом, при необходимости, прям в админке мог бы одним кликом добавить в существующий проект все эти предзаготовленные нами структуры и данные.
Какое-то время обсуждали эту тему с разработчиками игр и потенциальными клиентами. Целью было получение софт коммитмента на то, что при реализации такой фичи в нашем сервисе, они станут нашими клиентами. Собрали пул таких студий и начали пилить функционал.
Для оферов мы, в том числе, добавили визуальный редактор с базовым функционалом, чтобы геймдизайнер мог без проблем настроить все условия для показа внутриигровых оферов (к примеру, окно с покупкой сундука на 10 уровне или предложить купить крутой меч при пройгрыше 5 раз подряд).
Эхо *****
Примерно в то же время мы обсуждали с потенциальными инвесторами вопрос инвестиций. К концу февраля 2022 у нас уже был на руках офер, но планы изменились. После начала ***** фонды и ангел-инвесторы практически перестали инвестировать в российские стартапы, если фаундеры находятся в России или если счета там.
Одно из условий было переезд и оформление гражданства/ВНЖ в другой стране. Следующие месяцы мы шлифовали проект и параллельно искали варианты. Был один акселератор из Канады, который мог бы инвестировать и помочь с релокацией, но они за это брали ещё процент компании сверху, что нас не устраивало.
В итоге вышли на ангел-инвестора с Кипра, который согласился в нас вложиться, если мы переедем. В конце июня мы с тиммейтом уехали из России, создали свою компанию на Кипре и наняли себя как сотрудников, чтобы оформить рабочие визы. Сейчас в процессе получения ВНЖ и открытия банковских счетов.
На данный момент ищем четырёх сотрудников в компанию:
- Бекендщик. Стек: нода + ts + nest.js + Постгря.
- Фронтендщик. Тут реакт + ts + вебпак.
- Лайвопс менеджер/продюсер с опытом запуска и оперированием успешных проектов. Из задач: участие в создании продукта и помощь текущими клиентам для создания успешных кейсов.
- Биздев для общения с игровыми разработчиками и партнёрами, включая, онбординг и привлечение новых клиентов. Нужен человек с нативным английским или около того.
Зарплата в евро + опцион. В Россию переводить деньги нет возможности, поэтому нужны люди с иностранными счетами.
Если же вы разработчик игр, который заинтересовался сервисом и хочет опробовать, то сделать это можно бесплатно до определённого числа документов в системе. Если же будут вопросы, то всегда можно задать их в нашем Дискорде или напрямую мне в Телеграмме.
Если есть какие-то вопрос по технологиям, переезду или ещё про что-то, то отвечу в комментариях 😎
Я первый раз в жизни увидел, что Апанасик реально делал игры
Андрей, я уже выучил React и начал учить TS, так что скоро стану разработчиком вашей хуйни. Готовь 300к.
Комментарий недоступен
Комментарий недоступен
Хеллоу ай ем фром Андрей апанасик компани ду ю лайк ту юз ОУР продукт ор нот? Вай нот? Вай? Лет ми толк виз ю ебаут зис.
Ноу ? Ну тогда плиз дуй отсюда
Фром ё харт?
Комментарий недоступен
Комментарий недоступен
Создатели EVE Online совмещают
Вспоминается золотая лихорадка и продажа лопат. Впрочем, в этом нет ничего плохого, лопаты нужны)
Так в тексте же написано подробно. Пытались, пилили, не вышло, кончились деньги. Покушать ты себе за «мечту» не купишь, стали думать как заработать. Придумали.
стартап пришлось закрыть
Бизнес. Потом интересуются, почему гейм индустрии нет
Бизнес как бизнес. Большая часть стартапов закрывается. Это норма.
Комментарий недоступен
И до сих пор в процессе поиска
Комментарий недоступен
Это просто ретроспектива. Думаю, в будущем буду чаще про сервис писать и подробнее.
Интересно было бы узнать про Кипр, и вообще твой впечатление, какие истории были и.тд. =)
Про Кипр будет отдельная статья. К тому моменту как раз ВНЖ уже получу.
@WannaBe2D твой выход
я просто хочу быть счастливым
Когда сортировку добавите нормальную? как вообще можно продавать такое говно без сортировки по столбцам?
Но там есть сортировка 🤔
Пациент скорее жив?..
Жив и развивается.
Лучше бы экшен рпг делал.
Такс-такс-такс, выглядит как решение назревших проблем. Надо показать своим ребятам. Больше всего пока смущает отсутствие On-Premise версии, чтобы можно было на своей инфре разворачивать.
А оно очень надо? Я уже обдумывал вариант, чтоб как-то это докерами поставлять, чтобы можно было потом в любом контуре развернуть, но такое почти никто не просил, поэтому приоритет был низкий у задачи.
Напиши мне в Телегу, может что-то и придумаем.
Комментарий недоступен
У нас, на самом деле, довольно лайтовые собесы.
Хотел пожаловаться на сайт, но не буду, вы же сами знаете прекрасно, что косяков очень много. Удачи в развитии и рад, что получилось получить финансирование.
Данные тягать можно только через плагин для Unity? API нет?
json'ы так-то можно самому с CDN'а тягать. Плагин пока есть для Unity, т.к. все почти клиенты на нём. Но в будущем сделаем и для других движков.
Рад, что держитесь на плаву, но возникают сомнения в востребованности сервиса. Подозреваю, что он может приглянуться разве что инди-командам или одиночкам, которые не хотят тратить время на редактор баланса. Более-менее крупные компании или уже имеют или могут сами сделать систему под свои требования. Плюс хранение данных на своем сервере, где с ними можно делать все, что угодно.
Инди с сомнениям относятся, т.к. платить нужно.
Более-менее крупные компании или уже имеютЕсть такие, но зачастую там не самый крутой инструмент, т.к. это не основной фокус студий, они, всё же, игры делают.
или могут сами сделать систему под свои требованияТакое слышал. Но те, от кого это слышал, так в итоге ничего и не сделали, т.к. это не за 1 месяц делается, а куда больше.
Плюс хранение данных на своем сервере, где с ними можно делать все, что угодно.Это да, пока у нас нет именем. Поэтому заходим через средние студии, которые не против шарить данные с нами.
Кстати, у вас на сайте фавиконка с буквой "u", видимо старая еще
А нода выбрана по причине того, что прототипировали на ней уже, или к примеру к питону+жанга претензии есть?
Лайвопс менеджер/продюсерКъХех
Я на беке единственный. Умею в ноду/ts и Джаву. С Джавы давно слез, т.к. слишком громоздкая. Поэтому пока на ноде.
В будущем другие микросервисы, в принципе, можем и на других языках писать. Сам на Go посматриваю.
Favicon старая :)
Угу, в этом месяце будем и это менять, и лендинг.
Да и ладно, что перешли в бизнес приложения. Зато, если найдете приличных клиентов, то это надежно, и компания сможет держаться за счёт саппорта и кастомизации.
Немного клиентов уже есть. Но тут проблема в том, что оплата размазывается. Игры делаются годами и, пока клиенты пользуются дешёвым тарифом во время разработки, они нам почти ничего не платят.
Плюс часть проектов может не взлететь. Но да, если часть клиентов будут успешными, то и мы вместе с ними.
Хм, интересно! Я для нашей игре сделал продвинутую кастомную аналитику (через файрбейз, но которой все еще нет в гугловских / юнити дэшбордах) с красивыми интерактивными графиками.
Игра не взлетела (даже с рекламой :D), но после статьи задумался, насколько эта аналитка может быть превращена в продукт, надо поресерчить!
С Файербейзом это прям явный вендорлок + ценник мутный.
Дашбордможно и самому написать, какой нужен
Мож сначала надо сделать игру интересную? А уж ПОТОМ всё остальное?
Почему какой то залетный киприот пиарится на шару? Пусть покупает рекламу.
Этот "залётный киприот" написал пост в своём собственном блоге.
Круто как, Андрей! Удачи и успехов вам.
Хотелось бы конечно в такой команде поработать, жаль что я не на ноде(
А на чём пишешь? В будущем может будем нанимать и на другой стек.
Был бы я один, но твоя статья очень полезна. Учу программирование, пока андроид и немного фронт-энд хотя хочу игровой программирование. Там наверное более интересные задачи.
Вам прям сильно нужен продакт/продюсер, чтобы не зафакапиться как в прошлых делах. Из того что ты описал своим пока неопытным глазом (прохожу курсы) вижу что были траблы с оценкой фич и приоритизацией.
Если вдруг понадобится в штат Ua манагер пингани, у меня жена юэйщик с охуенным опытом в мобилках и не только, от новых проектов на фриланс не откажется
У нас сейчас появился инвестор и эдвайзеры из индустрии, как раз всё приоритезируем и курс выстраиваем)
круто вроде, но нихера непонятно
Гугл таблицы или эксель в миллиарды раз удобнее и практичнее админок. Причины тому:
- скорость работы в гугл/эксель в разы выше (если у вас много много разных конфигов и в каждом куча листов, то обвязав все формулами, можно за небольшое время что-то координально поменять, в том время как в админке нужно заходить в каждую сущность отдельно)
- гугл/эксель не нужно изучать с нуля (а админка если её развивать со временем превращается в монстра и когда приходит нуб его нужно учить в ней работать (ведь через несколько лет в простой и удобной админке образуется куча уровней вложенности, костылей и багов))
4 года работал в админках, затем 5 лет гугл/эксель, админки это от лукавого :)
Если бы речь шла чисто о редактировании данных, до да, Экселька мощнее, но в нашей админке это лишь кор элемент. Поверх этого куча всего навешано: лайвопс, кодогенератор, аналитика и прочее.
Если использовать голые Спредшиты, то нужно все эти вещи самим писать. А это выльется в то, что придётся добирать отдельную команду под этот инструмент.
Интересно, сколько разрабов полегли из-за больших амбиций
Большой процент проектов разваливается именно потому что люди ставят нереалистичные цели.
Очень интересно, как, кто и зачем в итоге пользовался вашим сервисом, если таких на рынке уже тысячи. Искали неопытных инди с непрофильными инвесторами?
Не.
Искали неопытных инди с непрофильными инвесторами?Если студии уровня Гейминсайт, Некки или Плейрикc — это неопытные инди, то да.
Комментарий недоступен
Персу лет 5 уже. Если кого-то и напоминает, то не из новых игр)
Комментарий недоступен
О, вы из Англии.
"Кто не умеет - помогает". На Кипре бездомных кормят?
В чем преимущества по сравнению с https://machinations.io/?
Это абсолютно разные решения, я даже не знаю как нас сравнить 😅
Комментарий недоступен
Всё так, проблема недоверия действительно существует. Поэтому пока ориентируемся не на крупняк, а на небольшие-средние студии.
Ну и жирно же флексит перс.
Приятно выглядит игра.