sbox
September 30

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

🦉 Новый Терри 2.0 c шеей, финалисты в Game Jam III, новый загрузочный экран, компилятор карты в Map Editor, игры/карты стали грузится быстрее, База данных от Facepunch, больше статистики для игр

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

☢️ Проголосуйте за GAMMA TEAM, чтобы наш пацан попал на 1 место. Он уже в топ 4 и дальше больше. Голоса ресетаюстя каждый день, поэтому они важны. Пожалуйста, сделайте это!

Финалисты Game Jam III

Roundabout выбыл из соревнований и занял 5-е место, получив приз в размере 5000 фунтов стерлингов. Оставшиеся финалисты:

  • GAMMA TEAM
  • RUN IT
  • Catz VS Ratz
  • Key Buarell

Следующий тур голосования уже открыт!

Сосиска 2.0

Автор: garry

Я обновил внешний вид гражданина. Теперь у него по умолчанию не хмурое лицо, и у него может быть шея.

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

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

Мы будем продолжать пытаться сделать его более удачным, будем дорабатывать и стараться сделать его менее спорным, но в какой-то момент нам, возможно, придётся признать: «Да, это не сработало

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

Деформация моделей

Автор: garry

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

Все эти функции работают на GPU, они невероятно быстрые и подходят для любой модели. Они носят чисто визуальный характер — они не изменят положение костей, хитбоксов или данных о столкновениях.

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

Друзья и пати

Автор: devultj

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

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

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

Превью игр

Автор: Devultj

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

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

Обновление загрузочного экрана

Автор: devultj

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

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

Музыка в главном меню

Автор: garry

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

devultj

Автор: garry

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

Это также исправляет искажение звука при запуске нескольких экземпляров игры. Теперь каждый поток воспроизведения имеет свой собственный декодер, а для воспроизведения пользовательского голоса можно использовать SoundStream.WriteVoiceData.

Новый экран запуска

Автор: garry

Новый экран запуска игры с индикатором выполнения.

Области профилирования графического процессора для списков команд

Автор: wheatleymf

Теперь вы можете добавлять собственные области профилирования в списки команд. Они будут видны в игровом профилировщике GPU ( overlay_gpu 1) и внешних инструментах. Это должно быть полезно для измерения влияния на производительность отдельных участков вашего кода рендеринга.

Вот как можно добавить область профилирования:

static  readonly ProfilingSampler MyProfilingScope = new ( "My Profiling Scope" );

// Внутри кода выполнения списка команд: 
using ( _commandList.ProfileScope( MyProfilingScope ) )
{
    // Сделайте здесь что-нибудь... 
}

Вложенные области видимости тоже работают, как на скриншоте выше. Вот пример настройки:

используя ( _commandList.ProfileScope( ParentScope ) )
{
	используя ( _commandList.ProfileScope( NestedScopeA ) )
	{
		// Что-то здесь...
	}

	используя ( _commandList.ProfileScope( NestedScopeB ) )
	{
		// Что-то здесь...
	}
}

Эти фрагменты кода также доступны в документации s&box .

Оптимизация беспорядка

Автор: antopilo

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

В нашем бенчмарке мы сократили выделение памяти на 58% и время пакетной загрузки уменьшили на 97%.

Компиляция сцен

Автор: layla

Теперь вы можете компилировать сетки и модели сцены в единую статическую геометрию и коллизии, используя команду «Сцена > Компилировать сцену» . Это похоже на компиляцию карт в Hammer, что является еще одним шагом к переносу редактирования карт в редактор сцен.

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

Улучшения глубины поля

Автор: antopilo

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

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

Быстрая загрузка игр

Автор: devultj

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

Загрузки

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

Выбранные данные из наших тестов:

  • В среднем, на оборудовании с подключением со скоростью 200 Мбит/с игра, содержащая много мелких файлов, загружается примерно на 50% быстрее.
  • Наибольшую выгоду получили игры с большим количеством зависимостей от других пакетов: в одной из них время выполнения сократилось с 19,4 до 6,6 секунд.
  • Чем быстрее ваше соединение, тем больше выигрыш, медленные соединения и так в основном ограничены пропускной способностью сети.

Загрузка

Большая часть времени, затраченного на погрузку, уходила на накладные расходы, а не на саму погрузку:

  • Файлы монтировались по одному.
  • DLL-файлы пакетов загружались заново при каждой загрузке.
  • Вызовы бэкэнда ожидали друг друга, вместо того чтобы выполняться параллельно.

Загрузка песочницы на ровной траве:

  • Холодная загрузка (первая загрузка после запуска s&box): от ~20 до ~9 секунд.
  • Повторная загрузка в рамках той же сессии: от ~7 до ~5,5 секунд.

Быстрый painter

Автор: garry

Я оптимизировал систему Painter. Теперь рисование многоугольников и полилиний происходит намного быстрее и не создает никаких лишних элементов.

Стабильность рендеринга

Автор: matt

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

Также исправлены ошибки, связанные с заменой масштабирующих процессоров DLSS и инициализацией или совместным использованием масштабирующих процессоров FSR3. При превышении объема видеопамяти пул текстур теперь уменьшается на величину превышения, в том числе и в инструментах. Отчеты о сбоях графического процессора содержат больше информации о неудачном вызове, шейдере и объеме памяти, что помогает выявить оставшиеся проблемы.

База данных

Автор: garry

У нас уже некоторое время есть служба базы данных на бэкэнде, но она не была доступна извне. Теперь же она доступна через ` Sandbox.Services.Database.`. Существует миллион способов её использования, и я уверен, что мы будем расширять её возможности в будущем.

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

var messages = Database.GetTable( "player-messages" );

// Сообщение и его координаты в пространстве. 
var data = Json.Serialize( new
{
    Текст = "У этой груди есть зубы. "
    Position = new Vector3( 120 , 450 , 32 )
} );

await messages.Create( Guid.NewGuid().ToString(), data, "dungeon-01" , true );
var records = await messages.List( "dungeon-01" );

Новая статистика игр

Автор: Lorenzo

В разделе статистики вашей игры появилась новая страница с аналитикой игроков sbox.game/<your-org>/<your-game>/metrics/player-insights.
Её могут видеть только члены организации, ответственной за игру.

В центре внимания — две темы:

удержание игроков.

  • Как долго игроки остаются во время своей первой сессии?
  • Сколько человек вернутся на следующий день, через неделю и через месяц?
  • Улучшается это или ухудшается со временем.

Ознакомление и адаптация

  • В меню отображалась информация о вашей игре и о том, как игроки могут в неё войти.
  • Убедят ли их миниатюра, описание и видео нажать кнопку воспроизведения
  • Удержат ли их внимание первые 5 минут?

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

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

Мета данные из страницы в редактор

Автор: devultj

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

Исправления рендера ландшафта

Автор: Sam

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

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

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