Краткий (нет) рассказ о разработки собственной игры на Unity для android. Или мой путь в gamedev начинается сейчас!
Всем привет, меня зовут Константин. Мне 31 год, я работаю специалистом по охране труда и пожарной профилактике в бюджетке.
Казалось бы, откуда я вообще взялся в разработке игр? Но на самом деле по образованию я бакалавр информационных систем и технологий. Просто живу в провинциальном городе, возможности переехать особо не было, поэтому жизнь унесла меня в совершенно другую профессию.
А интерес к разработке остался.
Ещё в студенческие годы я впервые познакомился с Unity. Думаю, многие это проходили: юношеская мечта, небольшая команда единомышленников, разговоры о великой игре, посиделки на квартире, планы, идеи, пиво... и в итоге ничего даже с мёртвой точки не сдвинулось.
Позже я работал в сфере майнинга, и тогда у меня появилась идея сделать мобильное приложение для мониторинга майнинг-устройств. Я реализовал его в Android Studio. Это было что-то вроде курсовой работы с минималистичным интерфейсом, который я заказал на Кворке за 5 килорублей. Но со временем клиенты пропали, тестировать приложение стало не на чем, и разработку пришлось забросить.
А потом однажды я сидел на СТО и ждал запчасть. От скуки скачал простенькую игру про стрелочки и внезапно залип на несколько часов.
Посмотрев блогеров на ютубе я услышал рекомендацию: "разрабатывайте 5-10% от игры, основные базовые механики и выкладывайте на публикацию, смотрите удержание. Если игра зашла - продолжайте разработку".
Вдохновился, зарядился, скачал unity, погнали. Нейросети мне любезно помогли нарисовать первичный интерфейс, подсказать какие-то нюансы в разработке и спроектировать план по разработке. Честно говоря, раньше я и представить не мог насколько это сильный инструмент, ваши эти нейросети. Сейчас конечно полно ютуб видео по разработке нейрослопа, так что в какой-то степени моя игра может являться нейрослопом, но вся задумка и весь процесс разработки делался моими руками, кроме вероятно интерфейса.
Игра называется Prism Puzzle: Laser Reflection. Это головоломка, где нужно направить лазер в цель с помощью зеркал, призм, сплиттеров и логики.
Первая версия выглядела более чем убого, но она была играбельной и кстати она успела попасть в версию 1.0.1 и в таком виде была вплоть до версии 1.0.6.
Первая версия игры, минималистичный стиль, тусклый луч.
В начале пути я думал, что минималистичный интерфейс будет отличным решением, но чем больше уровней делал, чем больше работал с механиками, тем больше понимал - современного игрока этим не привлечь.
Отдельная боль — горизонтальный режим. Не поверите, но в начале пути я даже не сразу нашёл, где правильно настраивается портретная ориентация экрана. Это тянется ещё с тех времён, когда я в разные годы пытался вернуться к разработке игр и каждый раз упирался в вопрос: “Как вообще повернуть экран?”
Оказалось, что делается это не через контроллер камеры.
Когда со скринами из игры я пытался сделать красивые картинки для гугл плей я понял что этот ужас долго не может оставаться на экране игрока и будет им бесследно удален.
Сейчас версия 1.0.8, портретный режим, яркий луч, трижды поменянные спрайты и я полагаю еще не финиш. Будут еще изменения, эти спрайты мне тоже не нравятся, но сейчас они хотя бы не вызывают недоумение.
версия 1.0.8. Яркие лучи, 3 версия спрайтов.
Баг №1. Лазер ушёл в бесконечность
Один из интересных багов, с которыми я столкнулся, так это зацикливание луча вплоть до краша юнити. Честно я не ожидал, что это так легко. Врезаясь в физический объект луч должен изменять направление, но по какой-то непонятной для меня причине луч возвращался назад и начинал зацикливаться. Решение было простым, ограничить количество отскоков, а потом сместить точку отскока/старта в сплиттере.
Сплиттер оказался не просто отражением. Он должен брать один луч и создавать из него два новых. И именно там началась физическая магия, из-за которой луч мог снова попадать сам в себя.
Баг №2. В редакторе всё работает, а в APK цель пропала
Второй баг был самым странным.
В Unity Editor всё выглядело нормально. Фон, объекты, спрайты — всё на местах. Объекты уровней лежат внутри родительского объекта Level, включаются и отключаются при старте нужного уровня. Вроде классическое решение.
Система лазера вообще висит отдельно на сцене.
Во время симуляции и в инспекторе всё выглядело как обычно. Фон, объекты, спрайты, всё на своих местах. Родительский объект level, в нем закреплены игровые объекты, появляются скрываются при активации уровня. Наверное классическое решение. Система отвечающая за лазер вообще на основе висит.
Но когда собрал апк пакет для тестирования на телефоне я очень сильно удивился - на 1 уровне не было цели. Вот луч, вот зеркала, мишени нет. Поворачиваю зеркала - луч не попадает в то место где цель.
Именно в этот раз мне пришлось настраивать подключение телефона к юнити и читать логи уже в самом дебагере. Но ошибок там не было, всё выглядело как обычно.
Чтож, пишем подробные логи на каждый этап старта уровня. Создание объектов, задание рандомного поворота зеркал.
Как так? ни одного родительского объекта с этим значением. Рылся весь вечер, ничего не нашел. В итоге решил проблему костылём: при запуске уровня принудительно задаю нужный scale через код.
После этого всё заработало.
Да, решение не самое красивое. Но в тот момент мне было важнее оживить APK, чем продолжать воевать с невидимой магией Unity.
Баг №3. Я сам сломал уровень
А третий баг оказался созданным в ручную при спешке. В какой-то момент я пришел к выводу что сложно попадать по объектам и поэтому я добавил каждому объекту отдельную увеличенную область нажатия — TouchZone.
Сделал больше объекта, пальцы на первых 20 уровнях стали с легкостью попадать.
А потом началось веселье.
На некоторых уровнях зеркала стояли настолько близко, что нажимая поворачивался другой. Я раздвинул элементы, вроде всё поправил.
Но позже аналитика показала странную вещь: игроки доходят до 29 уровня, а на 30 происходит полный отвал. Дальше никто не идёт. Неужели 30 уровень настолько ужасен?
Открываю уровень, проверяю — и понимаю, что после моих правок второй луч просто физически не может попасть в цель. То есть я улучшал управление, а в процессе случайно сломал прохождение уровня.
Исправил. Но урок запомнил: после любых изменений в уровнях нужно проходить не только тот участок, который трогал, а всю цепочку логики.
Показатели пока скромные. Игроков мало, поэтому любое действие одного человека сильно перекашивает статистику. Но для меня это всё равно важный опыт: я впервые вижу реальные данные по своей игре.
С 23.04.2026 по 06.06.2026, версии 1.0.1–1.0.6:
127 игроков;
45 удалений;
1200 запусков уровней;
1100 прохождений.
Активные пользователи по странам:
Kazakhstan — 52;
Russia — 29;
Belarus — 21;
United States — 12.
С 07.06.2026 по 21.06.2026, версии 1.0.7–1.0.8:
37 игроков;
15 удалений;
384 запуска уровней;
388 прохождений.
Активные пользователи по странам:
Kazakhstan — 32;
Belarus — 16;
Russia — 4.
Да, цифры не выглядят впечатляющими. Но при таком маленьком количестве игроков делать жёсткий вывод об успехе или провале пока рано.
Спасибо за внимание, всем добра.
Страница игры в Google Play