Следующее обновление близко
Как и зима
Хочу быстро рассказать, чем я занимался последние два месяца. Они пролетели незаметно за улучшением кода и внутренней структуры игры. Основная цель этих изменений заключается в том, что я хочу, чтобы игра поддерживала тысячи космических кораблей, находящихся в полете и большинство небесных тел, которые есть в солнечной системе. Раньше это было в принципе невозможно, и вот почему.
Типичная ракета состоит из нескольких деталей. Каждая деталь может содержать несколько модулей, которые определяют, какую функциональность деталь предоставляет. Например, каждый двигатель может содержать до четырех модулей:
- Модуль двигателя (сам двигатель);
- Модуль TVC (управление вектором тяги);
- Генератор (производит энергию, если двигатель включен);
- Эффекты двигателя (соответственно визуальные эффекты и звуки).
Ранее, система симуляции вызывала функцию «Обновить» у каждого модуля, каждой детали каждой ракеты каждый кадр. Но большинство деталей ракеты содержит только модули-конфигурации, без какого-либо поведения (как в случае с эффектами двигателя) или вообще не содержат модулей. Это означает, что время, которое симуляция провела, обновляя состояние таких деталей, потрачено впустую. И если у вас в полете находится 20-30 ракет (что я неоднократно наблюдал в некоторых роликах на Ютубе), это время становится ощутимым.
Я переписал систему симуляции таким образом, что она напрямую обновляет только модули с функциональностью. Вместе с улучшением расчета сил трения, который был выпущен в прошлом обновлении, моя изначальная цель становится достижимой.
Аналогично и в случае Солнечной системы. Чтобы поддерживать не только восемь планет и их основные спутники, мне нужно было унифицировать расчеты орбит (которые уже работают очень быстро) и позиционирование и рендеринг планет, чтобы не выполнять одни и те же вычисления несколько раз.
Я внес и другие изменения и несколько новых фич, о которых я расскажу при релизе следующего обновления. Если всё пройдет гладко, оно ожидается 18 декабря. Если нет, то 24 декабря.
Вот небольшой тизер специально для вас.
И еще один. Что это может быть?