Всем привет! Это команда игры Dev's Battle (Образовательной MMO-RPG игры для разработчиков в Телеграмм). В этой статье мы решили рассказать, как разрабатывали наш продукт, к каким нестандартным решениям пришли и как вообще дошли до такой (жизни) идеи.

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


Как появилась идея

Однажды мы решили сделать «продукт» для начинающих программистов, который бы вобрал в себя все крутые фишки CodeWars, LeetCode и тысяч телеграмм каналов с задачками для разработчиков. Всем нам нужно "иногда разминать свои мозги". Особенно начинающим разработчикам, которые ищут работу, для того чтобы оставаться в тонусе.

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

В общем решили мы сделать этакий симбиоз Duolingo, ЖабаБота (Лайк если в теме, что это) и LeetCode. Основная задача была не слишком перегибать с образовалкой, чтобы интерес к игре сохранялся даже через несколько недель.

Даже визуализацию добавили)) Лайк за жабабота!! Я знаю, что ребята даже комментировали одну из наших статей и в целом знают про наш проект
Даже визуализацию добавили)) Лайк за жабабота!! Я знаю, что ребята даже комментировали одну из наших статей и в целом знают про наш проект

В качестве Front End мы решили взять всеми любимый Telegram, где все мы тратим десятки часов своего времени. Также мы изначально понимали, что маркетинг для мобильных приложений мы не потянем, а в телеграмм можно попробовать воспользоваться природой социальных сетей и создать какой-никакой, но постоянный приток пользователей.


Первый концепт игры

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

Это был обычный скрипт с возможностью решать простые задачки в формате квиза на разные языки программирования и получать за это игровую валюту. После 5 или 10 задач игра заканчивалась, а всем пользователям приходило сообщение с возможностью записаться в лист ожидания ;) Сделали, как это полагается, из го**a и палок. Но самое главное смогли за неделю протестировать основную игровую механику и понять цепляет она или нет.

Так как МВП посмотреть уже не выйдет - оставим фото тут
Так как МВП посмотреть уже не выйдет - оставим фото тут

Результаты получили в течении недели, из 100+ человек более 70% прошли нашу мини игру до конца и 50% подписались на канал (проявив желание дождаться релиза основной версии игры). Кстати почти никто из "бета-тестеров" не смог понять, что игра сделана на конструкторе, а потому на вопрос "когда игра?" были очень удивлены тем, что мы только планируем начать ее разработку.

В общем на примерно 4 неделю начала работы над проектом нами было принято решение - Dev's Battly быть! А почему Девс Баттлу? Ну просто потому что основная фича игры это возможность устраивать баттлы между разработчиками. Вот так быстро и незамысловато появилось и рабочее название.


Как появились основные фишки

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

Какие фичи были выбраны основными?

1) Задачки на языки программирования. Как вы поняли это и есть основной образовательный функционал. Один пользователь сравнил нашу игру с приложениями для подготовки к тестовым экзаменам на водительские права. Мы с такой формулировкой не совсем согласны, и планируем расширять данный функционал и в ширь и в глубь, но пока это самое простое, что мы придумали с возможностями телеграмма.

Сейчас у нас есть такие языки, как Python, JS, Java. Собирать задачи очень сложно, даже несмотря на то, что недавно для этого процесса мы припахали Chat GPT. Тем не менее пока решили сосредоточиться на основных ЯП и развивать их, прокачивая качество задач.

Задачи в формате квиза, другого формата пока не придумали ;(
Задачи в формате квиза, другого формата пока не придумали ;(

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

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

Персонаж
Персонаж

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

Рейтинги
Рейтинги

4) Баттлы между игроками. Куда же без этого. Данный функционал был сложнее всего в разработке, но именно на него мы возлагали большие надежды. Батталы должны были сделать игру более живой и показать игроку, что он играет не один. Мы также планируем допилить сюда полноценную рейтинговую систему и добавить пару чисто игровых фишек.

Баттлы
Баттлы

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


Визуал и айдентика

В начале разработки игры мы долго метались между разными стилями: средневековье, фэнтази, дикий запад и все остальное. Пообщавшись с первыми игроками (те что тыкали в наш МВП), мы поняли что вкус это дело очень индивидуальное и всем тут точно не угодишь. Также мы поняли, что больше всего важен не сам стиль игры, а качество его проработки и уникальности.

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

Дизайн персонажей

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

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

Красные - варианты от которых отказались ;)
Красные - варианты от которых отказались ;)

Дизайн игры и ее элементов

Для дизайна всего остального использовали примитивные фигмы, фотошопы и любимую Canva. Да, графического дизайнера у нас в команде тоже нет, все делали сами. Но, думаю в некоторых местах дизайн у нас получился очень годный. Смотри и судите сами:

Дизайн карточек для игрового магазина
Дизайн карточек для игрового магазина

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


Разработка и первые баги

Сейчас мы пилим наш продукт командой из 2 разработчиков и иногда привлекаем к решению проблем наших друзей, знакомых или просто неравнодушных к игре людей (кстати команду во многом собирали именно из них).

Наш стек: Python, Django, PostgreSQL, PyTelegrambotAPI, Nginx, grafana

