Лампочка 2

Всем привет! Прошел насыщенный год, и пришло время поделиться тем, что успело произойти с моей мобильной игрой "Лампочка". Изначально я хотел поручить написание этого текста ИИ, но, прочитав его творчество, решил отказаться от этой идеи. Сегодня я расскажу, как мы делали масштабное обновление.

Закрытое тестирование: Утечки, текстуры и коварная запятая

Начну с релиза в Google Play. Чтобы выложить игру, нужно пройти закрытое тестирование, которое длится 14 дней и требует 20 тестеров. Тестеры — настоящие герои, ведь они буквально рисковали своими телефонами. Баги они находили потрясающие:

  • На тестировании игру впервые запустили дольше чем на 5 минут, после чего телефон просто выключился из-за утечки памяти.

  • Игра на всех устройствах выглядела по-разному, и речь не про разрешение экрана.

  • На некоторых телефонах полностью отсутствовали препятствия.

  • У 10% пользователей вместо игры был просто черный экран.

Самым "веселым" оказался баг с исчезающими препятствиями. Он не встречался ни у меня, ни у моих друзей, поэтому исправлять его вслепую было невероятно трудно. Когда я всё-таки смог подключиться к устройству одного из тестировщиков, причина меня поразила. В Unity есть функция, которая преобразует строку в число. Оказалось, примерно на 20% телефонов она просто пропускает запятую при парсинге!. Когда я написал эту функцию самостоятельно, всё заработало как нужно. Мораль: никогда не доверяй запятой. С черным экраном было понятнее, так как у меня был физический доступ к устройству с таким багом. Проблема заключалась в том, что Unity использовал неподдерживаемый формат текстур. Но вот пофиксить это стоило мне недели жизни. Unity не дает выбрать формат напрямую, позволяя влиять на него лишь косвенно через тонну галочек и значений. В процессе поиска верной конфигурации мой телефон даже решил, что "Лампочка" — это системное приложение, и запретил его удалять.

Первые достижения

Пришло время огласить достижения за последний год:

  • Более 500 скачиваний.

  • Более 5000 пройденных уровней.

Игра набирает популярность, поэтому пришло время для "Лампочки 2" (глобального обновления).

Редактор уровней

Раньше я добавлял уровни, вручную вбивая координаты точек, что было не самым удобным способом. Как только я начал продумывать обновление, я понял, что необходим инструмент поудобнее. Я создал редактор уровней, и он действительно сильно облегчил задачу. Работает он просто: вы рисуете любые многоугольники, а для создания круга достаточно кликнуть по точке и выбрать радиус. Затем вы должны сами пройти свой уровень. Справились? Получаете уникальный номер. Другу достаточно вбить этот номер в игру, чтобы попробовать пройти ваш шедевр.

Обесточенные зоны

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

  • Добавили целых 50 новых уровней.

  • Провели большую работу по редизайну и перерисовали абсолютно всё.

  • Сделали так, чтобы игра выглядела гораздо приятнее.

Оптимизация

Я также поработал над оптимизацией. Теперь проверка на победу работает через эдакую мультивселенную: есть параллельный мир, в котором лампочки светят белым с бесконечной силой, и все препятствия тоже белые. Тогда любая неосвещенная точка становится черной, а найти черную точку на экране — задача несложная. Чтобы ускорить игру, я частично переписал библиотеку света, но после этого весь свет на камере стал перевернутым. Оказалось, что если поменять ширину поля зрения камеры, баг пропадает, но возвращается старая проблема с неправильным форматом текстур. В итоге я решил просто еще раз перевернуть свет у себя в коде, и всё заработало.

Планы на будущее

Многих интересует, когда игра выйдет в App Store. Я решил: выпущу её на iOS, когда в Google Play игра получит хотя бы 5 тысяч скачиваний. Так что успех пользователей iPhone напрямую зависит от пользователей Android. За последний год я не потратил на маркетинг ни копейки — рекламой были только видео на канале и статьи на Хабре. Теперь я решил вложиться в маркетинг. Окупится ли это — скоро узнаем. Впоследствии планируем добавить новые скины на лампочки: камеры видеонаблюдения и спринклерные оросители.

Итог

Хочу сказать спасибо всем, кто участвовал в разработке и тестировании игры. Буду рад, если вы скачаете мою игру в Google Play. Спасибо за прочтение!

Информация на этой странице взята из источника: https://habr.com/ru/articles/1002078/