sbox
April 23

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

🧬 До релиза осталась всего неделя, и мы успели добавить все последние доработки. Auto LOD, исправления UI Batching, поддержку 2D-спрайт-листов, переработку медиа фреймворка, массу весенней уборки, а также несколько крупных исправлений и оптимизаций.

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

Sandbox Game: Оружие, которое само стреляет

Автор: devultj

Это функция, которую я добавил несколько недель назад, но она действительно проявляет себя сейчас с добавлением Ракетницы и поддержкой Физического Пистолета.

Это означает, что ваши конструкции могут стрелять ракетами..

Или захватывать вещи, как тракторный луч..

Sandbox Game: RT Камера

Автор: devultj

Теперь вы можете связывать камеры с телевизорами, что отлично подходит для механизмов или просто для развлечения.

Вы уже могли это делать некоторое время, но я хотел показать, как вы можете сделать это сами в своих играх. Вы можете создать текстуру целевого рендеринга с определенным размером и просто связать ее с RenderTarget камеры.

Авто LOD

Автор: Lorenz

Мы добавили возможность автоматической генерации LOD непосредственно в modeldoc.
Под капотом Arseny's meshoptimizer делает основную работу.

Видео предоставлено Northbound RP

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

Импорт спрайтов

Автор: Carson

Теперь вы можете импортировать спрайты из спрайт-листа без необходимости вручную их разделять. Просто установите строки/столбцы и выберите, какие кадры вы хотите импортировать:

При импорте спрайт-ленты (вертикальной ИЛИ горизонтальной) автоматически установятся строки/столбцы и выберутся все кадры, чтобы их можно было импортировать без лишних манипуляций :)

Map Editor: Мосты

Автор: Layla

Еще один большой инструмент из Hammer, перенесенный в инструмент для картирования. Соединяйте края и грани.

Окно отключения

Автор: solwllms

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

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

Исправление Bindless API

Автор: matt

После объединения UI-батчинга и новых теней мы наблюдали незначительные и интенсивные артефакты на картах AMD.

Мы переключили все эти шейдеры на использование безпривязочных текстур, которые отличные, но требовали явного указания с NonUniformResourceIndex, чтобы работать в неравномерных случаях (что было 99% наших случаев...). Хотя мы указывали это как Bindless::GetTexture2D( NonUniformResourceIndex( TextureID ) ), они на самом деле ничего не делали как параметр функции, это нужно было делать на самом дескрипторном хипе.

Решение было простым: если 99% времени нам нужно было использовать NonUniformResourceIndex, мы могли бы сделать это внутри Bindless::GetTexture2D( TextureID ), чтобы людям не приходилось беспокоиться о том, что это значит. Если у нас есть обоснование, мы можем сделать вариант, когда вы знаете, что у вас есть равномерный индекс ресурса.

Больше никаких артефактов на AMD.

Переписывание медиа фреймворка

Автор: Lorenz

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

Поэтому мы убрали нашу зависимость от FFmpeg, хотя он мог обрабатывать практически любой кодек или формат файла, мы предпочли ограниченный выбор наиболее часто используемых кодеков и форматов файлов, таких как AV1, WebM и Opus.

В дальнейшем мы будем поддерживать следующие форматы и кодеки:

Видео

  • Декодирование: VP9, AV1, анимированный WebP, H.264 (только Windows через MMF)
  • Кодирование: VP9, AV1, анимированный WebP
  • Контейнеры: .webm, .mp4

Аудио

  • Декодирование: Opus, FLAC, MP3, WAV/PCM, AAC (только Windows через MMF)
  • Кодирование: Opus, WAV/PCM
  • Контейнеры: .ogg, .wav, .flac, .mp3, .opus

Сетевое воспроизведение: HTTP/HTTPS

Примечание: Декодирование H.264 и AAC предоставляется через Windows с помощью Media Foundation, если вы добавляете видеоконтент в свои игры, мы рекомендуем AV1 или VP9.

Больше документации можно найти здесь: https://sbox.game/dev/doc/media/

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

AV1 кодирование на сервере

Автор: matt

