Я всегда мечтал посетить музей космонавтики в Москве и познакомиться с историей освоения космического пространства непосредственно от первого лица. Посмотреть первые спутники и автоматические станции, скафандры Юрия Гагарина и Алексея Леонова, макеты мировых космодромов, отведать еду космонавтов в кафе «Под ракетой» и конечно же купить сувениров.
Однажды осенью мне удалось спланировать полет в город герой Москва. Столица встретила меня хорошей погодой.
Один из первых музеев который я посетил, это конечно же был музей космонавтики расположенный на ВДНХ.
Взяв аудиогид я провел целый день восхищенно изучая экспозиции одного из крупнейших научно-исторических музеев мира
Немного позднее я также посетил большой планетарий столицы, где восторженно наблюдал ночное небо в звездном зале:
Уезжая из, как пел Муслим Магомаев, “Лучшего города Земли”, я воодушевился впечатлениями и был несказанно рад, что воплотил свои мечты в реальность.
По сей день меня вдохновляет тема космоса и я решил разработать небольшую игру для мобильного телефона на эту тему
За основу я решил взять советский орбитальный корабль-ракетоплан Буран, созданный в рамках программы «Энергия — Буран»:
Основная задумка была в том, чтобы игрок управляя космическим кораблем смог вывести его на ближайшую орбиту. Но что мне больше всего хотелось, так это чтобы физика игрового мира была приближена к реальности.
В качестве задачи, конечно же, не стояло разработать симулятор, но хотелось чтобы все было похоже на реальность
И так, есть космический корабль “Буран” которым управляет игрок. Корабль должен осуществлять взлет с стартовой площадки и должен набирать скорость. Иначе говоря скорость не будет являться константой, она должна постоянно меняться в большую или меньшую сторону.
Высота так называемой «низкой опорной» орбиты, от которой «отталкивается» большинство космических кораблей, равна примерно 200 километрам над уровнем моря. Значит Буран должен преодолеть отметку в 200 км, чтобы одержать победу:
Имея в виду все эти показатели я создал симуляцию физики. Чем больше скорость тем больше пройденная дистанция. Если скорость по какой либо причине замедлится, значит и пройденный путь будет становиться меньше
Имея запрограммированную физику я приступил к проектированию объектов, чтобы впоследствии завязать их на показатели.
Первым объектом стал непосредственно сам Буран. Весь объект я разделил на четыре части: три ускорителя и сам корабль:
Разделение я сделал с целью программирования отстыковки ускорителей на поинтах дистанции. Первых два ускорителя должны будут отстыковаться на 42 километре, последний на 150 км
Каждая часть является отдельным полем единого класса бурана. Каждый элемент имеет свою позицию, ширину и высоту. Каждая составляющая рисуется отдельно по слоям. Но я также сделал единую позицию. То есть если я поменяю эту позицию, то все ее части также будут эту позицию менять и объект цельно будет перемещаться:
Для начала, в качестве теста, я сделал первое разделение на 5 км, а следующее на двадцатом.
Следующим шагом я сделал взлет корабля со стартовой площадки на космической станции. Хоть и очевидно кажется, что Буран летит, на самом же деле это иллюзия, ракетоплан всегда стоит на месте, а вот объекты игрового мира движутся вокруг него.
Иначе говоря позиция Бурана по оси Y, в данном случае, не меняется, а вот позиция стартового комплекса смещается:
Чтобы движение бурана и его увеличение скорости сделать более заметным, я добавил облака, которые создают эффект полета.
Также мне захотелось добавить в игру функцию расхода топлива. При старте игры корабль содержит несколько топливных баков, которые можно использовать при необходимости. В случае если топливо падает в ноль, турбины ускорителей перестают излучать пламя. Когда игрок использует топливный бак, огонь вновь появляется.
На этом казалось бы можно было ставить точку, но мне геймплей игры представлялся достаточно простым и скучным. Хотелось добавить игровые элементы, которые бы заставляли игрока приложить усилия чтобы достигнуть лучших результатов к концу игры.
На скорость ракетоплана может влиять множество факторов и чтобы сделать игру более интересной, я решил добавить метеоры.
При столкновении ракетоплана с метеорами происходит утечка топлива на 20 показателей, а значит снижение скорости. Чем больше скорость, тем, естественно, сложнее увернуться от падающих небесных тел
Завершающим этапом я навел порядок в приборной панели, добавил звуковые эффекты и финишный экран:
На этом казалось бы уже можно отправлять приложение на публикацию, но что-то мне мешало это сделать. Немного поразмыслив я добавил еще одну функцию к Бурану — это ускорение.
При старте игры пилоту дается 3 ускорителя, которые можно использовать в течении всей игры. Это позволяет даже при расходе всех топливных баков в конечный момент добраться до космоса если правильно распределить все ресурсы в течении игрового процесса.
На этом я решил завершить разработку и принялся к тестированию на телефоне. В ходе проверки игры я скорректировал количество топливных баков, ускорителей, число метеоров и другие нюансы, чтобы сделать приложение более играбельным:
Заключительной работой над проектом являлось разработка иконок, описания и непосредственно сама публикация:
Спустя 3 месяца после публикации приложения можно наблюдать следующую статистику:
В мае месяце игра пользовалась пиковым спросом среди пользователей телефонов на базе операционной системы KaiOS. Этому способствовал факт того, что редакция выбрала данную игру как рекомендованную и она была выставлена на первую страницу маркета в течении одной недели. В июне и июле месяце наблюдается спад интереса на приложение.
Что касается монетизации, то можно наблюдать следующую картину:
В мае месяце число кликов по рекламе стало равным пиковому значению в 121 клик, в июне месяце пошел спад в три раза по сравнению с предыдущим месяцем, но в июле спрос снова вырос, пусть и на немного.
В результате, хоть и легендарный орбитальный корабль-ракетоплан Буран успешно покорил виртуальное космическое пространство, но сам проект, к моему сожалению, не взлетел.
Но мои навыки в разработке и запуске подобных проектов с полного нуля очень сильно выросли. И кто знает, какую статистику покажет это приложение в будущем? Возможно уже завтра Буран наберет нужную скорость чтобы по настоящему полететь. Жизнь покажет!
Всем спасибо!
Firelander
Как первый опыт разработки это неплохо, но выкладывать подобное в магазин приложений и ожидать какой-то конверсии с этого, по-моему, очень даже наивно.
И вы называете «симуляцией физики» единственное простейшее уравнение движения? Раз есть желание сделать похоже на реальность, то в этом направлении можно много чего добавить. Имитация градиента атмосферы, которая дает сопротивление пропорционально квадрату скорости, возможность перегрева или разрушения корабля при слишком высокой скорости в атмосфере, необходимость регулировать тягу для достижения оптимальной скорости на данном участке траектории. Изменение массы корабля по мере расхода топлива, физика гравитации, наклоны корабля, необходимость честного выведения на орбиту с плавным изменением угла наклона. Сход с орбиты, посадка с учетом примитивной аэродинамики. Звучит сложно? На деле численный расчет этих законов применительно к игровой механике не так уж сложен, академиком для этого быть не нужно.
Ну либо второй вариант сделать нормальный аркадный геймплей в стиле Hedgehog Launch с собиранием бонусов и покупкой апгрейдов, чтобы игрок не мог сразу достичь цели, ему необходимо было было повторять геймплей и копить валюту на улучшения. Но даже в этом аркадном геймплее все равно необходима физика. В той игре есть как минимум гравитация и можно планировать на крыле.
ysirotenko Автор
Здравствуйте. Спасибо за комментарий! Очень много идей подбросили. Помечу бэклогом, можно будет выпустить ряд новых версий!