Rocket Science: год 1
Вперед, в светлое будущее
Приветствую всех инженеров-ракетостроителей! Первое и самое важное — сегодня Rocket Science исполнился один год с момента релиза в Стиме!
Это был безумно сложный, но продуктивный год, и я хотел бы поблагодарить всех, кто был увлечен игрой всё это время. Благодаря вам, я смог поддерживать игру после релиза, выпуская патчи и обновления, и получил ценные отзывы, на которые изначально даже не рассчитывал.
Очевидно, что я не могу оставить вас без подарка! Следующее обновление будет выпущено 26 марта. Пока оно еще находится в разработке, и я расскажу вам о том, что было сделано, и раскрою часть новых фич, которые будут добавлены в нем.
Прежде всего, я обновил игру до последней версии движка. Довольно сложно предсказать, что сломается во время подобных обновлений, но кажется, что на этот раз сломалось почти все. И я потратил немало времени, исправляя все возникшие проблемы. Но зачем понадобилось что-то обновлять? Дело в том, что игра изначально была создана с использованием нового рендерера в Unity, который выдавал замечательную картинку, но шел в комплекте с большим ограничением — в игре нельзя было использовать более одной камеры (на самом деле можно, но это настолько сильно било по производительности, что фпс сразу же падал с 60 до 30 за одну дополнительную камеру).
Такое ограничение значительно тормозило развитие игры. Например, во время полета в KSP использовались как минимум 4 камеры:
- для ближней геометрии (все, что ближе 500 метров);
- для дальней геометрии (от 500 метров и до горизонта);
- для визуализации масштабированного пространства (в основном других небесных тел);
- для рендеринга кербонавтов внутри командных модулей.
Более того, одна дополнительная камера задействовалась для рендеринга эффектов входа в атмосферу. Но я мог использовать только одну камеру, у которой, к тому же, ограниченный диапазон рендеринга. К счастью, Луна могла вписаться в этот диапазон, поэтому её было видно с Земли. Но остальная часть Солнечной системы за пределами этого диапазона (кроме Солнца и звезд — они используют другие техники рендеринга) была невидима во время полета. Кроме того, невозможно было реализовать эффект входа и трения об атмосферу, а также постоянно просачивались баги с исчезающими звездами.
Последняя версия движка вводит концепцию Custom Pass. Используя его и магию шейдеров, вы можете рендерить сцену с любой точки и с любыми параметрами камеры, но без дорогостоящих затрат на полноценную вторую камеру. Это помогло мне сделать диапазон рендеринга камеры практически бесконечным, а также исправить кучу багов и подготовиться к добавлению эффектов входа ракет в атмосферу в будущем.
После этого я переключился на улучшение сборочного цеха. Я добавил очень востребованную функцию сборок. Вы можете взять любую группу деталей и сохранить ее как сборку, которая впоследствии может быть использована во время конструирования другой ракеты.
Одной из интересных особенностей является то, что вы можете редактировать сборку, как обычную ракету, дублировать существующую или создавать новую в любое время.
Я улучшил стандартную ориентацию деталей во время присоединения и оно стало более понятным и предсказуемым.
Боковая симметричная ориентация до
Боковая симметричная ориентация после
Также был переработан алгоритм, размещающий первую деталь, чтобы он был совместим с вариантами деталей.
Если у первой детали есть варианты и вы выбираете один из них, то деталь автоматически будет заменяться на выбранную
Сейчас же я работаю над режимами сборочного цеха. Планируются три режима: Выбор, Перемещение и Поворот. Несколько дополнительных режимов появятся позже.
Стандартный режим редактора — «Перемещение». Он похож на то, как сейчас работает сборочный цех. В этом режиме можно захватывать детали, перемещать их и прикреплять друг к другу. В режиме «Поворота» вы можете выбрать любую деталь и повернуть ее с помощью горячих клавиш или специального инструмента вращения. Вы также можете вращать уже соединенные детали, следуя набору ограничений.
В принципе, существует всего два ограничения: деталь можно поворачивать только вокруг оси соединения, а коннекторы после поворота должны попасть в слоты.
Например, деталь, прикрепленная с помощью одинарного коннектора, может поворачиваться практически на любой угол. В случае шестигранного соединения деталь можно поворачивать с шагом в 60 градусов.
В последнем режиме Вы можете выделить любую деталь без риска ее перемещения или вращения. В будущем этот режим будет использоваться для открытия свойств детали и для таких операций, как изменение корня ракеты на выбранную деталь.
В следующем обновлении будет добавлена пачка новых деталей. Пять из них уже готовы, но я пока не буду их спойлерить. Помимо улучшений сборочного цеха, вас ждут новые фичи, связанные с полетами и объединенные одной общей темой. Можете предположить, что это за тема?