Я выпустил свою мобильную игру. В этой статье я расскажу вам о процессе разработки, проблемах, с которыми мне пришлось столкнуться и настоящей революцией в музыкальном мире. Итак все началось с того, как я играл в игру “okay?”. И в какой-то момент мне в голову пришла идея для другой такой-же игры
Идея
Есть ограниченное количество лампочек, с помощью которых вам нужно осветить весь экран.
Выбор движка
Ну что ж, идея есть, теперь можно начинать ее реализацию. Для начало нужно было выбрать движок. Это такая штука, где можно объединить звуки, графику и код в единое целое.
В основном выбор стоял между Unity, GameMaker, и Scratch…
Естественно от одного из вариантов я отказался сразу, так как GameMaker все-таки платный движок. После жесточайших дебатов с самим собой я решил остановится на юнити, так как я пока новичок в сфере создания игр и не уверен, что справлюсь с чем-то более сложным.
Графика
На самом деле поскольку наша игра - гиперказуалка, сильно много рисовать не пришлось. Достаточно было нарисовать лампочку и пару кнопок интерфейса.
Победа
Вы могли подметить, что я ничего не сказал про то, как проверяется победа в игре. Конечно можно было бы проверить, что каждый пиксель на экране освещен, но на самом деле достаточно проверить освещены ли все стороны всех блоков. Почему-то мое решение долго баговалось, но в итоге я его написал и пошел делать уровни.
Вот я делаю, делаю уровни и происходит вот такое...
Как оказалось, совсем не обязательно найдется неосвещенная сторона. Здесь можно увидеть неосвещенный треугольник ограниченный со всех сторон лучами света, а не сторонами блоков… И тут я зашел в тупик, ведь я не знал другого способа достаточно быстро проверять освещенность экрана. Над этой задачей я думал около месяца, но в итоге коллективным мозговым штурмом мы нашли решение.
Уровни
Пришло время для создания основного контента для игры.
Нам нужно было сделать около сотни уровней для первой версии игры. Это заняло у нас огромное количество времени, ведь каждый уровень нужно сначала
Придумать
Нарисовать на бумаге
Пройти
Проверить, что решения проще нет
Вбить координаты точек в игру
Проверить, что он проходится на разных разрешениях экрана.
Ведь есть такой замечательный телефон как Samsung Galaxy ZFold 5G, у которого соотношение сторон 3:1 и на нем могут проходится далеко не все уровни.
В общем работа довольно объемная, поэтому большую часть времени мы занимались именно ей
Внешний вид игры
На этот момент игра выглядела не слишком хорошо, поэтому мы решили переработать освещение.
Мы пробовали разноцветные лампочки, градиентный свет, градиентный фон.
Но в какой-то момент я проходил мимо таких ламп и я понял почему наш свет не похож на настоящий свет.
Оказывается, что у настоящего света есть любопытное свойство: чем точка дальше от источника тем он слабее. После того, как я добавил этот эффект в игру наш свет стал выглядеть гораздо лучше.
Кстати источником света на этой картинке выступает фонарик. Мы добавили его, чтобы разнообразить геймплей.
Проблемы
К этому моменту игра уже была не только играбельна, я бы сказал готова к релизу (как мне казалось). Но потом я отправил ее своим друзьям тестерам. Они единогласно вынесли вердикт, что игра не готова. Оказалось, что в ней еще куча недочетов. Вот наиболее интересные из них.
В игре могла случится ситуация, в которой уровень кажется пройденным, хотя таковым не является. С одной стороны можно засчитывать “почти” пройденные уровни, но мы сделали по-другому.
-
Мы добавили красную точку, которая появляется на неосвещенной территории.
Еще тестерам не нравилось, что если у них не получается пройти какой-то уровень, то они не могут его пропустить.
Чтобы решить эту проблему достаточно было просто добавить на каждый уровень возможность получить подсказку за рекламу.
Кстати не всем понравился желтый цвет света.
-
В ответ на это я добавил возможность покупать другие за монетки, которые можно получать за прохождение уровней.
И вот наконец-то все претензии удовлетворены.
Звуки
И конечно какая игра без звуков?
Я добавил в игру звуки кликов по кнопкам, прохождения уровня, покупки предметов.
Еще игре нужна была какая-нибудь музыка. Когда я ее писал я чувствовал себя настоящим Бетховеном. Но не потому что я гениальный композитор, а потому что не слышал музыку в этом наборе звуков. А то, что у меня получилось в итоге вы можете послушать уже в игре.
Продакшн
Теперь мне предстоял самый интересный аттракцион - релиз в 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, довольно старая, где как раз нужно расставлять/поворачивать зеркала, призмы, чтобы нужным образом осветить определённые точки
Скриншоты
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ы перекладывать.