В августе я уволился с работы, чтобы запустить свою первую мобильную игру. Мой проект провалился, но за 2 месяца я прошел все этапы создания игр. В статье рассказываю про инструменты, как планировал работу, настраивал монетизацию, запускал рекламу, анализировал данные и сотрудничал с издателями.
Коротко об игре
Шахматная доска, шахматные фигуры, но нет — не шахматы. В распоряжении игрока только одна фигура — конь. На верхней линии доски постепенно появляются вражеские фигуры, в основном пешки. Раз в секунду несколько вражеских фигур одновременно ходят. Количество ходов игрока при этом не ограничено. Фактически вас ограничивает лишь фреймрейт. У меня максимально получалось совершить 4 осмысленных хода между ходами соперника.
![](https://habrastorage.org/getpro/habr/upload_files/e4e/7fa/3d7/e4e7fa3d784840345dfb92a521714bbe.gif)
Цель игры: набрать как можно больше очков. Ценность срубленных фигур как в шахматах: срубленная пешка — 1 очко, слон и конь — 3 очка.
Чем дольше идет игра, тем больше фигур появляется одновременно на верхней линии, и тем больше фигур одновременно ходит. Игра заканчивается при достижении одной из пешек нижней линии или если фигуру игрока срубили.
Поставил среднесрочную цель
На долгое время оставаться без дохода психологически тяжело. Срок в 2 месяца звучал как что-то не страшное, что я определенно могу себе позволить. Цель сформулировал так:
Если за 2 месяца на своей игре заработаю хотя бы 1 доллар, то «продлеваю» еще на месяц.
Дальнейшие цели я видел как увеличение суммы в 10 раз: за третий месяц заработать $10, за четвертый — $100 и т.д. В целом, от $1000 увеличение менее чем на порядок меня тоже бы устроило.
Выбор игрового движка
В плане движка практически сразу выбрал Unity.
Ранее я уже пробовал бесплатные open source решения для геймдева и для чего-то серьезного использовал бы их с осторожностью. Доводилось, например, работать с Godot (GDScript) и Corona SDK (Lua). Коммьюнити не такие большие, сырой инструментарий и непопулярные языки программирования.
Про Unreal Engine слышал, но подробно не смотрел. Со стороны кажется, что перебор для мини-игры, но могу ошибаться.
Unity же в моем случае — это лишь условно-платное решение, т.к. для персональных разработчиков с доходом до $100k в год основной сервис предоставляется бесплатно. На старте о таком доходе можно только мечтать.
Ну и C# достаточно приятный язык, особенно после Lua. С опытом в Java дался без проблем.
Разбил работу на отрезки с маленькими целями
Годы в продуктовой разработке разучили работать по наитию, поэтому первым делом я составил бэклог доработок и видение MVP, спланировал первый спринт.
Как инструмент для планирования использовал Miro — крутая визуализация, гибкий и мощный инструмент. Рекомендую.
Планирование заняло совсем немного времени. При этом у меня появился четкий план работ. В течение первого спринта (10 дней) я ни разу не задумывался, чем бы заняться. Ну и как реклама целеполагания как такового: мой первый запуск состоялся уже через 10 дней после старта.
![В колонке «Текущее состояние» два скриншота того, что у меня было на старте: экран с доской и кнопкой Play. Плюс сырая механика. В колонке «Текущее состояние» два скриншота того, что у меня было на старте: экран с доской и кнопкой Play. Плюс сырая механика.](https://habrastorage.org/getpro/habr/upload_files/81c/d1e/4fd/81cd1e4fd65e1b2040ab8eddb0fa163f.jpg)
Изначально продумал на ~3 спринта вперед, где цель первого — запуск, второго — монетизация, третьего — техническая поддержка проекта, чтобы можно было проще вносить изменения в будущем. На тот момент я это видел как покрытие основного функционала тестами.
Так выглядел мой первый спринт:
![Строками выделены аспекты продукта, которые мне казались важными составляющими игры. Строками выделены аспекты продукта, которые мне казались важными составляющими игры.](https://habrastorage.org/getpro/habr/upload_files/055/006/a33/055006a33d3f10844ac430426f5142de.jpg)
Шаблон в miro «Product Roadmap».
Критерии для запуска взял из небольшой статьи «13 главных ошибок, мешающих разрабатывать игры». Основной посыл критериев:
Запускайте игру и получайте фидбек как можно раньше. Не только игру, любой продукт.
Первый релиз в Google Play (дни 0-10)
Чтобы публиковать мобильные приложения и игры для Android, нужно завести аккаунт разработчика в Google Play. Единоразовый взнос (на осень 2022 года) — $25.
Еще до старта каких-либо доработок завел страничку игры в Google Play и выложил на «внутренних тестировщиков» первую версию. Внутренние тестировщики — это люди, которым ваше приложение доступно для скачивания, тогда как остальные даже не увидят его в сторе. Технически это список Google-аккаунтов, до 100 штук, который вы контролируете вручную. Единственным тестировщиком в моем списке был я сам. По сути так я выложил игру в Google Play и протестировал весь флоу, не задевая реальных пользователей.
Перед каждой публикацией Google Play проверяет ваше приложение. Иногда вручную, но чаще автоматически. Автоматическая проверка в среднем занимает около четырех часов. Но первую версию, кажется, всегда проверяют вручную, что сильно дольше. Если вы приурочиваете запуск к определенной дате, позаботьтесь о заблаговременном прохождении проверки. Можно заранее пройти проверку, а опубликовать на пользователей уже в ручном режиме в желаемую дату.
![Часть отчета о тестировании в Google Play Часть отчета о тестировании в Google Play](https://habrastorage.org/getpro/habr/upload_files/dcf/653/520/dcf65352007fdbe42b6a5502b7f20f24.png)
Вот так выглядела одна из первых версий:
![](https://habrastorage.org/getpro/habr/upload_files/197/fb4/fd9/197fb4fd9016009cd3b0cbfb12a74790.png)
Хотя, на некоторых устройствах не совсем так:
![Google Play предоставляет такие скриншоты при проверке каждой новой версии Google Play предоставляет такие скриншоты при проверке каждой новой версии](https://habrastorage.org/getpro/habr/upload_files/c0b/dd3/335/c0bdd3335af0694176475acb9731aa5f.png)
Одна из основных проблем разработки под Android — сделать так, чтобы на всех устройствах выглядело примерно одинаково. На скриншотах выше, например, количество набранных очков выглядит абсолютно по-разному. И это еще не говоря о диалоговом окне в полутора ширины экрана.
С Android SDK я понимал как это обработать, а вот как с Unity — еще не знал. Пошел читать документацию и собирать информацию в интернете. UI есть в каждой игре, вот краткий список ресурсов, которые точно пригодятся:
Anchors — привязка UI элементов относительно краев экрана, официальная документация.
Content Size Fitter — растягивание элементов относительно содержимого, официальная документация.
Safe Area Helper — размещение элементов с учётом особенностей смартфонов с вырезами под камеры, библиотека.
Отдельная камера для UI, туториал на youtube.
Визуальный итог первого спринта:
![](https://habrastorage.org/getpro/habr/upload_files/c81/fc5/1ab/c81fc51ab462691d6ef00ca8ae0281c2.png)
Иконкой не горжусь. Рисовал ручкой на айпаде в платной программе ProCreate. Именно в плане геймдева не могу рекомендовать, но в целом как программа для рисования пойдет, племянникам нравится.
Итоги спринта:
Рабочий прототип, покрытый базовой аналитикой.
Первую версию Google Play проверял более 4-х суток.
Спустя неделю после релиза игру ожидаемо скачали 0 человек.
Отсутствие установок не было сюрпризом. Игра нигде не рекламировалась, не имела кликбейтового названия и в целом была неким экспериментом в плане игровой механики, так что и по жанру найти невозможно. Первое время мне, даже зная название своей игры, было сложно отыскать ее в Google Play. Название содержало приставку «Chess» и игру перекрывал топ хоть сколько-то популярных шахматных приложений.
Держите в уме, что получить первых пользователей без минимального вложения в рекламу вряд ли получится. Кажется, оптимальный вариант для получения первой обратной связи — пойти по знакомым и попросить их поиграть. Так я и сделал. Среди моих первых пользователей были жена и трое друзей.
Фидбек лучше сразу записывать и закидывать в бэклог для дальнейшей приоритезации. Примеры идей, которые я собрал:
Различного рода достижения и бонусы.
Онбординг для новичков, чтобы объяснить правила игры.
Мишени на пешках, чтобы было очевидно, что их можно срубить.
Монетизация free-to-play игр, встроил рекламу (дни 11-18)
Говорят, монетизировать продукт нужно начинать как можно раньше. В идеале даже MVP должен быть платным, чтобы вы понимали, что люди за ваш продукт готовы платить.
В казуальных же играх экономика часто строится на бесплатном продукте со встроенной рекламой. Интересная статья на тему. Таков был и мой план. При том, что цель — заработать 1 доллар за 2 месяца, мне казалось логичным закинуть короткий рекламный баннер на каждую, скажем, четвертую попытку игрока, чтобы копейка-за-копейкой достичь этой цели.
Дни 10-14 заняла проверка гуглом первой версии и новых данных для планирования у меня не было. Решил идти по изначальному плану. Так появился второй спринт, целью которого стало внедрить рекламу:
![](https://habrastorage.org/getpro/habr/upload_files/def/80b/6f7/def80b6f7edd68e090c65f2500b8bf75.jpg)
Встроить рекламу с помощью инструментов Unity оказалось достаточно просто, использовал Unity Mediation. Со всем управился за несколько часов, и у меня еще оставалось время на то, чтобы улучшить саму игру.
Примерно тогда же я ознакомился с еще одной занимательной статьей с анализом топа мобильных игр и переосмыслил основные составляющие своей игры. С прицелом на эти самые составляющие захотелось приоритезировать свой бэклог, чтобы наносить пользу проекту там, где она в моменте наиболее ценна. Так появилась первая версия стратегии развития продукта:
![](https://habrastorage.org/getpro/habr/upload_files/92a/5e8/f01/92a5e8f01b09640daac56f3f1b268f3a.jpg)
По сути на этой схеме смешаны: аспекты игры, бэклог и в каком-то роде стратегия развития. Аспекты в статье выше описаны не совсем так, как у меня. Схему я позже модернизировал, этот блок больше для истории.
Странно делать улучшения направленные на удержание пользователей, если у тебя нет пользователей. Поэтому решил сфокусироваться на вещах, важных при первом взаимодействии с игрой: интерфейс и геймплей.
Визуальный итог второго спринта:
![Получилась какая-то около-японская тематика: сакура, фудзи, древесные кнопки. Получилась какая-то около-японская тематика: сакура, фудзи, древесные кнопки.](https://habrastorage.org/getpro/habr/upload_files/605/dc5/c00/605dc5c00ceb79bfa88a3494c3a641af.png)
Из интересного: кнопки моделировал в 3D, с прицелом что когда-нибудь добавлю им анимации взаимодействия. Пользовался мощной open source программой Blender. Определенно рекомендую. Потрясает, что продукты такого шикарного качества могут быть опенсорсными.
На моделирование трех уникальных по дизайну кнопок ушло всего пара часов. Полезные видео, которые в этом помогли:
Попутно забавы ради реализовал еще и 3D-фигурку коня. Не пригодилась, но сам процесс мне понравился. Как освоение новой профессии.
![](https://habrastorage.org/getpro/habr/upload_files/db0/20f/2ab/db020f2ab51d5d42857be8ebb16f930c.gif)
В плане геймплея реализовал комбо-режим — при рубке трех фигур подряд их движение останавливается на 5 секунд, юзер может пробежаться по доске и собрать стоячие пешки. Среди других идей комбо-режим был «низко висящим фруктом», т.е. его было быстро реализовать, и это добавило разнообразия в игру.
Итоги спринта:
Внедрил монетизацию в виде рекламы.
Освоил базу 3D-моделирования.
Скачиваний: 3 — скачали друзья. Даже появилась одна оценка в 5 звезд — еще один плюс друзей как первых пользователей.
По итогу за спринт было несколько значимых инкрементов: реклама, UI, комбо-режим. Но при этом я ждал конца спринта, чтобы выкатить их все разом. Поняв бессмысленность такого календаря релизов, в следующие спринты я уже не ждал каких-то дат и релизил сразу, как только было что-то стоящее. Ну и сами спринты сделал короче, т.к. фултайм занимался проектом и продвигался достаточно быстро.
Как я решил отдохнуть от задач: тесты и рефакторинг (дни 19-22)
Не забывайте отдыхать.
Изначально думал взять себе пару выходных и совсем не заниматься проектом. Но так вышло, что в качестве отдыха в эти дни я не торопясь в свое удовольствие покрыл часть функционала автотестами и порефакторил.
В Unity достаточно просто писать тесты, но понятно, что многие маленькие проекты вряд ли когда-либо вообще доходят до этой стадии. Официальный мануал по тестированию в Unity.
![Пример теста на стратегию соперника: ходы фигур рандомные, но если есть возможность срубить, стратегия должна вернуть как ход именно рубку. Пример теста на стратегию соперника: ходы фигур рандомные, но если есть возможность срубить, стратегия должна вернуть как ход именно рубку.](https://habrastorage.org/getpro/habr/upload_files/06c/8c1/20a/06c8c120a03c2fb6fa0af65edaf33d52.png)
Итоги «выходных»:
Появились автотесты.
Оптимизировал часть алгоритмов.
![По прошествии двух месяцев в проекте 17 unit-тестов и 2 UI По прошествии двух месяцев в проекте 17 unit-тестов и 2 UI](https://habrastorage.org/getpro/habr/upload_files/3aa/011/cd6/3aa011cd6ea46346fb123cbd6c103024.png)
Где взять установки?
У игры за предыдущий спринт появился опрятный UI, но по-прежнему не было реальных пользователей, поэтому следующей целью стало их найти.
С одной стороны, можно потратить немного денег на рекламу. С другой — попробовать закинуть ссылки в какие-нибудь чаты и группы. В моем случае это, вероятно, что-то связанное с шахматами.
Подготовка креативов для рекламной кампании
Очевидной площадкой для рекламы была Google Ads — самая большая и самая близкая к теме Android. Жена вызвалась помочь с настройкой рекламной кампании. Вот так она описала мне требования для креативов на этой площадке:
![](https://habrastorage.org/getpro/habr/upload_files/ef7/724/b7f/ef7724b7f22a342ce93fba94f200d32e.jpg)
Итоговые материалы для рекламы:
Видео геймплея, которое также использую в Google Play на странице приложения.
Два изображения, на основе которых нарезал баннеры по требуемым форматам:
![](https://habrastorage.org/getpro/habr/upload_files/28d/e8e/b8d/28de8eb8d95181647e5ba02de61f307e.png)
У нас с женой разделились мнения, какое изображение лучше использовать: с плотными полосками или с пунктирными. Благо, запустить рекламную кампанию можно с набором из разных креативов. По итогу вы сможете увидеть, какой из наборов сработал лучше.
Для записи видео использовал встроенный в Unity видео-рекордер. Для создания баннеров подойдет практически любой фоторедактор. Обычно я вбиваю в гугл «фотошоп онлайн» и пользуюсь первым попавшимся.
Неудачная попытка запустить рекламу в Google Ads
Изначально мне не давали зарегистрироваться в Google Ads, т.к. мой платежный аккаунт Google был привязан к России. Перепривязал на свое текущее местоположение — Грузию, официальная инструкция. При этом нужно удалить российские платежные данные, иначе зарегистрироваться так и не даст. Менять страну можно не чаще раза в год.
Через пару дней новая локация проросла, дали зарегистрироваться. Но при попытке запустить рекламу получил бан «за подозрительные транзакции». Подумал, что это связано с тем, что для оплаты я привязал карту сербского банка (жили все лето в Сербии и на карте оставалось немного денег). Однако после изменения платежных данных на грузинские бан не сняли. Писал в поддержку, но объяснения так и не получил. Только пишут, чтобы не пытался создать другой аккаунт — его тоже забанят.
Решил использовать другую площадку.
![](https://habrastorage.org/getpro/habr/upload_files/9ac/bb7/be9/9acbb7be9ddf6ff49f0c197ba77da2a2.png)
Закинул игру в профильный чат, завел новые знакомства
Как параллельная рекламной кампании активность — пошел искать, в какой чат написать. Ни один шахматный я не знал, а залетать в случайный и начинать диалог с рекламы своей игры — как-то бескультурно. В итоге написал в одном небольшом коммьюнити игроделов, в котором уже состоял. С опрятным интерфейсом было не стыдно делиться игрой с людьми.
![](https://habrastorage.org/getpro/habr/upload_files/481/d0d/84a/481d0d84ab86acbd877ff5455af005af.png)
В чате я познакомился с парнем, который пообещал помочь с первыми установками от реальных пользователей, не накрутка. Мы с ним созвонились и далее мой краткий пересказ того, как работает рынок казуальных игр и как на нем выживают новички. Кто хочет опробовать свою идею игры — может быть интересно и полезно.
![](https://habrastorage.org/getpro/habr/upload_files/105/ba5/f80/105ba5f80c15d88cecd5bb4aeb6ec072.png)
Как устроен рынок гипер казуальных игр
Геймдев, как минимум в области гипер казуальных игр, делится на две составляющие: производство и маркетинг. Если производством можно назвать разработчика и, например, дизайнера, то маркетинг — это что-то вроде владельца продукта, аналитика и маркетолога.
На рынке есть несколько компаний, называющих себя издателями, берущих на себя функцию маркетинга. Обычно сотрудничество состоит из нескольких этапов:
Разработчик делает прототип игры.
Разработчик добавляет в прототип нужную издателю аналитику.
Издатель проверяет, что все аналитические события отправляются корректно и запускает маленькую рекламную кампанию игры за свой счет: несколько десятков долларов, пара дней рекламы.
По итогу кампании издатель считает CPI и Retention, чтобы понять потенциал игры. Абстрактно: насколько игра интересна со стороны (люди кликают по рекламе и устанавливают) и насколько игра интересна спустя время (как надолго новые пользователи задерживаются, как активно пользуются).
Дальше есть варианты:
Если игра показывает хорошие результаты — дешево привлечь новых пользователей, а старые задерживаются так, что на них можно заработать — издатель предлагает разработчику контракт. По условиям контракта издатель вкладывает деньги в рекламу, а прибыль сверх затрат на рекламу издатель и разработчик делят, скажем, 50/50. Читайте свой контракт.
Пример: издатель влил в рекламу 100 тысяч долларов -> прибыль с этого, допустим, за месяц за всех пользователей, пришедших с рекламы — 150 тысяч долларов -> издатель забирает 100 тысяч как возврат за рекламу, а остаток вы делите пополам, т.е. ваших — 25 тысяч.
Если цифры после запуска проверочной кампании спорные, издатель на основе своего опыта дает рекомендации по улучшению игры. По мере реализации вами этих улучшений издатель вновь может попробовать протестировать игру новой маленькой рекламной кампанией.
Ну и если цифры объективно не очень, скорее всего, будет просто сухой отказ, совет попробовать другой проект.
Из описания выше вместо слова «издатель», кажется, больше бы подошло определение «инвестор». Кто-то с деньгами, готовый инвестировать в вашу игру.
Во многих случаях сотрудничество с издателем выглядит очень даже привлекательно. Например, если у вас нет денег на рекламу или навыков аналитики, продакт менеджмента и маркетинга. Либо же вообще нет желания этим всем заниматься — вы пришли в геймдев просто ради фана. В рекламу вливаются порой десятки тысяч долларов, аудитория растет, а вы получаете условно пассивную прибыль и удовлетворение своего эго.
Но это если игра нашла аудиторию. Отдавайте себе отчет, что даже если всем вашим знакомым игра сильно понравилась, реальные пользователи могут не оценить. Наверно, звучит очевидно, но не стоит влюбляться в свой продукт.
Всегда держите в голове, что игра может провалиться и придется заниматься чем-то другим.
На что жить, пока делаешь прототип для издателя?
Конкретно в казуалках, как я понял, чаще всего у разработчика есть еще и постоянная работа, а геймдев — это, скорее, хобби. Но есть варианты договориться с издателем о финансировании разработки прототипа. Если разработчик и издатель уже знают друг друга, можно принести идею игры с оценкой трудозатрат на реализацию, и есть шанс, что тебя профинансируют.
Сотрудничество с издателем: добавил аналитику (дни 23-29)
В целом, я и сам мог посчитать и CPI, и Retention. И даже денег на маленькую рекламную кампанию мне было не жалко. Но учитывая, что Google забанил мой рекламный аккаунт, путь меньшего сопротивления был попробовать сотрудничество с издателем. Да и интересен был итоговый фидбек при любых результатах теста. Решил попробовать.
Для издателя было необходимо:
Подключить в проект 2 аналитических SDK: AppMetrica и Game Analytics.
Реализовать отправку нескольких простых событий.
Для трекинга установок подключить SDK запрещенной в России социальной сети. Рекламную кампанию издатель запускал именно в этой сети.
Всё заняло порядка четырех дней. Еще день на доработку креативов под формат рекламной площадки, т.к. требования отличались от Google Ads. Всё сделал, передал издателю.
![](https://habrastorage.org/getpro/habr/upload_files/770/d95/277/770d95277c290eeeb6464d324f2d9853.jpg)
В ожидании фидбека издателя (дни 30-38)
Пока ждал результаты теста, мне никто не запрещал публиковать новые версии, чем я и занялся.
Перед стартом очередного спринта немного переосмыслил бэклог и стратегию: оформил аспекты игры, как некоторые стадии CJM — путь пользователя в игре с течением времени:
![](https://habrastorage.org/getpro/habr/upload_files/647/498/51d/64749851d535bbdd6a15fc7994218af1.jpg)
С таким бэклогом стало проще фокусироваться на слабых местах в воронке пользователей:
Если мы понимаем, что пользователи не скачивают приложение — проблема на стадии принятия решения, часто в визуале.
Если пользователи скачивают игру, но быстро уходят — возможно, что-то не так с геймплеем и его подачей.
Если же на предыдущих двух стадиях у проекта всё отлично, но долгосрочный Retention хромает — следует уже поработать над механиками прогресса, соревновательными и клановыми механиками, жизнью в background и т.д.
Так все последующие спринты я практически полностью фокусировался на визуальной и геймплей составляющих, оставляя долгосрочные механики до лучших времен. Монетизация и техдолг, вероятно, должны быть также размазаны по оси CJM. Но мне было удобнее видеть их отдельными столбиками, чтобы не забывать и постепенно выгребать.
С приоритетом стадий разобрался, но в фокусных столбиках все равно было слишком много задач, всё в один спринт не вместилось. Решил еще немного отсеять и приоритезировать.
На основном CJM я отмечал звёздочками реализуемые вещи, не заблокированные чем-либо. Затем отмеченные задачи переносил на две следующие плоскости:
![](https://habrastorage.org/getpro/habr/upload_files/c33/9ef/17c/c339ef17c826b0221bdf21339a1d7ea7.jpg)
По оси Y на графиках польза и важность задач, у меня эти понятия практически всегда совпадали. По оси X на левом графике оценка усилий для реализации, а на правом — срочность. Оцениваешь задачи, становится очевидным, что сейчас самое срочное, важное и при этом требует адекватных усилий. Шаблоны в miro:
Левый график — Impact-Effort.
Правый график — Importance-Urgency.
Как в итоге выглядел следующий спринт:
![](https://habrastorage.org/getpro/habr/upload_files/c2a/0c9/af5/c2a0c9af5ef58db83c87e0206a9a9510.jpg)
Итоги спринта:
Появился полноценный симпатичный туториал. На клетках для рубки появились мишени. Оба улучшения призваны помочь новым пользователям сориентироваться в правилах игры.
Устаканились инструменты для планирования. Далее схему не менял.
По середине спринта издатель пришел с тем, что все события отправляются корректно, а вот креативы нужно немного доработать — не попали в соотношение сторон для видео. Всё быстро сделал, но во временных рамках спринта рекламу уже не успели запустить. Снова ждем. Пока продолжил заниматься игрой.
Музыкальное оформление (дни 40-50)
Одна из важных вещей, влияющих на впечатление от игры — это звуки и музыка.
За тот месяц, что игра в сторе, я набросал саундтрек на айпаде в бесплатной программе GarageBand. Штука крутая, рекомендую. Использовал китайский и японский набор инструментов, под стать визуальному оформлению.
![Интерфейс программы GarageBand Интерфейс программы GarageBand](https://habrastorage.org/getpro/habr/upload_files/c1b/fed/1af/c1bfed1af5daab3d16503212bb733132.png)
Музыку выложил в open source, может кому-нибудь пригодится:
Но нельзя просто включить пользователю музыку и ждать, что ему понравится. Раскатить улучшение я посчитал невозможным без кнопок включения и выключения звуков и музыки. И тут вишенка на торте, без гифки не обойтись:
![](https://habrastorage.org/getpro/habr/upload_files/ed2/42e/00a/ed242e00a1b83756c6c7d04c0d162fff.gif)
Сами кнопки реализованы все в том же Blender, и импортированы в проект как 3D-модели. При клике кнопка поворачивается к пользователю другой стороной. А при множественном клике градус поворота накапливается и происходит ускорение. Мелочь, большинство пользователей вряд ли заметит, а мне нравится.
Выложил пакет 3D-моделей со скриптами в Unity Assets Store.
Исходники Blender моделей на github.
Отдельно скрипты для вращения 3D-объектов по клику.
Туториал как в Unity вставить 3D-объект в UI.
Второе попавшее в спринт улучшение касалось геймплея. Добавил во вражеский ассортимент слона и коня, разнообразил геймплей.
Скрины планирования прилагать уже не буду. Вот таким получился спринт:
![](https://habrastorage.org/getpro/habr/upload_files/da4/bd7/508/da4bd750872bbdeec9cfd282c7eeef57.jpg)
Итоги спринта:
У противника в ассортименте появились слоны и кони.
Добавил музыкальное сопровождение.
Результаты от издателя: CPI $3.26, отказ
По ходу спринта заметил на графиках всплеск новых пользователей. Так я понял, что запустили рекламу. По данным Google Play, пришли 10 человек.
![](https://habrastorage.org/getpro/habr/upload_files/e41/f68/d89/e41f68d897124db1af2150519600573f.png)
По данным издателя, пришли 7 человек. Возможно, кто-то из пришедших порекомендовал игру знакомым, что засчиталось как органический трафик, а не клики по рекламе. Либо сотрудники издателя тестировали баннеры.
В рекламной кампании крутилось 3 видеоролика. На каждом из них просто запись экрана во время игры. Мне рекомендовали играть для видео немного «тупя». Это должно было замотивировать потенциальных пользователей скачать игру и «показать, как надо». Кому показать? История умалчивает. Но чувство знакомое, видел подобную рекламу и также хотелось кому-то что-то показать.
Мое личное видение игры — это что-то драйвовое, во что скучно играть тупя. Результаты по CPI это больше подтверждают, чем опровергают. Так для кампании я отдал издателю 3 ролика разного рода «сообразительности» игрока. Кодовые названия: Hard, Medium и Easy. От самого умелого пользователя до наименее умелого.
![Наилучший CPI = $3.26 показало Hard видео Наилучший CPI = $3.26 показало Hard видео](https://habrastorage.org/getpro/habr/upload_files/7df/fa2/1ac/7dffa21acf3ea7715c6a63068edf3af0.png)
Мне сказали, $3.26 — это очень много. Т.е. новых пользователей привлекать очень дорого.
По итогу рекламной кампании мне посоветовали попробовать вложить силы в другой проект.
Тут можно, конечно, задать вопросы:
Можно ли доверять числам, полученным на такой небольшой выборке: всего 400 показов по ролику Hard?
Был ли какой-то таргетинг у рекламы? Например, на тех, у кого уже установлено одно из шахматных приложений.
Может быть рекламные креативы выглядели непривлекательно?
В открытых исследованиях нашел, что в 2021 году году средний CPI для казуальных игр был в районе $2. При этом в Северной Америке CPI в среднем на уровне $6,36 для всех казуальных игр, а реклама от издателя как раз была направлена в основном на Штаты.
Как бы то ни было, фидбек издателя — не приговор, и прежде чем сдаться я решил проверить еще пару гипотез:
Попробовать запуститься на iOS с условной ценой за установку в $1. Посмотреть, насколько хорошо работает такая монетизация.
Попробовать самостоятельно провести рекламную кампанию с новыми креативами. Пройти, так сказать, весь путь.
Неудачная попытка запуститься на iOS
Чтобы иметь возможность зарелизить приложение или игру на iOS, нужен Apple Developer Account. Регистрируется он в специальном приложении из AppStore.
И хорошо, что я попытался завести такой аккаунт раньше любых адаптаций проекта, т.к. завершить подачу заявки не вышло. При принятии условий вылетает сначала неизвестная ошибка, а потом сообщение о невозможности подать заявку в данный момент.
![](https://habrastorage.org/getpro/habr/upload_files/4ce/5b9/c17/4ce5b9c17a89a2dc3412997e43210273.png)
По сети видел подобные сообщения, решения — не видел. Других путей зарелизить на iOS не знаю. Видимо, не в этом году.
Попутно еще посмотрел возможность зарелизить в какие-нибудь китайские магазины приложений. Google Play в Китае не доступен, а аудитория миллиардная. Все локальные магазины требуют наличие юрлица в Поднебесной. Для меня это пока тоже не вариант.
Запуск собственной рекламной кампании
Цели ставил такие:
Самостоятельно пройти этапы рекламы и анализа данных по привлечению.
Поэкспериментировать с новыми креативами, которые потенциально будут работать лучше.
Google Ads отпал. Из других площадок выбрал Unity, как простейшую в оформлении: доступ к платформе осуществляется из личного кабинета Unity, который у меня уже был.
Наученный горьким опытом первым делом пошел проверять юридические и финансовые возможности запустить рекламу.
Пополнение бюджета через PayPal как отдельное приключение
Я был готов потратить до $100 на рекламу. Единственный возможный способ пополнить бюджет в Unity — это PayPal, американская компания, приостановившая регистрацию россиян в марте этого года. Но я же в Грузии, решил попробовать.
При пополнении бюджета Unity перенаправляет на PayPal. Если нет аккаунта, предлагает зарегистрироваться. Но при регистрации для выбора нет как страны Russia, так и национальности Russian.
![](https://habrastorage.org/getpro/habr/upload_files/bc9/ce7/85d/bc9ce785dcf807f8a841d5347494504d.png)
Та же история, если пробовать с браузера на телефоне. Мобильное приложение не скачать, т.к. оно не распространяется в Грузии. Полагаю, не распространяется и в России.
![](https://habrastorage.org/getpro/habr/upload_files/fcf/4f5/4a4/fcf4f54a4912222fddecbec242cbfa54.png)
Но я нашел обходной путь. Дальше кейс из разряда «не повторяйте это дома»:
Зашел на сайт PayPal напрямую, не по редиректу с Unity.
Начал регистрацию по номеру телефона.
Ввел грузинский номер, подтвердил смс-кодом — по сути аккаунт создан и верифицирован, нужно только дозаполнить кое-какие данные. Национальность, например.
При дозаполнении данных существующего аккаунта уже есть опция Russian. Всё ввел, сохранил. Так далеко я еще не заходил.
Указал для платежей сербскую карту.
Не теряя времени, вернулся в Unity и пошел пополнять бюджет для рекламной кампании.
Unity редиректит в PayPal.
Куки говорят, что я уже авторизован — попал сразу на страничку оплаты.
Выбрал карту, смс-код от банка. Пара секунд и деньги на моем счету в Unity.
Профит.
Буквально через 10 минут мне пришел email от PayPal, что из-за подозрительных транзакций действие моего аккаунта приостановлено. Попросили предоставить им дополнительные данные, среди которых паспорт. Всё предоставил, спустя две недели аккаунт все-таки разморозили. Но в тот момент рабочий PayPal мне уже был не нужен, средства были на аккаунте Unity, и рекламу я мог оплатить.
Дело за малым:
Подготовил новые динамичные креативы
Страна распространения: США
Дневной бюджет: $50
Бюджет всей кампании: $100
Bid: $1
Запустил
4 дня кампании, разница между Bid $1 и $3
Bid — это максимальная цена, которую я готов платить за каждый клик по моей рекламе. Unity рекомендует выставлять его как мой целевой CPI, выбрал $1. Рекламные алгоритмы стараются оптимизировать показы так, чтобы цель по CPI была достигнута. Всю кампанию я делю на два исторических этапа именно по тому, какой Bid я выставлял.
График производительности кампании за три дня с Bid = $1:
![Показы, установки и затраты — это числа разного порядка. Для каждого показателя по оси Y шкала своего цвета. Показы, установки и затраты — это числа разного порядка. Для каждого показателя по оси Y шкала своего цвета.](https://habrastorage.org/getpro/habr/upload_files/016/2c7/011/0162c701146ec4dd94a5fb523cabb4f8.png)
Выглядит несколько запутанно, но разобраться можно.
Запускал поздно вечером 7 ноября. Из первых четырех просмотров получилась одна установка. Перед сном у меня было приподнятое настроение. Но всё пришло в норму уже на следующее утро, где на 80 просмотров оставалась всё та же одна установка. На третий день больше всего показов, но вообще ни одной установки.
Статистика за три дня:
Показов: 194
Установок: 2
Потрачено: $5.21
CPI: $2.6
CPI уже чуть лучше, чем у издателя, но все равно хуже, чем нужно. При этом очень много времени занимает получение результатов, очень мало показов ежедневно — так влияет Bid. Решил ради эксперимента поднять Bid до $3.
![График за девятое и десятое ноября. Девятого Bid равен $1, десятого — $3 График за девятое и десятое ноября. Девятого Bid равен $1, десятого — $3](https://habrastorage.org/getpro/habr/upload_files/f22/192/a70/f22192a70ba4aef4bd58d8962d77666f.png)
Показы и затраты значительно выросли, а вот установки — нет.
Статистика за четвертый день:
Показов: 1806
Установок: 4
Потрачено: $46.3
CPI: $11.6
Дорого. Кампанию остановил.
На этом я оставил надежды на дальнейшее развитие проекта.
Немного аналитики
Все числа привожу на 18 ноября, в завершение работы над данной статьей.
Время:
От первой строчки кода до заморозки проекта прошло 2 месяца и 3 дня.
Рабочие дни от нерабочих отделить сложно, но суммарно дней 10 я вообще не прикасался к ноутбуку.
В среднем в неделю я тратил на проект 25-30 часов. Не помню ни дня, чтобы я сидел больше пяти часов.
По занятости я бы оценил так:
30% — написание кода.
30% — вся дизайнерская часть: иконки, баннеры, кнопки и т.д.
20% — взаимодействие с издателем: внедрение аналитики, подготовка креативов.
10% — создание саундтрека, написание музыки.
10% — всё остальное: планирование, тестирование, работа с различными платформами.
Деньги:
Лучший CPI:
от издателя: $3.26
от своей кампании: $2.6
На свою рекламную кампанию потратил $51.5, остальные инструменты бесплатные, либо были мною оплачены ранее, как например аккаунт разработчика Google Play.
Внутри игры всего было 73 показа встроенной рекламы: ролик продолжительностью от пяти секунд и после него рекламный баннер.
Все эти показы суммарно принесли мне $0.077 — почти 8 центов.
Игра:
До пользователей доставлено 15 версий игры, из которых 3 — хотфиксы
Всего установок: 40
Среднее количество одновременно активных установок: ~12
Retention:
1-2 дня: ~7%
3-9 дней: ~3%
10+ дней: около нуля
Среднее время в игре за сессию: 2 минуты 23 секунды
Итог и дальнейшие планы
Вначале у меня была цель заработать хотя бы 1 доллар. За 2 месяца получилось заработать почти 8 центов на рекламе.
Замораживать то, во что вложил свои силы и эмоции — немного расстраивает, но за несколько дней отпускает. У меня есть свежие идеи других игр и с багажом новых знаний мне кажется вполне реальным пройти весь цикл с издателем в рамках месяца. Плюс в этот раз подключу знакомого дизайнера, должно выйти привлекательнее. Параллельно начну искать работу, как минимум на частичную занятость.
Точно ни о чем не жалею: отдохнул от «горящего энтерпрайза», приобрел новые интересные навыки, прикоснулся к самой творческой части IT-индустрии и довел игру до релиза. Даже выпустил десяток версий и улучшений.
Полезные материалы
Отдельно выделю то, что не вошло в основное повествование, но определенно повлияло на меня:
Выступление на конференции Джона Ромеро про историю становления id Software.
Большая серия коротких обучающих видео по Blender.
Особенно запомнилось видео про 3 точки света — технику, вероятно, знакомую всем фотографам и видеоблогерам.
Видео с конференции Blender про фотореализм в ToyStory.
В этом блоке собраны все ссылки, упомянутые в статье.
Про геймдев:
Инструменты:
Unity — движок для создания игр.
Blender — 3D-моделирование, анимация, дизайн.
Miro — доска для визуализации чего-угодно.
GarageBand — бесплатная программа для создания музыки на iOS.
ProCreate — платная программа для рисования на iOS.
Google Play Console — портал разработчика в Google Play.
AppMetrica — аналитика.
Game Analytics — аналитика.
Туториалы:
Unity
Запись видео, например, для рекламной кампании .
Blender
Процедурно генерируем древесный материал.
Перепривязка локации Google аккаунта.
Заведение iOS Developer аккаунта.
Open source:
Safe Area Helper — размещение элементов UI с учитетом особенностей смартфонов с вырезами под камеры.
Soundtrack игры
3D вращающиеся кнопки
Ну и напоследок, главный герой статьи в Google Play. Как понимаете, на iOS поиграть пока не выйдет.
На этом всё. Буду рад любому фидбеку. Спасибо за внимание.