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

Егор Васильев

Введение

Год назад я находился в поиске работы. За плечами было девять лет опыта в игровой индустрии, из них шесть лет — продюсером. Этот опыт ни сколько не мешал мне бояться остаться не при делах, без денег и умереть в нищете и безвестности. После примерно 15 собеседований были предложения от крупных студий в Москве, Киеве и Минске на оклад в $4+ тысячи. Принимать эти предложения я не торопился. Мне не хватало вызова.

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

Мне кажется, самое прекрасное в работе продюсера — это выйти «в чисто поле», где нет еще ничего и с нуля собрать команду, построить процесс разработки и довести продукт до софтлонча, а затем и до релиза. Именно поэтому, когда мне написал Дмитрий с похожим предложением, мы довольно быстро созвонились и приступили к обсуждению деталей.

Дмитрий со своим партнером занимались мобильными приложениями. Они покупали готовые аппы с органическим трафиком, выкручивали монетизацию, отбивали затраты и затем перепродавали. Опыта в геймдеве не было, но было желание попробовать. Их внимание привлекла игра 5 Differences Online от расположенной в Днепре студии SmartProject.

Core игры — поиск отличий между двумя картинками c одной интересной особенностью. Игрок искал отличия одновременно с другими игроками. Тот, кто находил последним вылетал, остальные переходили в следующий раунд. Эдакий казуальный баттл-рояль.

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

Я полез в App Annie смотреть финансовые показатели. Игра зарабатывала по $40 тысяч в день с каждой платформы. $2,5 млн за январь 2020 года. До января — стабильно $500 тысяч в месяц. Было принято решение делать клон.

Деньги

Главный вопрос, на который нужно ответить в самом начале — сколько это будет стоить. Я использую следующую методику расчета стоимости разработки.

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

  • гейм-дизайнер. Необходимо декомпозировать исходную игру, писать документацию, вбивать цифры баланса в админку. Задачи достаточно рутинные, особого таланта не нужно. Закладываю $1000 в месяц, full time;
  • Unity-разработчик. Тут в целом комментировать нечего, нужен уверенный middle-разработчик. $2500 в месяц, full time;
  • серверный разработчик. Необходимо реализовать PvP, отдачу контента (картинок с отличиями), валидацию покупок, серверные конфиги для быстрого тестирования изменений. $1500 в месяц, part time;
  • 2D-художник. Необходимо нарисовать 9 локаций-эпизодов и экран загрузки. Для софтлонча можно обойтись меньшим количеством 2D-графики. $2000 в месяц, full time;
  • контент-художник. Необходимо готовить интерфейсы, предметы для коллекций и собственно сами картинки с отличиями. $1500 в месяц full time;
  • продюсер (это я). Собственно организация и управление процессом. $2000 в месяц full time.

Итого, burn rate команды выходит $10,5 тысяч в месяц. Я всегда считаю зарплаты немного выше рынка. Во-первых, это позволяет при случае нанимать реально талантливых, востребованных специалистов (что на самом деле происходит нечасто). Во-вторых, если сроки будут сдвинуты, это позволит не вылезти за рамки бюджета.

Следующий шаг — написание роадмапа. Для этого в Trello составляю список механик, которые необходимо реализовать. Внутри каждой механики грубо указываю подзадачи (для примерного понимания времени разработки) и отмечаю кто из команды будет работать над данной механикой. Получается вот такое описание:

Примерное описание игровой механики

Далее раскидываю механики по месяцам и собираю сам роадмап. При этом обращаю внимание на:

  • порядок разработки — не стоит делать механику коллекций, пока не готов core-геймплей;
  • загруженность разработчиков — нагрузка на участников команды должна быть распределена равномерно;
  • сроки разработки — прикидываю, сколько недель займет разработка той или иной механики.

Со сроками важно понимать одну вещь. Разработка механики состоит из двух частей, условно «головы» и «хвоста».

