sbox
April 8

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

👽 Sandbox Game (Garrys Mod 2) открыли в общий доступ. Новый визуальный язык для скриптов - Doo. Теперь каждый сможет обновить документаций, а ИИ прочесть. Новое игровое меню

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

Sandbox Game: Общий доступ

Автор: devultj

Это всегда был план, но мы наконец-то открыли исходный код нашего игрового режима Sandbox (он же Garry's Mod 2), чтобы вы могли учиться и заимствовать оттуда. Вы также можете делать запросы на внесение изменений и сообщать об ошибках в репозитории GitHub.

Документация в общем доступе

Автор: matt

Мы перенесли наш исходный код документации на GitHub, он уже был в markdown, так что это не было сложно. Это означает, что он с открытым исходным кодом, любой может создать или редактировать документацию с помощью pull request.

Когда репозиторий GitHub обновляется, изменения синхронизируются с нашей страницей документации на этом сайте.

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

LLM теперь могут читать документацию

Автор: matt

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

  • llms.txt — файл, который llms смотрит, чтобы понять s&box, а также дальнейшие ссылки на все страницы документации
  • docs.md — добавление .md в конец любой страницы документации теперь выводит её в сыром markdown, без html, без javascript, без стилей.

Games меню

Автор: alex

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

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

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

Doo

Автор: garry

Я добавил Doo в движок. Doo стремится быть более простой и дружелюбной альтернативой ActionGraph. У него есть четкие ограничения и ограничения, он не предназначен для создания целых игр или выполнения сложной логики. Он должен быть более продвинутой версией Entity I/O.

Использование простое, в компоненте определите его:

[Property] public Doo OnPressed { get; set; }

Затем, чтобы запустить его

Run( OnPressed );

// или с аргументами
Run( OnPressed, config =>
{
	config.SetArgument( "user", presser );
} );

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

Исключение кулинга каскадных теней

Автор: Sam

Обратили внимание, что большая часть времени кадра на Steam Deck в главном меню происходит из-за второго каскада теней солнечного света.
Единственное, что отсутствует в нашей новой реализации CSM, это то, что мы никогда не перерисовывали то, что находится внутри предыдущего каскада, я с этим разобрался.

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

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

Инструмент прокладки кабелей

Автор: bakscratch

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

Sandbox Game: NPC

Автор: devultj

На этой неделе я добавил двух новых NPC. Один - это простой боевой NPC, который пытается стрелять и убить вас с помощью пистолета.

Другой - это Roller. Он еще в разработке, но полностью основан на физике, катится и прыгает на вас.

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

Sandbox Game: Эммитеры (излучатели)

Автор: devultj

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

Sandbox Game: Достижения

Автор: devultj

Добавлены достижения

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

Changelogs

🎁Added

  • Doo, a simpler visual scripting system for wiring up component events — designed as a friendlier alternative to ActionGraph for common use cases
  • Mesh cable tool in the mesh editor for creating cables, working similarly to Hammer
  • New games dashboard with a rotating carousel and redesigned game cards
  • `lang.showkeys` cvar and editor toggle to display localisation keys instead of translated text for debugging
  • CSS `overflow: clip` and `overflow: clip-whole` properties for UI element clipping
  • CSS `background-playback-state` property to pause video backgrounds
  • `[ShowIf]` and `[HideIf]` attributes now support null checks
  • Center option added to the pivot list in mapping tools
  • `IFormattable` whitelisted for use in the sandbox. Thank you @RumBugen!

🧼Improved

  • Texture editor moved into the inspector - Thank you @boxrocket6803!
  • Cascaded shadow map exclusion culling — shadows no longer render beyond each cascade boundary and objects from previous cascades are no longer re-rendered, significantly improving shadow performance
  • Networking thread now processes messages at the same tick rate as the main thread
  • Particle sprite GPU upload performance — buffer uploads moved into valid Graphics.Scope to avoid unnecessary render context creation
  • Network packet byte arrays are now pooled in DecodeStream, reducing GC pressure for large compressed payloads
  • Fixed a Steam buffer GCHandle leak where N-1 handles would leak per broadcast packet; replaced with a cheaper memcpy approach
  • `Package.MountAsync` now supports mounting specific package revisions, allowing games to pin map versions
  • `LoadingScreen.IsVisible` is no longer overridden every frame, allowing games to manually control loading screen visibility
  • `Game.ChangeScene` now shows a loading screen for all clients instead of just the host
  • Engine overlays remain visible during loading states
  • ScreenPanel `Scale` property now works when Auto Scale is enabled, and `Opacity` now correctly affects ScreenPanels
  • Undo support for WrapTextureToSelection and WrapTexture operations in the mapping tools
  • Pause modal now uses the lighter HtmlPanel instead of a full WebPanel
  • Launcher window geometry is saved when auto-closing
  • PATH changes are now a no-op on non-Windows platforms. Thank you @MrSoup678!

🪛Fixed

  • Disabling shadows on a directional light now works correctly
  • Shader compiler shutdown crashes resolved by properly draining the material system and preventing Steam callbacks after managed shutdown
  • Exceeding the maximum light count no longer triggers assertions or causes directional light flickering
  • `GetPixels` arguments are now validated to prevent negative values, fixing a security vulnerability
  • Referencing a deleted prefab no longer crashes — the editor shows a warning and preserves instance data for recovery
  • Creating a prefab from a GameObject now correctly restores the object's position
  • Reverting changes on a nested prefab instance no longer wipes all outermost overrides
  • Applying changes to a nested prefab no longer regenerates all GUIDs
  • Fixed cyclical library references caused by built-in projects referencing libraries
  • Fixed a null `AssetTypeAttribute.Name` NRE that silently shut down the GameInstance on editor startup
  • Game loading is now properly cancelled on disconnect, preventing background loads from continuing
  • Fixed filesystem unmount exceptions when a load is cancelled
  • Prop gibs now properly inherit velocity when spawned in a batch group
  • `IgnoreSingleObject` trace now correctly checks both rigidbody and collider GameObjects
  • Glass shader tint now blends correctly through multiple layers using premultiplied alpha blending. Thank you @Infiland!
  • `backdrop-filter: blur` no longer generates excessive mipmap levels Thank you @Infiland!
  • Toast notifications (e.g. achievements) no longer persist indefinitely
  • Post-game info popup is no longer dismissed on click, so its actions can be used. Thank you @RumBugen!
  • Fixed human models having deformed hands with the "holditem" holdtype
  • Fixed TextRenderer alignment not updating on re-enable
  • Fixed possible NRE in `Button.Text` setter
  • Fixed possible NRE in UpdateMusic