Пост

Следующее обновление близко

Как и зима

Хочу быстро рассказать, чем я занимался последние два месяца. Они пролетели незаметно за улучшением кода и внутренней структуры игры. Основная цель этих изменений заключается в том, что я хочу, чтобы игра поддерживала тысячи космических кораблей, находящихся в полете и большинство небесных тел, которые есть в солнечной системе. Раньше это было в принципе невозможно, и вот почему.

Типичная ракета состоит из нескольких деталей. Каждая деталь может содержать несколько модулей, которые определяют, какую функциональность деталь предоставляет. Например, каждый двигатель может содержать до четырех модулей:

  • Модуль двигателя (сам двигатель);
  • Модуль TVC (управление вектором тяги);
  • Генератор (производит энергию, если двигатель включен);
  • Эффекты двигателя (соответственно визуальные эффекты и звуки).

Ранее, система симуляции вызывала функцию «Обновить» у каждого модуля, каждой детали каждой ракеты каждый кадр. Но большинство деталей ракеты содержит только модули-конфигурации, без какого-либо поведения (как в случае с эффектами двигателя) или вообще не содержат модулей. Это означает, что время, которое симуляция провела, обновляя состояние таких деталей, потрачено впустую. И если у вас в полете находится 20-30 ракет (что я неоднократно наблюдал в некоторых роликах на Ютубе), это время становится ощутимым.

Я переписал систему симуляции таким образом, что она напрямую обновляет только модули с функциональностью. Вместе с улучшением расчета сил трения, который был выпущен в прошлом обновлении, моя изначальная цель становится достижимой.

Аналогично и в случае Солнечной системы. Чтобы поддерживать не только восемь планет и их основные спутники, мне нужно было унифицировать расчеты орбит (которые уже работают очень быстро) и позиционирование и рендеринг планет, чтобы не выполнять одни и те же вычисления несколько раз.

Я внес и другие изменения и несколько новых фич, о которых я расскажу при релизе следующего обновления. Если всё пройдет гладко, оно ожидается 18 декабря. Если нет, то 24 декабря.

Вот небольшой тизер специально для вас.

И еще один. Что это может быть?

Авторский пост защищен лицензией CC BY 4.0 .

© unbeGames. Некоторые права защищены.

Популярные теги