Текущая работа

Подготовка к релизу - непростое время. Требуется завершить разработку многих новых систем, провести большое количество тестов, и исправить огромное количество всплывших багов, большинство из которых мелкие. Часть из перечисленной ниже работы делалась ещё несколько месяцев назад, просто не было отдельного блог-поста, но большинство было сделано за прошедшие 2 недели.
Некоторые исправления и улучшения "экзотических" видео режимов - цилиндрического, "рыбьего глаза" и cubemap.
- Устранена вертикальная линия на видео в цилиндрической проекции.
- Паттерн "шахматная доска" для фона проекций "рыбий глаз" и цилиндрической.
- Различные форматы кадра для 360° cubemap проекции.
- Оптимизирован рендер в проекции "рыбий глаз": грани обрезаются в соответствии с используемым FOV объектива.
Cubemap проекция теперь имеет несколько вариантов компоновки граней куба в кадре, которые можно использовать для захвата 360° видео непосредственно в формате youtube/facebook/и пр. Такой формат видео - шесть граней кубической карты - в некоторых случаях лучше, чем цилиндрическая проекция. Он устраняет артефакты около полюсов и более рационально использует площадь кадра, что может улучшить сжатие или разрешение. Но в SE пока имеется одна проблема (кроме нерешенных проблем с обрезанием частиц некоторых эффектов на краях граней): пост-обработка, такая как bloom, pseudo lens flare и даже FXAA, работает после проекции, поэтому эти эффекты могут распространять яркость пикселей на соседние грани куба. Это приводит к появлению швов в финальном видео, когда вы смотрите его на YouTube или в VR шлеме. Чтобы это исправить, необходима реализация пост-эффектов в координатах кубемапы, но пока пользователи должны отключить все эффекты пост-обработки для устранения этих швов.
- Отдельные настройки MSAA для VR.
- Обновлена скрипт-команда Screenshot: опции для установки шаблона имени файла, формата и захвата интерфейса
- Поддержка сжатых текстур (DXT5-YCoCg) и карт нормалей (BC4) для космических кораблей.
- Увеличено разрешение стандартных текстур некоторых планет без аддонов (Земля, Марс и т.д.)
- Режим карты и режим чарта воспроизводят собственный саундтрек.
- Новые параметры для Star и StarBarycenter в каталоге звёзд: ForceSystemLum (заставляет звездную систему использовать светимость/абс. величину, указанную в каталоге звёзд, игнорируя суммарную светимость компонентов системы), Hidden (скрыть частицу звезды и игнорировать любые попытки выбора системы, кроме как из скрипта).
- Отображение пути к файлу и номера строки для всех каталожных объектов в режиме отладки.
Последнее чрезвычайно полезно для исправления ошибок в каталогах. В режиме отладки SE отображает путь файла и номер строки последнего вхождения выбранного объекта среди всех файлов каталогов (выделено рамкой на скриншоте).
- Добавлен параметр humidity (влажность) для контроля распространения растительности на планетах с жизнью.
Теперь соотношение растительности и пустынь на планетах с жизнью можно контролировать одним параметром. Есть еще 6 параметров, которые я ранее не описывал. Они контролируют распределение трёх биомов: леса, травы и пустыни (точнее, степи): climateDesertMin, climateDesertMax, climateForestMin, climateForestMax, climateGrassMin, climateGrassMax. Эти биомы имеют различные детальные текстуры в файле конфигурации биомов и палитр: Desert, Forest, Grass.
- Полярные циклоны на газовых гигантах, похожие на таковые на Юпитере, и параметры скрипта/редактора для них.
Процедурные газовые гиганты с малым наклоном оси, такие как Юпитер, теперь имеют много "небольших" циклонов, образующихся вблизи их полюсов. Для управления ими предусмотрены новые параметры: cycloneOctaves2, cycloneMagn2, cycloneFreq2, и cycloneLatitude2. Параметр cycloneLatitude2 определяет минимальную широту, на которой начинают появляться эти циклоны.
- Экваториальный хребет на безвоздушных лунах и планетах.
- Экваториальный хребет на малых лунах, вращающихся внутри колец родительской планеты.
- Параметры venusMagn и venusFreq тэга Surface управляют общей формой астероидов.
- Уменьшен радиус моделей астероидов, чтобы сделать их более-менее соответствующими указанному в интерфейсе/каталоге среднему радиусу.
SE теперь генерирует луны и даже планеты с экваториальными хребтами, как на Япете. Это тела, которые имели кольцо в прошлом, но которое выпало на поверхность и образовало гигантскую горную гряду вдоль экватора. Кроме того, небольшие астероидоподобные луны, которые вращаются внутри колец газовых гигантов, также имеют экваториальный хребет. Реальными примерами являются спутники Сатурна Атлас, Пан и Дафнис. Для них также добавлен экваториальный хребет путем добавления новых параметров в их тег Surface: eqridgeMagn, eqridgeWidth, eqridgeModMagn, eqridgeModFreq.
- Генерация горячих газовых гигантов на полярных и ретроградных орбитах.
В реальности горячие юпитеры часто встречается на чрезвычайно наклонённых или даже ретроградных орбитах вокруг их родительских звёзд.
- Возможность создания пользовательских локальных файлов баз данных для описания объектов.
- Новое поле в базe данных описаний объектов - Franchise.
- Wiki отображает информацию о типе объекта: реальный, процедурный или объект из франшизы.
- В шрифты добавлены символы '–' (en dash, 0x96, Alt-0150) и '—' (am dash, 0x97, Alt-0151).
Любителям модов понравятся эти дополнения. Теперь, чтобы добавить описания к планетам вашего мода, например из вселенной Star Trek, можно просто создать папку locale в папке мода, затем создать в ней файл any_name-loc-db.cfg, где loc - ваш язык, и набрать код описания в нём. Если вы потом отредактируете описание в Wiki, она сохранит изменения в том же файле, из которого загрузила запись, поэтому редактирование в SE теперь более удобно.
Также Wiki теперь отображает информацию о том, из какай франшизы (вымышленной литературной/художественной/игровой вселенной) этот объект. Для других объектов она отображает текст «Реальный объект» или «Процедурный (сгенерированный) объект». Это поможет избежать путаницы среди новых пользователей SE.
Поддержка символов длинных тире также упрощает создание/редактирование описаний. Ранее, при копировании текста из Интернета, эти символы отображались в SE как m и s - специальные символы SE для обозначения минут и секунд. Это раздражало и требовало замены всех длинных тире на короткие. Теперь этого делать больше не нужно.
Много изменений в редакторе планет, это связано с тем, что я занимаюсь настройкой процедурного генератора, а удобный инструмент для модификации планеты на ходу упрощает это (редактор планет для этого и создавался, он всё ещё является лишь отладочным инструментом):
- Возможность связать изменение орбитального периода и большой полуоси (автоматическое повторное вычисление, если противоположный параметр был изменён).
- Редактирование параметров кометных хвостов.
- Редактирование параметров процедурных колец, параметры также добавлены в скрипты.
- Сохранение значений параметров NO_DATA (исправление экспорта странных значений, таких как -1.#IND).
- Слайдеры отображают значение NO_DATA, ручка слайдера в этом случае невидима.
- Чтобы установить значение NO_DATA для параметра, введите что-либо, кроме числа, в поле ввода слайдера.
- Редактирование цвета и яркости карт свечения поверхности и облаков.
- Редактирование цвета полярных сияний.
- Параметр поверхности или облаков TempMapMaxTemp, для задания того, какая температура в Кельвинах соответствует белым пикселям на температурной карте.
- Плотная и яркая корона звёзд Вольфа-Райе (имитация мощного звёздного ветра).
- Более точные данные по родительским звёздам для всех потенциально пригодных для жизни экзопланет.
- Новые параметры в каталогах - DistLy и RadiusLy для задания расстояния до объекта и его радиуса в световых годах.
- Режим карты: чекбокс для быстрого сокрытия процедурных объектов.
- Изменение схемы нумерации версий SE: 0.990.15.1451 (мажорная версия, минорная версия, номер сборки, номер ревизии).
- Автоматическая очистка кеша, если текущая версия SE отличается от прочитанной из лог-файла от предыдущего запуска.
Предстоящая версия SE теперь будет иметь номер 0.990 вместо 0.9.9.0 (точнее, 0.990.xx.yyyy, где xx будет номером сборки, yyyy - номером ревизии). Каждое новое обновление на Steam будет иметь увеличенный номер сборки, каждый небольшой патч - увеличенный номер ревизии. Серьёзное обновление будет увеличивать минорную версию (0.990 -> 0.991 -> 0.992 и т.д.)
Каждое обновление процедурного генератора изменяет вселенную, поэтому сохраненные локации могут больше не работать. Когда такое изменение будет добавлено в обновление, я буду увеличивать минорную версию. Код локации имеет параметр Version, составленный из мажорной и минорной версии SE, в которой она сохранялась. Он сравнивается с текущей версией SE, и если они не совпадают, SE показывает сообщение об ошибке (это было введено ещё в 0.980 или даже раньше). Поскольку номера сборки и ревизии не используются в этой проверке, все локации из одной и той же минорной версии должны работать. Я попытаюсь сохранить эту систему, поэтому пользователи всегда будут знать, будет ли локация работать в определенной версии SE. Например, локации из версии 0.990.15.1535 будут работать в 0.990.17.2465, но не будут в 0.991.10.3175.
Некоторые исправления и изменения в текущей бета-версии:
- Реализован поиск ближайших звёздных скоплений и туманностей.
- Реализована перемотка в редакторе пути камеры.
- Исправлено «нимбоподобное» полярное сияние на планетах с толстой атмосферой.
- Исправлена работа оверлея Steam на видеокартах AMD.
- Исправлен сбой при экспорте текстур планеты при включенном сжатии текстур.
- Исправлено ограничение массы газового гиганта до ~1,5 масс Юпитера.
- Исправлена яркость облаков коричневых карликов.
- Исправлен блик, видимый с больших расстояний на ледяных телах Солнечной системы.
- Исправлен состав морского дна на Земле.
- В скрипте планеты требуется указание одновременно и состава океана, и состава атмосферы, если имеются хотя бы одно (иначе выводится сообщение об ошибке).
- В скрипты планеты добавлены параметры плотности океана и состава дна.
Обсудить этот пост можно на форуме.