«Голова» — это реализация механики, как ее описал гейм-дизайнер. «Хвост» — это доработка механики, а именно полишинг некритичных багов, тестирование баланса, возможно эксперименты с визуалом. Для коротких механик и для особо важных механик на этапе планирования «хвост» равен длительности «головы». Для остальных механик — в два раза меньше. При этом:

  • для критически важных механик «хвост» может быть бесконечным;
  • на этапе планирования «хвост» можно и нужно как резать, так и удлинять, чтобы оптимизировать процесс разработки;
  • в случае ошибок в планировании, в первую очередь нужно резать именно «хвосты».

По итогу получается следующая таблица:

Роадмап проекта в Trello

По этой таблице видим, кто, когда и над чем работает. И самое главное, становится понятно, что время разработки составит 4 месяца, а стоимость — $42 тысячи. Также я обычно закладываю дополнительные риски в 20% от общего бюджета на случай, если что-то пойдет не так.

Итого, необходимый бюджет для разработки — $50400.

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

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

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

Разработка

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

Для этого я выбрал несколько популярных казуальных тем и через Facebook Audience Insights проверил пересечения с играми жанра HOG, который мне казался наиболее близким к нашему. Получилась вот такая таблица:

Анализ популярности различных сеттингов

Наш выбор пал на сеттинг «Еда и напитки» — весь визуал мы пытались делать в выбранной тематике.

Далее я начал собирать команду. Для поиска людей я использовал следующие ресурсы:

  • группы, связанные с игровой индустрией на Facebook;
  • каналы, связанные с игровой индустрией в Telegram;
  • раздел вакансий на dtf.ru и hh.ru;
  • форум Gamedev.ru.

Не могу сказать, что мой опыт достаточно репрезентативен, однако придерживаюсь мнения, что наиболее эффективно разработчиков искать в Telegram, художников на Facebook, а гейм-дизайнеров и тестировщиков на Gamedev.ru. Поиск людей на специализированных сайтах типа dtf.ru или hh.ru в моем случае не работает, потому что приходится конкурировать с более крупными, известными компаниями.

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

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

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

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

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

«У вас фундаментальные проблемы с игрой, боюсь до релиза тут далеко», — сказал новый разработчик после знакомства с исходным кодом проекта.

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

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

На переделки ушел месяц.

Софтлонч

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

Но сперва немного о самой стратегии софтлонча. Мы решили начать со стран Латинской Америки, а именно Мексика, Аргентина, Чили. Во-первых, эти страны сильно дешевле в закупке, чем традиционные Канада, Австралия и Новая Зеландия. А во-вторых, эти страны ближе к США и Европе по менталитету, чем страны Юго-Восточной Азии, которые тоже часто используются для софтлонча. Платформа — Android, так дешевле.

На старте ретеншн первого дня едва дотягивал до 25% при бенчмарке в 35%. Про остальные метрики и говорить не стоит. Мы стали смотреть статистику по первой сессии и обнаружили существенные отвалы. Появилась гипотеза, что стартовые картинки очень сложные. Мы переделали их, сделав простыми за счет ярких, хорошо заметных отличий. Ретеншн вырос до 40%. Далее мы еще экспериментировали со стартовыми картинками (провал на графике в середине июня) и вышли на стабильные 40%+.

График ретеншна 1го дня после запуска

За ретеншном первого дня до желаемых показателей дотянулся и ретеншн седьмого дня — 15%+. В ожидании показателей 28-го дня мы переместили фокус на монетизацию.

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

Тут самое время рассказать, как у нас был организован сбор статистики и аналитика. Для быстрого отслеживания ключевых показателей мы использовали Game Analytics — бесплатный инструмент, позволяющий мониторить основные показатели вовлечения, удержания и монетизации. Можно разбивать выборку, например, по рекламным кампаниям, странам или версиям приложения. Последнее — вместе с возможностью Play Market вылить билд на часть аудитории дает бесплатный инструмент A/B-тестирования:

 

Пример A/B-теста

Иногда хочется перепроверить, нет ли ошибки в статистике. Для этого мы использовали Facebook, который все равно требуется интегрировать в приложение, чтобы покупать трафик. Кроме того мы часто смотрели в раздел «пожизненная ценность», который позволяет понять динамику окупаемости рекламы. 

Так выглядит окупаемость рекламы

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

Пример дашборда в Redash

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

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

