sbox — Обновление 15.09.2026
💀 Почему Гарри сделал это? Возрождение игры Block Party, новый HudPainter, текст на GPU, кучу обновлений для Map Editor и исправлений для Linux и Mac
Оригинал (ссылка)
Painter
PainterЭто небольшая вспомогательная структура, заменяющая HudPainterсистему рендеринга панелей. Теперь она используется для рендеринга всей системы панелей, и вы можете использовать её для ручного рендеринга таких элементов, как пользовательский интерфейс, HUD, панели и панели мира, используя понятный API. Фигуры, как правило, отображаются в формате SDF, поэтому они полностью сглажены и выглядят красиво.
Мы можем рисовать дуги, стрелки, линии Безье, капсулы, круги, полумесяцы, кресты, сердца, линии, полилинии, многоугольники, четырёхугольники, прямоугольники, кольца, звёзды, деления и треугольники.
Мы поддерживаем множество различных видов штриховки. Внутренняя, центральная и внешняя. Сплошная, пунктирная, точечная.
Заливка может представлять собой цвет, изображение, радиальный градиент, линейный градиент или конический градиент.
Всё это работает на основе пакетной обработки, поэтому производительность просто невероятная. В этой демонстрации всё отрисовывается за один единственный вызов отрисовки.
Вот как выглядит код в компоненте...
void Update ()
{
using var painter = Camera.BeginHud();
var color = Color.Green;
painter.Fill = Fill.LinearGradient( Color.Red, Color.White, 45.0f );
painter.Stroke = Stroke.Solid( color, 3 );
painter.Circle( new Vector2( 100 , 100 ), 50 );
}Это изменение также делает IPanelDrawтеперь излишним то, что функцию можно просто переопределить OnDraw( Painter painter ).
Render GPU text
Рендеринг текста был старейшим компонентом нашего движка, он хорошо работал, но имел свои недостатки, особенно из-за генерации на ЦП, размытость при любых преобразованиях.
Поскольку мы собираемся сосредоточиться на использовании нашей системы пользовательского интерфейса для инструментов, нам следует сделать рендеринг текста превосходным.
Продолжая работу, проделанную несколько недель назад на хакатоне , я полностью реализовал рендеринг текста на GPU на основе алгоритма Ленгьеля в движке, сохранив при этом весь текущий API: кривые передаются на GPU, и все отрисовывается в шейдере.
Вам ничего не нужно делать, это просто работает, поддерживает CJK, эмодзи, тени, контуры и все, что поддерживала предыдущая система, и выглядит невероятно четко даже с миллиметрового расстояния.
В итоге, эта система работает значительно быстрее, чем наша предыдущая, и при этом всегда выглядит потрясающе.
Всё по-прежнему отображается с помощью нашего средства отрисовки пользовательского интерфейса за один вызов отрисовки.
Миграция хоста
Когда хост покидает систему, его состояние, зафиксированное в моментальный снимок, восстанавливается на новом хосте, включая объекты, доступные только на хосте. Если ваше состояние сохраняется после позднего присоединения, оно должно сохраниться и после миграции хоста.
Однако выполняющийся код не переносится, поэтому все, что находится в процессе выполнения, необходимо возобновить на новом хосте. Существуют анализаторы, которые помогут вам проверить, что ваше состояние и поведение безопасны при миграции.
Более подробную информацию можно найти в документации .
Всплывающая панелька
Мы добавили всплывающие подсказки в меню. Наведите курсор на игру, и вы сможете быстро увидеть необходимую информацию, чтобы решить, стоит ли в неё играть.
Мы также переработали модальные окна и всплывающие уведомления в других разделах меню, сделав такие элементы взаимодействия с игрой, как «Отзывы», «Избранное», «Скрыть игру» и т.д., более заметными и удобными в использовании.
Настройки качества в редакторе
Ранее изменение графических настроек в редакторе означало запуск сцены и открытие меню настроек в игре.
Теперь в элементах управления окном просмотра есть выпадающее меню, позволяющее напрямую переключать предустановки качества.
Block Party
Представляю вашему вниманию новую игру, использующую систему 2D-спрайтов:
https://sbox.game/facepunch/blockparty/
В нём есть таблицы лидеров с возможностью просмотра повторов, редактор уровней с поддержкой мастерской, экспорт в GIF-файлы и некоторые другие интересные функции.
Map Editor: переворачивания сетки карты
Map Editor: выравние блока по грани
Улучшения производительности сериализации
Клонирование GameObject теперь примерно в 2,6 раза быстрее, а количество выделений памяти в синтетических тестах сократилось примерно на 38%. Это положительно сказывается на всех процессах, создающих префабы во время выполнения.
В наших реальных тестах это менее значимо, поскольку основным узким местом при клонировании является создание моделей, коллизии и т.д. Фактические накладные расходы на сериализацию при клонировании и так были довольно низкими.
Сетевые снимки также дешевле на хосте. Состояние сцены по-прежнему захватывается в основном потоке, но кодирование JSON, BLOB-объектов и пакетов теперь выполняется на рабочих потоках, поэтому добавление или загрузка игроков обходится хосту гораздо дешевле.
Улучшения на Mac и Linux
Ряд улучшений для Mac и Linux:
- Исправления для Mac касаются ввода в режиме просмотра игры, масштабирования DPI в редакторе, открытия папок в Finder и подготовки сцен.
- Поддержка геометрических шейдеров для Mac, исправлены сбои компонента подсветки; также исправлено время жизни вызовов процедурного рендеринга.
- Функция определения редактора кода и элементы управления публикацией/экспортом работают на Mac и Linux.
- В сборках для Linux используется среда выполнения Steam Linux Runtime 4.0.
- В качестве резервного варианта для цветных эмодзи на Mac и Linux используется Twemoji.
Open Source Workflow
Я немного улучшил рабочий процесс разработки программного обеспечения с открытым исходным кодом, добавив более простой файл Setup.bat, а теперь и Setup.sh для Linux и Mac.
В файле Setup.bat теперь отображается ход выполнения, в основном для этапов загрузки, поскольку раньше вы не знали, сколько и как долго загружается файл.
Кроме того, программа установки теперь устанавливает Git-хуки — каждый раз, когда вы выполняете pull-запрос или переключаете ветку, этап загрузки запускается автоматически, а это значит, что вам не нужно запускать Setup.bat каждый раз.
Настройки хранилища
Переработан дизайн страницы настроек хранилища.
Отключение оверскрола
Я добавил свойство CSS overscroll-behavior , которое позволяет как отключить эффект отскока при прокрутке, так и предотвратить каскадную прокрутку на родительскую панель.
Почему снизили цену?
На этой неделе я снизил цену вдвое, с 20 до 10 долларов.
В Твиттере появились предположения, что это отчаянная попытка привлечь больше игроков. Ну, это же очевидно! Конечно, это так. Нам нужно больше игроков, у нас их недостаточно. В отзывах нам постоянно пишут, что цена слишком высока, поэтому мы собираемся её снизить, чтобы привлечь больше игроков.
Наша главная цель на платформе сейчас — привлечь больше активных игроков. Мы улучшаем платформу, поощряем подходящие игры, улучшаем поиск и повышаем производительность. Мы движемся в разных направлениях, чтобы добиться увеличения числа активных игроков, и это одно из них.