После изменений в медиа-фреймворке движка мы рассмотрели, как мы кодируем видео в нашей мастерской. Ранее все они были H264 в MP4, но мы перешли на AV1 в WebM и начали перекодировать все существующие видео.

Вот некоторые размеры видео из наших популярных игр.

  Dark Descent (1080p 60fps, 27.8s)
   ┃ Variant ┃ MP4 Size ┃ AV1 Size ┃ Saving ┃ MP4 SSIM ┃ AV1 SSIM ┃
   ┃ High    ┃  41.80MB ┃  16.29MB ┃  -61%  ┃  0.9719  ┃  0.9538  ┃
   ┃ Medium  ┃  17.65MB ┃   9.93MB ┃  -44%  ┃  0.9598  ┃  0.9535  ┃
   ┃ Low     ┃   3.41MB ┃   3.02MB ┃  -11%  ┃  0.9284  ┃  0.9499  ┃

  Sausage Survivors 2 (1080p 30fps, 24.6s)
   ┃ Variant ┃ MP4 Size ┃ AV1 Size ┃ Saving ┃ MP4 SSIM ┃ AV1 SSIM ┃
   ┃ High    ┃  12.94MB ┃   5.99MB ┃  -54%  ┃  0.9889  ┃  0.9603  ┃
   ┃ Medium  ┃   6.11MB ┃   3.31MB ┃  -46%  ┃  0.9835  ┃  0.9551  ┃
   ┃ Low     ┃   1.39MB ┃   1.00MB ┃  -28%  ┃  0.9638  ┃  0.9479  ┃

  Sandbox (720p 50fps, 21.2s)
   ┃ Variant ┃ MP4 Size ┃ AV1 Size ┃ Saving ┃ MP4 SSIM ┃ AV1 SSIM ┃
   ┃ High    ┃   8.45MB ┃   6.49MB ┃  -23%  ┃  0.9328  ┃  0.9760  ┃
   ┃ Medium  ┃   8.45MB ┃   5.65MB ┃  -33%  ┃  0.9328  ┃  0.9741  ┃
   ┃ Low     ┃   1.53MB ┃   1.46MB ┃   -5%  ┃  0.9135  ┃  0.9700  ┃

Резюме

  • Размеры файлов: на 5–61% меньше по всем параметрам, наибольшие выигрыши в контенте 1080p с высоким битрейтом
  • Качество: Все варианты AV1 остаются выше 0.95 SSIM (отлично). Sandbox действительно показывает значительное улучшение качества
  • Худший случай: Sausage Survivors 2 high падает с 0.989 -> 0.960 SSIM - заметно по метрикам, но все еще выше порога восприятия, при половине размера файла

Новые финансовые метрики

Автор: garry

Я обновил наши открытые финансовые метрики, чтобы они были еще более подробными, добавив наши расходы на ведение s&box как компании, зарплаты, серверные расходы, налоги, фонд игр, все это там.

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

Исправление UI Batching

Автор: matt

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

Режимы смешивания

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

Отложенная пакетная обработка

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

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

Изображения показывают:

  1. Немедленная пакетная обработка с неправильными режимами смешивания
  2. Немедленная пакетная обработка с правильными режимами смешивания
  3. Отложенная пакетная обработка с правильными режимами смешивания

Время вечеринок

Автор: solwllms

В S&box давно существуют группы, на этой неделе мы обновили их интерфейс, лучше интегрировали с новыми системами и функциями и убрали лишнее.

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

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

Группы - это быстрый и простой способ играть в игры на s&box, и они работают так, как вы ожидаете. Пригласите своих друзей, и они сразу же присоединятся к любой игре на платформе. Попробуйте! 🥳

Оптимизация AO #2

Автор: sam

Завершена вторая часть оптимизаций AO, теперь AO работает в половинном разрешении, так что он в 4 раза быстрее при том же количестве выборок, что и раньше, 16x на низком пресете (четверть разрешения), апскейл делает его практически таким же, как у других.

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

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

О, и мы также сделали так, чтобы отключение AO действительно его отключало. 🤨

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