Из разработчиков игр в разработчики сервиса для разработчиков игр

 Публичный пост
5 августа 2022  616

Несколько лет стартапства и разработки своей провальной 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’ов и Гугл Таблиц», весьма проблематично. Как пример, самые частые препятствия, которые мы встречали:

  1. Я привык к X, Y, Z
  2. Наши разработчики сами такую админку сделают за месяц (спойлер: не сделают)
  3. За это нужно платить
  4. Вендерлок (это частая причина отказа крупных студий, который хотят всё инхауз делать)
  5. У нас уже есть подобие админки

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

Умные оферы и лайвопс

Наблюдая за нашими клиентами, мы заметили, как на базе админки они пытаются реализовать какие-то свои бизнес-задачи. Один из них, например, на базе шаблонов и наследования построил систему туториалов и квестов.

Чуть позже другой клиент, которому мы помогали с переносом их данных с уже запущенного проекта, пытались реализовать в админке систему оферов внутриигровых.

Таким образом получилось реализовать как базовые логические условия типа и/или, так и всякие дополнительные по полям/enum’ам. И, что самое главное, редактировать такие документы очень удобно по сравнению с Гугл Таблицами или, упаси боже, сырыми json’ами.

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

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

Для оферов мы, в том числе, добавили визуальный редактор с базовым функционалом, чтобы геймдизайнер мог без проблем настроить все условия для показа внутриигровых оферов (к примеру, окно с покупкой сундука на 10 уровне или предложить купить крутой меч при проигрыше 5 раз подряд).

Эхо войны

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

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

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

На данный момент ищем четырёх сотрудников в компанию:

  1. Бекендщик. Стек: нода + ts + nest.js + Постгря.
  2. Фронтендщик. Тут реакт + ts + вебпак.
  3. Лайвопс менеджер/продюсер с опытом запуска и оперированием успешных проектов. Из задач: участие в создании продукта и помощь текущими клиентам для создания успешных кейсов.
  4. Биздев для общения с игровыми разработчиками и партнёрами, включая, онбординг и привлечение новых клиентов. Нужен человек с нативным английским или около того.

Зарплата в евро + опцион. В Россию переводить деньги нет возможности, поэтому нужны люди с иностранными счетами.

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

Буду рад ответить на любые вопросы, по возможности 😅

Аватар Andrei Apanasik
Andrei Apanasik @Suvitruf
CTO/co-founder, professor of shitpostСвой стартап Balancy
📍Ларнака, Кипр

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

Где меня можно найти:

✍️ suvitruf@gmail.com

11 комментариев 👇

Фантастически интересно, прочитал запоем эту статью и по ссылке и там дальше по ссылке - как будто в другой мир погрузился. Спасибо!

А вы делали оценку TAM - SAM - SOM? Есть ли там вообще рынок "кирок и лопат" в этом игровом клондайке?

Почему тот же Юнити не выпустит конфигуратор? Или другой крупный разработчик тулзов для геймдева?

  Развернуть 1 комментарий

@zahhar,

А вы делали оценку TAM - SAM - SOM? Есть ли там вообще рынок "кирок и лопат" в этом игровом клондайке?

Делали, конечно же. Без этого нет смысла особого стартовать проект.

Почему тот же Юнити не выпустит конфигуратор? Или другой крупный разработчик тулзов для геймдева?

Ну...вообще именно Unity в последнее время активно в этом направлении идёт. Вон сервисы недавно из беты вышли.

Ну а так есть всякие Плейфабы и прочие.

  Развернуть 1 комментарий

Воу, не знал что Андрей в клубе! Привет с дтф) статья огонь, сервис тоже офигенный!

  Развернуть 1 комментарий

@IgorAlentev, привет. Давно тут, просто времени нет на все платформы. В клубе в режиме чтения обычно)

  Развернуть 1 комментарий
Миша Безверхий управляющий изделием Команда Клуба 5 августа 2022

к примеру, окно с покупкой сундука на 10 уровне или предложить купить крутой меч при проигрыше 5 раз подряд

вот на этом моменте мне стало интересно

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

При этом специфичные сценарии типа такого:

при проигрыше 5 раз подряд

  • тоже случаются не со всеми пользователями, уменьшая аудиторию.

Таким образом, ваша главная фича - это возможность маленьким компаниям с маленьким дау продавать что-то на маленькую часть маленького дау.
Где-то я явно ошибаюсь, но где? :)
Насколько ваш продукт приносит деньги пользователю?

Ну и да, вот в этом примере: а почему не продавать крутой меч без 5 проигрышей, увеличив аудиторию в 32 раза? (предполагаю вероятность победы в 50%)

  Развернуть 1 комментарий

@mixbez,

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

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

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

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

  1. Не все готовы шарить с ноунеймами баланс.
  2. Кто-то хочет всё инхауз, чтоб не лочиться на вендора. Готовы использовать нас, если предоставим им какое-то коробочное решение, которое смогут у себя развернуть.

Таким образом, ваша главная фича - это возможность маленьким компаниям с маленьким дау продавать что-то на маленькую часть маленького дау.

Главное:

  1. Всё из коробки работает. Быстро встроить в проект, есть тулзы для переноса к нам существующих проектов.
  2. У нас A/B тесты, сегментация и аналитика + все игровые данные (баланс) и сейвы игроков (если разработчик их использует). Это позволяет учитывать контекст, а не просто строить графики по ивентам (как делает Амплитуда или другие подобные аналитики).
  3. Лайвопс, обновление на лету, генерация классов и всего спагетти, которое отвечает за скачивание json'ов и маппинг.

Насколько ваш продукт приносит деньги пользователю?

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

Ну и да, вот в этом примере: а почему не продавать крутой меч без 5 проигрышей, увеличив аудиторию в 32 раза? (предполагаю вероятность победы в 50%)

Это просто как пример, чтоб читатель понимал, что из себя представляют оферы. А то мы недавно общались с людьми из IT, но не из геймдева, для них неясно было, что же это такое 😅

  Развернуть 1 комментарий

@Suvitruf, теперь понятнее стало)
Видимо, мне повезло, что в ГЛ такое есть :D

  Развернуть 1 комментарий

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

  Развернуть 1 комментарий

@WizzardRick, с чатом слишком много заморочек. И там с поиском клиентов совсем сложно было, т.к. такие штуки люди обычно очень сильно под себя кастомизируют. Чтобы сделать продукт с большими возможностями кастомизации, очень много сил нужно угробить.

Ну и в нашем случае, т.к. было в виде сайта в вебвью, это означало, что на ПК/консоли это не втащить нормально.

К примеру, в прошлом стартапе для мобы мы юзали ejabberd и много всего поверх их системы сообщений наворачивали (пати на арену, инвайты в пати, система друзей и т.д).

  Развернуть 1 комментарий

@Suvitruf, да, это понятно, но если будет какая-то альтернатива, то кмк многие бы ей пользовались. Типа

  • делай чат сам как хочешь и держи свои сервера
  • бери готовые решения с юнити стора и держи свои сервера
  • покупай готовое решение с подпиской, масштабирующееся от ДАУ
  • покупай дорогое готовое решение с кастомизацией и хуками, на которые цепляй свои функции

кмк большинство индюков и небольших студий выбрали бы третий вариант

  Развернуть 1 комментарий

@WizzardRick, вот индюки как раз подписки очень не любят в любой форме. Хотят либо бесплатно, либо фиксу 😅

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб