Я выпустил свою мобильную игру. В этой статье я расскажу вам о процессе разработки, проблемах, с которыми мне пришлось столкнуться и настоящей революцией в музыкальном мире. Итак все началось с того, как я играл в игру “okay?”. И в какой-то момент мне в голову пришла идея для другой такой-же игры
Идея
Есть ограниченное количество лампочек, с помощью которых вам нужно осветить весь экран.
![](https://habrastorage.org/getpro/habr/upload_files/20f/421/817/20f42181790866f33b7dae638b2c1a7d.png)
Выбор движка
Ну что ж, идея есть, теперь можно начинать ее реализацию. Для начало нужно было выбрать движок. Это такая штука, где можно объединить звуки, графику и код в единое целое.
В основном выбор стоял между Unity, GameMaker, и Scratch…
Естественно от одного из вариантов я отказался сразу, так как GameMaker все-таки платный движок. После жесточайших дебатов с самим собой я решил остановится на юнити, так как я пока новичок в сфере создания игр и не уверен, что справлюсь с чем-то более сложным.
Графика
На самом деле поскольку наша игра - гиперказуалка, сильно много рисовать не пришлось. Достаточно было нарисовать лампочку и пару кнопок интерфейса.
Победа
Вы могли подметить, что я ничего не сказал про то, как проверяется победа в игре. Конечно можно было бы проверить, что каждый пиксель на экране освещен, но на самом деле достаточно проверить освещены ли все стороны всех блоков. Почему-то мое решение долго баговалось, но в итоге я его написал и пошел делать уровни.
Вот я делаю, делаю уровни и происходит вот такое...
![](https://habrastorage.org/getpro/habr/upload_files/e71/86d/069/e7186d069378b32f86430697b44f1921.png)
Как оказалось, совсем не обязательно найдется неосвещенная сторона. Здесь можно увидеть неосвещенный треугольник ограниченный со всех сторон лучами света, а не сторонами блоков… И тут я зашел в тупик, ведь я не знал другого способа достаточно быстро проверять освещенность экрана. Над этой задачей я думал около месяца, но в итоге коллективным мозговым штурмом мы нашли решение.
Уровни
Пришло время для создания основного контента для игры.
Нам нужно было сделать около сотни уровней для первой версии игры. Это заняло у нас огромное количество времени, ведь каждый уровень нужно сначала
Придумать
Нарисовать на бумаге
Пройти
Проверить, что решения проще нет
Вбить координаты точек в игру
Проверить, что он проходится на разных разрешениях экрана.
Ведь есть такой замечательный телефон как Samsung Galaxy ZFold 5G, у которого соотношение сторон 3:1 и на нем могут проходится далеко не все уровни.
В общем работа довольно объемная, поэтому большую часть времени мы занимались именно ей
Внешний вид игры
На этот момент игра выглядела не слишком хорошо, поэтому мы решили переработать освещение.
![](https://habrastorage.org/getpro/habr/upload_files/3e3/4c6/46b/3e34c646bfa923e7218971534e5f08c7.png)
Мы пробовали разноцветные лампочки, градиентный свет, градиентный фон.
![](https://habrastorage.org/getpro/habr/upload_files/95c/645/d63/95c645d633b4d1fe9df0de68be5d8508.png)
Но в какой-то момент я проходил мимо таких ламп и я понял почему наш свет не похож на настоящий свет.
![](https://habrastorage.org/getpro/habr/upload_files/3d1/ed1/f37/3d1ed1f377c84621f03677dbae95c645.png)
Оказывается, что у настоящего света есть любопытное свойство: чем точка дальше от источника тем он слабее. После того, как я добавил этот эффект в игру наш свет стал выглядеть гораздо лучше.
![](https://habrastorage.org/getpro/habr/upload_files/134/4b7/b84/1344b7b84cb9b652c8c1cc0c863b3e67.png)
Кстати источником света на этой картинке выступает фонарик. Мы добавили его, чтобы разнообразить геймплей.
Проблемы
К этому моменту игра уже была не только играбельна, я бы сказал готова к релизу (как мне казалось). Но потом я отправил ее своим друзьям тестерам. Они единогласно вынесли вердикт, что игра не готова. Оказалось, что в ней еще куча недочетов. Вот наиболее интересные из них.
В игре могла случится ситуация, в которой уровень кажется пройденным, хотя таковым не является. С одной стороны можно засчитывать “почти” пройденные уровни, но мы сделали по-другому.
-
Мы добавили красную точку, которая появляется на неосвещенной территории.
Еще тестерам не нравилось, что если у них не получается пройти какой-то уровень, то они не могут его пропустить.
Чтобы решить эту проблему достаточно было просто добавить на каждый уровень возможность получить подсказку за рекламу.
Кстати не всем понравился желтый цвет света.
-
В ответ на это я добавил возможность покупать другие за монетки, которые можно получать за прохождение уровней.
И вот наконец-то все претензии удовлетворены.
Звуки
И конечно какая игра без звуков?
Я добавил в игру звуки кликов по кнопкам, прохождения уровня, покупки предметов.
Еще игре нужна была какая-нибудь музыка. Когда я ее писал я чувствовал себя настоящим Бетховеном. Но не потому что я гениальный композитор, а потому что не слышал музыку в этом наборе звуков. А то, что у меня получилось в итоге вы можете послушать уже в игре.
Продакшн
Теперь мне предстоял самый интересный аттракцион - релиз в Google Play. Сначала от меня потребовали 2 часа отвечать на вопросы формата: “Содержит ли ваша игра контент, ущемляющий права Северной Кореи?”.
Затем я оформил страничку и мое приложение отправилось на модерацию. Через несколько дней мне ответили. Попробуйте угадать, приняли ли мое приложение?. Ладно это было слишком просто. Причиной отказа была реклама, которая собирает данные о пользователях, а это не соответствует семейной политике гугл. Я это исправил и отправил еще раз. Что же мне ответили на этот раз? Вы наверное мне не поверите, но мое приложение приняли! Дальше меня отправили на закрытое тестирование, в котором должны принимать участие хотя-бы 20 человек на протяжении 14-ти дней. Для этого мне пришлось искать 20 человек, согласных скачать мою игру и не удалять ее 2 недели.
Справедливости ради в моем приложении и правда нашли несколько багов, так что тестирование не лишено смысла. Во первых у меня была утечка памяти, из-за которой телефон мог просто зависнуть. А во вторых мое приложение не работало на 15% всех устройств. Я решил, что это не моя игра не запускается на этих телефонах, а эти телефоны не могут ее запустить. На самом деле на этих телефонах стояли старые драйвера для видеокарт, а это я как разработчик исправить никак не мог. Ну а тем временем закрытое тестирование было пройдено.
Итог
Ну вот игра и готова. Хочу сказать спасибо всем, кто участвовал в ее разработке и тестировании.
Буду благодарен, если поиграете в мою игру. Скачать в google play.
В планах на вторую версию добавление блоков, от которых свет будет отражаться, то есть зеркал. Это добавит новых возможностей для создания уровней. Кстати о создании уровней. В следующей версии игры мы хотим дать игрокам возможность создавать свои уровни и проходить уровни друг друга.
Не забудь поиграть в мою игру!
Спасибо за прочтение!
Комментарии (15)
infund
28.08.2024 05:51+6Над этой задачей я думал около месяца, но в итоге коллективным мозговым штурмом мы нашли решение.
И?
Furyohfury
28.08.2024 05:51+3Ахахах, тоже прочитал и думаю "а как же", а автор просто перепрыгнул на другую тему
SpeedOfLight Автор
28.08.2024 05:51Здесь я старался больше рассказывать именно о геймдизайне, а решение было именно технической деталью. Обязательно включу решение в следующую статью.
navferty
28.08.2024 05:51+5Вспомнилась игра Glass, довольно старая, где как раз нужно расставлять/поворачивать зеркала, призмы, чтобы нужным образом осветить определённые точки
Скриншоты
Glass Glass
Alexandroppolus
28.08.2024 05:51+1Зеркальные стены (которые планируется добавить) напомнили вот такую задачу
BorisShumai
28.08.2024 05:51Зачем ты искал двадцать тестировщиков то? Это не обязательно. Можно сразу релизить на всю планету.
SpeedOfLight Автор
28.08.2024 05:51Это новое правило google play. Оно работает только для тех, кто зарегистрировал аккаунт после 13 ноября 2023 https://support.google.com/googleplay/android-developer/answer/14151465?hl=ru
randomsimplenumber
Математика программисту не нужна. Достаточно учебника за 6 класс, и вперёд jsonы перекладывать.