sbox
April 16

sbox — Обновление 15.04.2026

😥 Закрытие dev-preview, UI Батчинг и критерий по которым игру оставят.

Оригинал (ссылка)

Закрытие dev preview

Автор: matt

Спасибо всем, кто помогал нам в этот период - разработческий превью теперь закрыт!

Разработческий превью был бесценен для разработки s&box, предоставив движок его основной аудитории с первого дня - вы, ребята, сказали нам, что вам нравится, а что нет, и это превратило движок в то, чем он является сегодня.

Мы снова откроемся в Steam 28 апреля за $20.

https://store.steampowered.com/app/590830/sbox/

Удаление игры у аккаунтов

Автор: matt

Из 800,000 человек, которые присоединились к предварительному просмотру разработчиков, 40,000 могут оставить его а остальные были отозваны.

Кто смог оставить его:

  • Разработчики, выпустившие игры, в которые играли люди
  • Любой, кто купил скины
  • Любой, кто играл достаточно и действительно открыл игру в этом году

Мы делаем это партиями, чтобы убедиться, что все правильно, это может занять немного времени.

UI Батчинг

Автор: antopilo

Я объединил UI-батчер, что означает, что UI теперь будет рендериться гораздо быстрее.

Вы можете ожидать значительные улучшения производительности в ваших пользовательских интерфейсах (что почти в каждой игре), некоторые пользователи сообщают о 54% больше FPS в меню.

Объединение

Ранее мы рендерили каждую панель по отдельности, проходя по DOM. GPU рисовал каждую по отдельности, что работало какое-то время. Но с ростом сложности количество отдельных отрисовок, которые выполнял ваш GPU, влияло на производительность.

Теперь мы можем, в лучшем случае, рисовать все сразу.

Страница открытия

Наша страница открытия сократилась с 1080+ вызовов отрисовки до всего лишь 5.

Вот что ваш GPU делал раньше. Каждая линия — это вызов отрисовки.

А это после.

Вот видео, воспроизводящее каждый вызов отрисовки один за другим с до и после.

Другие страницы

Другие страницы меню рисуются за один вызов, что, к сожалению, не делает видео очень захватывающим, так как оно рисуется за один шаг.

В целом, это было необходимое улучшение, так как сложность игр и пользовательских интерфейсов возросла. Мы планируем поработать над этим немного больше, чтобы оптимизировать другие аспекты нашего UI-пайплайна.

Главное меню: Поиск

Автор: alex

Мы упростили поиск, добавив удобную строку поиска в центре навигационной панели:

Это довольно просто, и мы будем улучшать это со временем - но надеемся, что это упростит поиск игр, в которые вы хотите играть.

Улучшения сериализации

Автор: Lorenz

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

Улучшения редактора префабов

Автор: Lorenz

На этой неделе мы внесли множество улучшений в редактирование префабов.

  • Быстрее: Меньше выделения памяти и ненужной работы при редактировании префабов.
  • Чище диффы: Вложенные операции с префабами больше не регенерируют все GUID.
  • Отсутствующие префабы: экземпляры с удаленными файлами префабов теперь отображаются как "сломанные", вместо того чтобы выдавать ошибку;
    данные восстанавливаются, если файл префаба возвращается.
  • Исправления ошибок: Возврат вложенных префабов больше не стирает родительские переопределения; создание префаба из GameObject корректно восстанавливает позиции.

Map Editor: из Мэша в модели

Автор: bakscratch

Мы добавили инструмент, который позволяет конвертировать модель в карту сетки.

NavMesh генерация по запросу

Автор: Lorenz

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

Новый публичный API:

// Пропустить генерацию тайлов при загрузке
bool NavMesh.DeferGeneration

// Запросить генерацию тайлов (fire and forget)
void NavMesh.RequestTileGeneration( Vector3 )
void NavMesh.RequestTilesGeneration( BBox )

// Удалить тайлы из навмеша
void NavMesh.UnloadTile( Vector3 )
void NavMesh.UnloadTiles( BBox )

Оптимизация окружной окклюзии

Автор: Sam

Окклюзия окружения в настоящее время является самой большой проблемой для систем низкого уровня.

Мы выпустили несколько оптимизаций для SSAO, теперь используется Hilbert Tree вместо Blue Noise, что позволяет нам использовать меньше образцов для достижения того же визуального результата.

Кроме того, теперь мы используем логику Float16 вместо Float32, что должно значительно ускорить работу на некоторых GPU.

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

Вертикальный держатель

Автор: devultj

Мы добавили параллельное / вертикальное соединение, чтобы объекты оставались вертикальными.

В качестве дополнительного бонуса вы также можете связать два объекта вместе, и они останутся параллельными.

Документация

Автор: matt

Документация получила много внимания, у нас много отличного контента, но его обнаружение и структура были неочевидны. Я перерабатываю всё, улучшаю раздел "Начало работы", добавляю больше основных разделов и страницы "хабов". Также уже было много вкладов от сообщества с тех пор, как мы открыли исходный код на прошлой неделе!

Выделенные сервера: текстурки

Автор: devultj

Долгое время, если выделенный сервер сетевал GameObject с ссылкой на текстуру, она обнулялась и никогда не отправлялась. Это связано с тем, что серверы не загружают данные текстур, что логично. Но из-за этого мы никогда не регистрировали их в нашем управляемом движке.

Теперь мы их регистрируем — это не значит, что вы можете начать читать данные текстур на сервере, вы не можете. Однако сетевое взаимодействие с этими ресурсами теперь будет работать как задумано.

Итоги

Автор: matt

Это конец эпохи с закрытием предварительного просмотра разработчика - 5 лет назад мы получили Source 2 и почти сразу открыли доступ для разработчиков, позволяя им попробовать инструменты, когда их было очень мало, чтобы увидеть, что хорошо, а что нет.

Этот цикл обратной связи был жизненно важен для достижения того, где мы находимся, видя, как люди хотят продвигать границы Source 2 все дальше и дальше, пока мы не переписали половину движка от сущностей до удобной системы сцен, которую мы все любим сегодня.

Огромное спасибо всем в сообществе, кто участвовал на протяжении всего пути и помог определить, чем является s&box сегодня.

Все, что мы делаем, направлено на предоставление возможностей для следующего поколения разработчиков, будь то наш Play Fund, создатели косметики, открытый исходный код или экспорт независимых игр без роялти на Steam.

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

💙 Русскоязычное сообщество s&box