Разработку вели по спринтам в Jira (все как полагается) первые 2-3 недели потратили на базу данных. Правильная проектировка и сейчас помогает нам, когда мы настраиваем сложную аналитику или выкатываем новый функционал в продакшен. Она же спасла нам когда мы решили выкатить игру еще и на английском.

После базы данных, перешли к основным механикам, а далее к онбордингу и дополнительным фишкам, которые мы решили запустить уже на стадии раннего MVP. Итого, уже к 10 недели мы были готовы к закрытому бета тестированию.

Правда вот в следующие 5 недель наша команда тонула в багах, которые прилетали откуда не возьмись. Регулярно падал крон, рейтинги, то приходили, то не приходили, бот останавливался, зарплата считалась не правильно, репутация считалась не верно, задачки не подгружались. Ломалось все, что может и не может ломаться. Но мы выжили)

Карточки слева - это все баг репорты.  Конечно потом мы запустили форму баг репортов и немного проапдейтили нашу систему работы с багами
Карточки слева - это все баг репорты. Конечно потом мы запустили форму баг репортов и немного проапдейтили нашу систему работы с багами

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

К 16 неделе мы починили все баги, выпустили паблик версию игры, провели посевы в телеграм каналах и закрепили это все порцией юзер интервью. Запуск прошел успешно и нам удалось привлечь в игру более 2 тысяч человек.


Что имеем в сухом остатке?

В этой статье не будет какого-то глубокого вывода. Эта статья — про запуск продукта, поэтому про его развитие мы можем написать в следующей статье (если публике Хабра это конечно нужно. P. S дайте знать в комментах если эта статья вам помогла или была полезна).

Наши выводы, которые мы поняли и записали для себя:

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

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

  3. Такие продукты имеют место. За несколько месяцев мы собрали крутое ламповое комьюнити, люди реально пользуются нашим продуктом. Уже даже появились первые олдфаги, которые провели в нашей игре несколько месяцев.

P. S.
Всем большое спасибо, что прочитали эту статью до конца. Если захотите попробовать нашу игру сами — вот ссылочка. Будем рады вашим комментам, идеям и предложениям


Комментарии (19)


  1. Couragevich
    00.00.0000 00:00

    Интересная идея! Буду ждать С и С++


    1. seylanov Автор
      00.00.0000 00:00

      Спасибо!


  1. ASobolevskiy
    00.00.0000 00:00

    Вопрос может быть немного не по теме статьи, но все-таки.

    Из языков у Вас пока Pyton, JS, и Java, планируется ли добавление С#?


    1. seylanov Автор
      00.00.0000 00:00
      +1

      Планируем, да!


  1. AntH1N1
    00.00.0000 00:00

    Классная игра!!! Занимаюсь python недавно - с большим интересом решаю задачки. Атмосфера игрушки затягивает решать больше и стать круче! Пользуюсь два дня, - руки сами тянутся к телефону посмотреть, а что будет дальше. Уходит скованность при анализе кусков кода: начинаешь лучше его интерпретировать, задаваясь вопросом "почему так, а не иначе". К задачам есть разборы: можно подглядеть, а можно копнуть самому в глубину. Хотелось бы задачки на C#. При возникновении вопросов к службе поддержки отвечают быстро и адресно. За проект РЕСПЕКТИЩЕ! Молодцы!:)


    1. seylanov Автор
      00.00.0000 00:00

      Какой же крутой комментарий, вот после такого еще больше хочется проектом заниматься!


  1. Grom68
    00.00.0000 00:00

    Расскажите, пожалуйста, как вы планируете зарабатывать на проекте


    1. seylanov Автор
      00.00.0000 00:00

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


  1. Firsto
    00.00.0000 00:00

    Интересная игра, залипательная, только энергия быстро заканчивается.


  1. Igoranych
    00.00.0000 00:00

    Интересная задумка, посмотрим :)


    1. seylanov Автор
      00.00.0000 00:00

      Будем рады любому фидбеку)


  1. 1dNDN
    00.00.0000 00:00
    +1

    А чего оно кричит постоянно шо бот не отвечает?


  1. xi-tauw
    00.00.0000 00:00
    +1

    На последней картинке в статье, там где карточки с баг репортами, это какой-то сервис?


    1. seylanov Автор
      00.00.0000 00:00
      +1

      Miro - просто доска для совместной работы


  1. prishelec
    00.00.0000 00:00

    Вопрос автору:

    Если не секрет, то почему вы используете два вида клавиатур?

    Работа с клавиатурой Inline ведь удобнее же.


    1. seylanov Автор
      00.00.0000 00:00

      мы разделили на основное меню и кнопки уже в процессе


      1. prishelec
        00.00.0000 00:00

        Можно узнать в чем выявились неудобства использования именно компонента меню?

        Я для себя пока думаю как лучше поступить: ваш вариант через два вида клавиатур или компонент меню и Inline клавиатура.


  1. Valdusha1
    00.00.0000 00:00

    Идея супер и реализация, разряжает голову на создание интересных проектов в телеге. Хорошая работа, красавчики


    1. seylanov Автор
      00.00.0000 00:00

      Спасибо!