Как я выпустила свою вторую игру на Яндексе или почему игры оказываются на дне поиска

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

Основным открытием для меня стал рейтинг, который показывается в углу обложки игры. Он выглядит как общий показатель качества игры от самого Яндекса, поэтому сильно влияет на кликабильность той или иной игры пользователем. Каким же было мое удивление, когда по прошествии 2 недель я получила свои 26 балов и узнала, что на самом деле эта цифра показывает только количество игроков и их удержание в игре. То есть, если у вас вышла новая игра и в нее поиграло 10 человек, из которых только один остался на 5 минут, то рейтинг у вашей игры будет где-то 20-30. Что сразу же отобьет желание заходить у других пользователей, что еще больше понизит ваш рейтинг.

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

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

Первое, что я обнаружила - это взаимосвязь скорости загрузки игры и ее успеха. Это довольно логично, ведь никому не хочется долго ждать пока загрузится твои любимые 3 в ряд, ведь автобус уже подъезжает. Оптимальным считается 2-3 секунды, а у меня в первой игре было 18 треков с музыкой (18, Карл!!!), что привело к 23 мб и 10 секундам загрузки. Поэтому на старте многие заходили на пару секунд и сразу же выходили, а я по неопытности думала, что же им так не зашло в дизайне меню. В последнем обновлении игры я это пофиксила, теперь игра открывается за 3-5 секунд, посмотрим, повлияет ли это на что-то.

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

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

Массивы в Construct (*играет зловещая музыка)

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

За основу для новой игры я взяла цветной пазл I love hue, который мне когда-то очень нравился. Для архитектуры такой игры массивы необходимы, так как нужно запоминать кучу всяких цветов, положений блоков и так далее. Вот так выглядит игра сейчас.

Я долго не могла понять, почему блоки не хотят нормально шафлиться, положения путаются между собой, а штрудель все дальше и дальше от меня. А потом я узнала, что массивы в Construct работают совсем не так, как я привыкла. Тут, если у вас есть что-то типа [[1,2],[3,4]] при попытке использовать шафл получается, например, [[2,3],[1,4]], вместо привычного [[3,4][1,2]]. Это как при попытке перемешать номера в телефонной книге - вместо изменения позиции самого номера - ты просто мешаешь цифры в номерах и сидишь радуешься этому безумию.

А все потому что тут все как в табличках exсel, есть х - колонки, y - ряды, а еще есть z - что обозначает следующую страницу с такими же таблицами. А еще тут нельзя просто взять, создать пустой массив и ждать, что в него можно будет что-то добавить, нет. Надо заранее задать ему нужное количество ячеек, а только потом что-то туда добавлять. Больно.

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

Дальше задача была сделать красивые градиенты. Тут пришлось поизучать теорию цвета и вспомнить математику (а я гуманитарий, между прочим). Тут мне помог всемогущий lerp, при помощи которого я плавно передвигаюсь от одного цвета к другому на каждом новом квадратике. Цветов всего 4, по одному на каждый угол. Один lerp для перехода между левым и правым цветом, а другой для обновления этих цветов в соотвествии с нижними цветами раз в ряд. Выглядит это как-то так.

Как я выпустила свою вторую игру на Яндексе или почему игры оказываются на дне поиска

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

И тут я узнала про Drawing Canvas и его крутую фичу с возможностью делать скриншот экрана. И тогда меня осенило, что можно сделать картинки с нужными палитрами, по одной на каждый кадр, брать данные rgb из скриншота этой палитры и использовать их. А при смене уровня просто менять кадр на новый. При таком решении замена цвета на новый решается при помощи обычного бакета в редакторе спрайтов, которым мы заливаем нужный нам цвет. Вот так это выглядит.

А еще тут есть разные анимации от простых цветов к более сложным
А еще тут есть разные анимации от простых цветов к более сложным
А вот и сам код для скриншота
А вот и сам код для скриншота

Также в игру я добавила возможность смены цвета, подсказки и темную тему, которых нет в I love hue. И да, я знаю, что делать игры на основе других игр не так круто, как создавать свой уникальный супер проект, но моя задача научиться и плюс было круто понять, как же сделана одна из моих любимых игр. В итоге, игру я сделала за 2.5 недели, так как много времени ушло на создание красивых палитр и борьбу с массивами. Игра загружается за 5-8 секунд, хотя весит всего 3 мб. А вот первая игра весит в 3 раза больше, но грузится почему-то быстрее. Пока не до конца поняла, как это работает, так что была бы благодарна, если подскажете, как все устроено и как эти показатели улучшать.

А еще немного попробовала продвижение игр. Потратила 300р, заработала 30р. Очень удобно. Странно, что никак продвижение настроить нельзя, и на неделю рекламы советуют тратить 7к рублей. Пока пробовать не очень-то хочется, но по логике того самого рейтинга из начала статьи - чем больше людей зашло, тем выше рейтинг и тем больше трафик и доходы. Но это пока только теория, если кто-то пробовал что-то подобное, напишите, пожалуйста, какие впечатления.

И спасибо всем, кто зайдет потестить игру. 💜

P.S. Музыку тоже написала сама, давно хотела сделать что-то такое умиротворяющее и медитативное.

25
12 комментариев

не благодарите

6
Ответить
Автор

Упущена важная тема про штрудели, вообще-то.

12
1
Ответить

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

Ты ведь не будешь кидать в нейронку обычный задушевный разговор, чтобы она выдала: это было простое человеческое общение.

2
Ответить

Яндекс показывал количество пользователей у игры. Мне кажется, что такой показатель намного информативнее

По поводу рейтинга здесь всё не так однозначно. У старых игр было зашкаливающее количество игроков, при этом она считалась как клик. По сути "игроки" это значение из числителя CTR. Чем дольше на платформе, чем у тебя был лучше фичеринг, привлекательнее обложка, описание, гифки, скрины, было больше кликов, тем выше это значение. При этом игра может быть слабой, игрок мог провести 5 секунд, мог больше никогда не вернуться, зато много каких-то абстрактных игроков на странице игры.

А рейтинг, композитная метрика: retention, DAU, playtime на игрока. Это хотя бы взгляд на игру с разных сторон. Тоже не без нюансов. Не знаю какие веса используют.

Я так понимаю, что отображение этой метрики для игрока они ещё сами аб-тестят. Подозреваю, что в будущем это значение будет видно разработчику и рекомендеру.

2
Ответить
Автор

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

1
Ответить

Мне кажется, что такой показатель намного информативнее и для игрока и для разработчикови мне это дико не нравится, теперь очень плохо понятно что за игра и как давно она тут

1
Ответить

Круто, спасибо за разбор событий и функционала. Да, массивы привередливы к данным внутри себя. Решение с палитрами ловкое.
Полагаю можно было все хранить в xml: заранее просчитать палитры и сохранить их значение в файле, подгружаемом на старте. Тогда не придется хранить все картинки в течении игры.
А еще можно положить все палитры вне объекта и обращаться к файлам, заменяя текущий кадр объекта.

1
Ответить