Подготовка к релизу 0.990
В настоящее время я готовлю первую сборку для отправки в Steam на проверку. Я завершил работу над крайне необходимой функцией, туториалами, и переключился на обновление контента. Это включает в себя интеграцию новых моделей туманностей и галактик, палитр и текстур планет, а также обновление каталогов. Возможно, после проверки в Steam потребуются некоторые исправления, которые могут задержать релиз. Однако релизная сборка должна быть как можно лучше отполирована - это крайне важно, т.к. старт продаж напрямую влияет на общую прибыль в течение всего времени жизни программы.
Изменения со времени последнего блог-поста:
- Завершены туториалы планетария
Это самая важная функция, которая помешала мне выпустить релиз в Steam два года назад. SE является довольно сложной программой для новых пользователей, поэтому требовался некоторый встроенный «учитель». Поэтому два года назад я начал разрабатывать простой скриптовый язык, чтобы с его помощью реализовать туториалы. Всего их 7: введение в интерфейс SE, базовое управление (такое, как выбор и перелёт к объекту), управление в режиме свободного полёта с помощью клавиш WASD, управление временем, режим карты Вселенной, режим чарта, и звёздный браузер. В процессе реализации всех этих уроков я разработал настолько большой список скриптовых команд, что мне понадобилось написать справочное руководство для самого себя. Как побочный продукт, скрипты позволили создать приложение Overview и, вероятно, приведут к появлению нового типов модов для SE - заскриптованых туров.
- Улучшенная форма континентов/морей
Более плоская форма морского дна делает озера на засушливых планетах более интересными.
Следующие изменения уже были показаны HarbingerDawn в его недавнем стриме:
- Более реалистичное распределение солнечных пятен
В реальности солнечные пятна распределены по поверхности Солнца не равномерно, а группируются в средних широтах, избегая полярных областей и экватора:
- При загрузке локации её скриншот отображается на экране загрузки с эффектом «старого телевизора».
Эффект линий развёртки - простой способ завуалировать низкое разрешение скриншота (512 × 256), но мне очень нравится, как он выглядит.
- F2 открывает Браузер планетной системы на уровне иерархии выбранного объекта (поэтому, если выбрана луна, он открывает список лун); Shift-F2 открывает корневой уровень системы
- Двойной клик для перехода на следующий уровень Браузера планетной системы
- Браузер планетной системы отображает всплывающее окно с кратким описанием объекта при наведении мыши на ячейку таблицы
- Браузер планетной системы отображает одиночные и двойные астероиды/кометы, если они были ранее выбраны каким-либо другим методом
Последний пункт полезен для изучения двойных/тройных астероидов, таких как 1999 TC36 (Лемпо). А всплывающее окно с описанием очень полезно в виртуальной реальности, где привычная таблица характеристик объекта в углу экрана не отображается.
- Тип жизни на планетах определяется исходя из состава их поверхности, а не недр (таким образом, карбонии и феррии могут обладать органической жизнью, холодные акварии или терры могут обладать экзотической жизнью и т.д.)
Пример того, как теперь выглядят обитаемые пустынные и ледяные планеты:
- Воздушная органическая жизнь на некоторых землеподобных планетах (на которых в результате изменения состава атмосферы возникает саморазгоняющийся парниковый эффект)
SpaceEngine «сеет жизнь» на планете после генерации планетной системы, затем изменяет состав атмосферы на планете в зависимости от того, как развивается жизнь (более старые планеты имеют многоклеточную жизнь, производящую кислород). Но изменение состава атмосферы может изменить климат планеты так сильно, так что она может впасть в ледниковый период, или наоборот, в состояние самоусиливающегося парникового эффекта. В этом случае SE "уничтожает жизнь" или меняет её биом на подледный или воздушный (если условия не такие суровые, как на Венере - умеренная температура в верхних слоях атмосферы и присутствие водяного пара). Таким образом, землеподобные планеты, похожие на Венеру, или мини-нептуны с водяным паром, могут иметь воздушную органическую жизнь, как некоторые газовые гиганты.
- Отдельные переключатели в меню настроек для векторов планет (полярная ось, центральный меридиан, скорость и направление на родительский объект)
- Слово «Каталог» заменено на «Реальные» в интерфейсе («Звёзды каталога» -> «Реальные звёзды» и т. д.)
- Браузер звезд: настройки для поиска только среди реальных и/или процедурных звезд, или только в каталоге экзопланет
Эти опции полезны для поиска и изучения реальных экзопланет. Вот пример поиска известных экзопланет в системах с тремя звездами. В этом случае ввод очень большого радиуса поиска безопасен, поскольку звёздный браузер не будет генерировать миллиарды процедурных звезд, он только просмотрит звёздный каталог.
- Экспериментальные джеты черных дыр на основе системы частиц хвоста кометы
На самом деле, это было реализовано очень давно, возможно, даже в 0.980, но я решил доделать эффект только сейчас. Джеты основаны на частицах (спрайтах), как и хвосты комет (в движке они даже используют один и тот же класс/структуру данных). Джеты анимированы, частицы быстро удаляются от центра, закручиваясь вокруг оси джета. Возможно, HarbingerDawn покажет их в своем следующем стриме. Джет, направленный на камеру, ярче и горячее, чем противоположный, из-за релятивистского синего смещения, вызванного субсветовой скоростью движения вещества.
- Режим привязки камеры автоматически устанавливается на «Follow», если режим ИЛС корабля изменен на «Орбитальный» или «Варп», и на «SyncRot», если он изменен на «Горизонтальный» или «Стыковка»
Я всегда переключаю камеру в режим «Follow» (Shift-F), когда управляю кораблём в орбитальном или варп-режиме - это удобнее. Теперь SE делает это переключение автоматически. Вы всё еще можете переключиться обратно на «SyncRot» вручную (с помощью Shift-R).
- Конфиг для настройки окна загрузки SE
- Новые текстуры окна загрузки SE
- Окно загрузки SE учитывает DPI монитора (масштабируется в соответствии с настройками DPI)
- Главное окно SE учитывает DPI монитора (использует родное разрешение экрана)
Недавно я купил новый 4K-монитор (до этого я использовал 1080p TN монитор в течение 12 лет!), и немедленно исправил некоторые досадные баги, вызванные масштабированием в Windows. Теперь SE всегда рендерит изображение в родном разрешении экрана, игнорируя настройки масштабирования. Конечно, интерфейс стал слишком мелким в 4k, но это будет исправлено в будущих обновлениях. Кроме того, окно загрузки масштабируется в соответствии с DPI, но с четкими шрифтами и текстурой фона.
- Возможность связать размер частиц звезд с разрешением окна/экрана SE
Ранее размер звезд не был связан с разрешением экрана - звёзды одинаковой яркости всегда имели один и тот же размер в пикселях. Но при растягивании окна SE на 4k дисплей (или создании скриншота в 4k путем изменения размера окна на меньшем дисплее) это приводило к очень маленькому размеру звёзды и кажущемуся уменьшению их яркости. Новая опция в меню настроек включает автоматическое изменение размера звёзд в зависимости от разрешения окна. Например, если звезда на 1080p дисплее имеет размер 1, на 2060p её размер будет 2.
- Возможность ограничить LOD ладншафта на экране высокого разрешения
Я также сделал ограничение LOD на высоких разрешениях. LOD ландшафта также связан с пикселями, как и размер звезды. На любом дисплее SE пытается отобразить текстуры ландшафта с плотностью пикселей 1:1 (это при LOD 0, установка LOD -1 уменьшает плотность до 1:2, а LOD 1 увеличивает её до 2:1, как-бы суперсэмплинг). Но на 4k экране это означает, что движок будет генерировать и рендерить в 4 раза больше текстур - это эквивалентно использованию LOD 1 на 1080p экране. Мои GTX 1060 и RX 580 не очень этому рады, поэтому я вынужден был использовать LOD -1. Новая опция ограничивает внутреннее значение LOD в зависимости от разрешения экрана. Это работает, как если бы у вас всё ещё был экран 1080p, даже если фактическое разрешение экрана больше. Если присмотреться к текстурам на 4k дисплее, можно заметить, что они выглядят немного размыто, как при LOD -1. Но на нормальном расстоянии от экрана они всё ещё выглядят хорошо. Ближайшие к камере ноды ладншафта по-прежнему имеют плотность пикселей 1:1, поэтому они всегда выглядят чёткими.
- Отображение азимута и высоты небесного объекта при наблюдении с поверхности планеты (в информационной таблице и вики)
- Отображение географической координатной сетки на планетах
Это долгожданные функции. Отображение азимута/высоты полезно для использования SE в качестве планетария перед реальными наблюдениями. Или просто для того, чтобы посмотреть, как высоко будет Марс сегодня вечером при наблюдении из Вашего города.
Первая реализация географической сетки - это просто линии, отображаемые над поверхностью планеты (т.е. не спроецированные на реальную поверхность). Метки координат будут добавлены в будущем.
- Горячая клавиша для сворачивания SE, когда он в полноэкранном режиме
- Редактор планет: сохранение нулевых значений логарифмических слайдеров (исправление экспорта странных значений, таких как -1.#IND)
- Редактор планет: логарифмические слайдеры отображают значение log(0), если параметр равен нулю, в этом случае ручка слайдера не видна
- Редактор планет: чтобы установить значение параметра логарифмического слайдера в 0, просто введите 0 в поле ввода
- Поддержка экспорта 32-битных текстур скайбоксов с плавающей точкой (в форматах dds и tiff)
- Уменьшен алиасинг тонкого полумесяца атмосферы, когда планета находится далеко
- Улучшенная плотность и распределение размеров небольших кратеров
- Обновлены данные по семикратной звёздной системе Ню Скорпиона
- Плавная анимация в чарте системы при смене режима или фильтров
Багфиксы: я не записываю все мелкие исправления, которые делаю каждый день. Даже записывать существенные исправления сейчас не просто, т.к. я не помню, была ли такая ошибка в 0.980 или же появилась во время разработки этой версии. Да, 2.5 года для одного обновления это слишком долго. Но работа подходит к концу!
- Исправлена ошибка, из-за которой класс планеты не менялся, если на ней была жизнь, которая слишком сильно меняла температуру атмосферы
- Исправлена ошибка с некорректной работой фильтра биомов экзотической жизни в браузере звезд (а никто до сих пор и не заметил этого!)
- Исправлено множество артефактов, связанных с рендером океанов
- Исправлено затухание объектов дальнего космоса в превью Вики при использовании её с поверхности планеты с атмосферой
- Исправлены неточности в расположении полярных сияний по долготе и широте
- Исправлена некорректная конечная ориентация камеры при переключении между камерами внешнего вида корабля при его вращении
- Исправлена генерация температуры аккреционного диска в двойных системах, загружаемых из каталога
- Исправлено некорректное чтение некоторых звёздных классов из каталога
Как и всегда, вы можете обсудить данный пост на форуме.