sbox
October 15

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

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

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

Оптимизация сети

Автор: kuro

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

Наибольшее улучшение связано с тем, как обрабатываются Sync Vars и сетевые Transforms. Теперь мы отслеживаем, какие игроки уже имеют последнюю версию сетевого значения, чтобы не тратить время на проверку их состояния по сравнению с текущим состоянием каждый кадр. Это действительно полезно, когда у вас много сетевых объектов, которые не меняются.

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

Вот пример различий во времени кадра, когда у вас 200 в основном статичных сетевых объектов с 64 подключениями, где каждый сетевой объект также имеет 3 Sync Vars.

Сжатие и пропускная способность

Автор: kuro

Мы добавили сжатие LZ4 для больших пакетов. Оно включается автоматически, когда нагрузка превышает 128 байт, сокращая использование полосы без значительных затрат на ЦП. Очень маленькие пакеты остаются несжатыми.

И наконец - это важно для выделенных серверов - мы увеличили лимит отправки Steam Networking с 1 Мбит/с до 1 Гбит/с. Старый лимит мог перегружать серверы, пытающиеся обрабатывать большой трафик.

Редактор спрайтов

Автор: Carson

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

Теперь просмотр Спрайта в Инспекторе покажет список анимаций, которые вы можете предварительно просмотреть (похоже на модели), и если вы хотите внести изменения, вам нужно будет открыть Редактор.

А для Спрайтов с единственным кадром (обычно Встроенные Спрайты) Инспектор будет показывать только свойства для их Текстуры и Происхождения, так что вы все равно сможете быстро встроить Текстуры как Спрайты, не открывая Редактор.

Верёвки

Автор: lolleko

Мы наконец смогли перенести компонент Ремень из игрового режима песочницы в движок.
Веревки используют интеграцию верлет и сталкиваются с миром.
В сочетании с компонентом LineRenderer вы сможете быстро настроить веревки и кабели.

Render Texture Assets

Автор: Sam

Вы всегда можете создать Render Target и использовать её через код. Теперь вы можете сделать это полностью через редактор, создав RenderTexture, перетащив его на камеру для рендеринга и используя текстуру в любом месте, например, в UI или в световом шаблоне.

Улучшения настроек

Автор: devultj

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

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

Мы также улучшили внешний вид меню. Это не окончательный дизайн, мы изменим его в будущем.

Генерация Nav Mesh

Автор: lolleko

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

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

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

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