Возвращение Бурана
Каждую осень в различных частях земного шара с 4 по 10 октября отмечается всемирная неделя космоса. Так совпало, что именно в канун праздника было опубликовано мое первое тематическое игровое Android приложение. В рамках ежегодного космического недельного торжества я хотел бы рассказать историю о первом опыте выпуска Android игры «Возвращение Бурана».
Вот уже пару лет на досуге я занимаюсь выпуском игр и приложений под мобильную операционную систему KaiOS. В этом году мне также удалось выпустить несколько проектов
Хоть я и продолжаю вносить вклад в развитие экосистемы KaiOS мне все же хотелось попробовать выпустить приложение для другой платформы. Таким образом эта амбиция оказалось в моем списке желаний который я готовлю ежегодно в канун Нового Года.
В одной из своих статей в комментариях я упомянул о планах портирования игры на Android про советский орбитальный корабль-ракетоплан Буран
Но заурядный порт без устранения ряда замечаний которые справедливо были сделаны в комментариях к тексту мне выпускать не хотелось. Поэтому я решил сделать пусть и небольшой, но ремастер проекта.
А начал я с довольно объективной ремарки о том, что мой корабль вовсе не «Буран», а американский космический челнок «Спейс шаттл». Нужно было исправить эту неувязку.
Навыки рисования у меня мягко скажем оставляют желать лучшего, но в детстве я любил срисовывать и раскрашивать. При помощи открытого векторного редактора «Inkscape Project» я обрисовал основные части ступеней и самого орбитального самолета.
Будучи мечтателем я иногда представляю как наблюдаю за пуском ракеты на космодроме. Надеюсь мне удастся исполнить это желание и попасть на Байконур, Восточный или мыс Канаверал в штате Флорида, а пока следующей задачей нужно было «построить» свой собственный виртуальный космодром.
Изучив фотографии, карты и различные видеозаписи пришло понимание, что ни одна стартовая площадка не обойдется без опорной системы, мачты освещения и фермы обслуживания. Да, ещё нужен забор :)
Настал самый приятный для меня момент — это покраска объектов и формирование сцены. Итоговым результатом я остался доволен
Чтобы вывод Бурана на ближайшую орбиту прошел успешно нужна приборная панель на которой пилот мог бы наблюдать важные показатели различных сенсоров. Необходимо было разработать датчик уровня топлива, количества свободных топливных баков, высотомер, спидометр, секундомер, а также отображать число возможных ускорений.
Показатели с датчиков должны выводиться на LCD дисплеи, а для жидкокристаллических экранов нужен специальный ЖК шрифт. Вооружившись векторным редактором я отрисовал цифры, буквы латинского алфавита и несколько символов, а затем экспортировал в ttf формат.
К сожалению на момент написания этого материала команда Google Fonts еще не одобрила добавление шрифта в общую библиотеку, но если кому пригодиться шрифт, можно свободно им воспользоваться
Затем все что оставалось сделать это создать сами ЖК экраны и наложить на них готовый шрифт
Для более глубокого погружения в виртуальную среду запуска нужно было подготовить звуковое сопровождение для будущего игрового приложения. Хоть функциональностью игра не слишком сильно насыщена, тем не менее насчитывался довольно приличный список требуемых звуковых эффектов.
Однажды смотря научно-популярный канал «National Geographic» я наткнулся на документальный фильм рассказывающий о том как создают звуковые эффекты в киноиндустрии. Выглядело это довольно забавно и я решил попробовать.
Для пуска ракеты я вооружился пеной для бритья и портативным аудиоплеером с радио.
При помощи функции выпуска пара на моем утюге я сделал ускорение ракетоплана
Также я использовал закрытие выдвижных полок письменного стола, цветочный пульверизатор, виртуальный синтезатор и многое другое. Таким образом большая часть игры была покрыта звуковыми ресурсами.
Местами игра требовала голосовое сопровождение. Озвучкой я решил заняться самостоятельно проведя голос через аудио-редактор «Audacity». В сумме все сэмплы заняли 23 секунды часть из которых не вошли в финальный релиз приложения.
Когда подготовка ресурсов для проекта начала подходить к своему завершению, настала пора определиться с инструментом для разработки. Наверное более быстрым решением было бы воспользоваться моей самописной физикой из прошлого приложения и интегрировать игру в Android через WebView, но мне уже давно хотелось начать изучать полноценный игровой движок знания которого смогли бы помочь в реализации будущих идей.
В свободное время я люблю смотреть канал «DevDuck» на YouTube, где обратил внимание на Godot и недолго думая решил его опробовать.
По сравнению с легаси версией игрового приложения новое содержит некоторые улучшения. Одним из таких модернизаций стало управление космического корабля.
Теперь на динамику движения космического аппарата влияет его вес, т.е. при отделении параблоков скорость управления значительно увеличивается, а когда отделяется вторая ступень, Буран становится еще активней.
Метеоры и облака теперь двигаются с разной случайной скоростью в рамках заданного интервала, что создает эффект параллакса.
На боковой панеле пилот теперь может наблюдать текущую позицию между стартовой площадкой и ближайшей орбитой
Также было добавлено множество визуальных улучшений таких как: визуальный эффект недостатка топлива, уведомления каждые 50 км, изменение фона при выходе в космическое пространство и многое другое.
Спустя 14 дней после отправки моего первого релиза »1.0.0_Korolev» на рассмотрение оно было опубликовано. Загрузив его на мое устройство я заметил некоторую странность в генерации облаков, они появляются с середины экрана.
Этот эффект наблюдается исключительно в боевой версии приложения. В новом релизе игры буду работать над исправлением этого недочета как и над другими улучшениями.
А сейчас хочу поздравить всех Habr пользователей с World Space Week и пожелать всего доброго!