В начале августа было принято решение изменить стратегию закупки рекламы. Мы по прежнему покупали по 100 установок в день на Латинской Америке, это нужно было для того, чтобы следить за показателями удержания на более-менее однородной аудитории. При этом было понимание, что тестировать монетизацию на Tier 3 странах бессмысленно. Мы решили открыть приложение в Великобритании и начать закупать трафик с оптимизацией на покупки. Окупаемость выросла с 20% до 60%.

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

Чтобы не терять время попусту, я взялся за решение давней проблемы. Мы много обсуждали сложность отличий на картинках — кому-то они казались слишком сложными, а кто-то находил все без труда. Хотелось избавиться от субъективизма и получить математически обоснованную оценку сложности. Было понятно, что размер отличия можно оценить количеством пикселей. Но как выразить числом, то, что синий на красном видно лучше, чем темно-зеленый на светло-зеленом?

Оказывается, существует цветовое пространство LAB, которое учитывает особенности восприятия человеческого глаза. И переведя координаты цветов пикселей из RGB в LAB можно почитать, на сколько сильно два пикселя отличаются друг от друга.

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

Я понимал, что количество визуальной информации на картинке ощутимо влияет на сложность. Количество информации есть энтропия, однако гугление по запросу «энтропия изображения» результата не давало. Решение оказалось до смешного простым — количество информации на картинке это размер файла этой самой картинки!

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

По состоянию на сентябрь, платящий пользователь обходился нам в $20, а приносил $14. Нужно было придумать как получить еще $6. Мы собрались вместе и устроили трехдневный мозговой штурм, по итогам которого выбрали четыре основных направления, которые могли повысить монетизацию:

  • офферы. Наверное, наиболее очевидный способ увеличить доходы;
  • дополнительная точка монетизации. На тот момент единственной точкой монетизации были подсказки. Мы решили добавить возможность купить лупу, которая позволяла игроку увеличить картинку для более удобного поиска мелких отличий;
  • ивенты. По статистике было видно, что есть существенная часть плательщиков, которые переставали платить, но при этом продолжали играть. Мы решили добавить в игру коллекционные эвенты, основанные на core-геймплее, чтобы создать стимул для дальнейших платежей;
  • боты. Наши боты своим поведением не были похожи на реальных игроков. Мы решили их «очеловечить».

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

Несмотря на то, что это худшее время для закупки, все еще была надежда увидеть какие-нибудь положительные изменения. На третий день все кампании были остановлены. Глядя на ROAS, мы понимали, что реклама едва окупится на 20%. Было принято решение распускать команду и сворачивать разработку.

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

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

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

Заключение

«Парни привет. С наступившим! Цифры смотрели?) Похоже мы все хорошо вели себя в прошлом году и Дед Мороз подарил нам новогоднее чудо)», — такое сообщение мы получили утром 3 января от нашего партнера по трафику.

Я полез смотреть статистику. По обеим платформам наш ROAS значительно опережал целевой. Было очевидно, что до конца месяца весь трафик окупится и выйдет в плюс. А, значит, дальше в жизни продукта наступал новый этап, на котором нужно масштабировать игру с помощью live ops и маркетинга, отбивать затраты на разработку и начинать зарабатывать.

А моя миссия на этом завершена.


Подписывайтесь на App2Top.ru в Telegram и во «ВКонтакте»

Есть новость? Поделитесь с нами, напишите на press@app2top.ru

Теги:

Комментарии

Денис Шевченко 2021-02-19 23:38:56

у меня только 1 вопрос: если все в итоге так хорошо закончилось, то зачем всему миру рассказывать всю внутреннюю кухню что в итоге хоть бери да повторяй?

0

    Егор Васильев 2021-02-22 12:50:51

    Денис Шевченко, ну повторите)

    0

Morlok Ru 2021-02-20 11:33:04

Так продюсер уходит в итоге с 2000$ на 4000$ или нет? Будет вторая часть?

0

    Егор Васильев 2021-02-22 12:51:16

    Morlok Ru, продюсер уходит работать над другими проектами.

    0

Ivan Kireiev 2021-02-21 00:02:51

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

0