Update 26.04.15
A new update has been released, you can view the full changes on our blog post.
https://sbox.game/news/update-26-04-15
Here's some highlights from the blog.
Developer Preview Closed
Thank you for everyone that has helped us during this period - the developer preview is now closed!
The developer preview has been invaluable to the development of s&box, putting the engine in front of it's core audience from day 1 - you guys telling us what you love and what is shit has turned the engine into what it is today.
We'll be open again on Steam on the 28th April for $20.
Revokes
Out of 800,000 people who joined the developer preview, **40,000 get to keep it **and the rest have been revoked.
Who got to keep it:
-
Developers who have published games people have played
-
Anyone who has purchased any cosmetics
-
Anyone who has played a good amount and actually opened the game this year
We're doing this in batches, making sure it's right, it might take a short while to complete.
UI Batching
I've merged the UI batcher, which means UI will render much much faster now.
You can expect major performance improvements in your user interfaces(which is almost every game) with some users reporting up to 54% more FPS while on the menu.
Previously we would render each panel individually as we traversed the DOM. The GPU would paint each individually which worked fine for a while. But as complexity grew, the number of individual draw that your GPU would execute would affect performances.
We can now, in the best case scenario, draw everything all at once.
Our discover page went down from 1080+ draw calls to only 5.
Keep Upright
We've added a parallel / upright joint, so you can keep objects upright reliably.
Changelog
🎁 Added
-
Added
UprightJoint, which constrains objects to remain upright, useful for characters, vehicles, and other physics objects that should resist tipping. Also has a parallel mode when targeting another body. -
Added on-demand navmesh tile generation API — new
NavMesh.DeferGeneration,NavMesh.RequestTileGeneration,NavMesh.RequestTilesGeneration,NavMesh.UnloadTile, andNavMesh.UnloadTilesAPIs for large open-world games that need to generate and unload navmesh tiles at runtime rather than all at once on load. -
Added a search bar to the main menu navbar for quickly finding games and content.
-
Added "Convert to Mesh" in the mapping editor — converts a placed model to an editable scene mesh, similar to Hammer's workflow.
-
Added
moviecommand support for recording Light Components — light brightness and colour changes are now captured in recordings.
🧼 Improved
-
Rewrote the UI renderer with a batching system that groups panels into a single draw call where possible, yielding massive performance improvements — up to ~4× faster in benchmarks (40fps → 150fps). Also introduces a new
Panel.Draw.XXAPI for custom panels to emit drawing commands directly. -
Improved ambient occlusion performance with various shader and sampling optimisations.
-
Improved hotspot tool in the mapping editor — now uses the active material, supports mirror horizontal/vertical, and adds a per-face apply button.
-
Improved prefab editor performance when handling large prefabs — faster diffing and reduced initial load times.
-
Improved serialization accuracy for prefab and scene files — positions, rotations, and transforms no longer silently drift between saves, eliminating unnecessary prefab instance noise and large git diffs. Switched to lossless
G9float format. -
Improved
WildcardMatchperformance by replacing expensive regex withMatchesSimpleExpression. -
Improved shadow mapper hot path by eliminating array,
IEnumerable, and LINQ allocations. -
Improved
SetObjectBoundswith minor overhead reductions. -
New s&box installs now default to MSAA 4× anti-aliasing on first launch.
-
"Make Editable Mesh" in the mapping editor is now undoable.
🪛 Fixed
-
Fixed a VRAM leak where shadow map textures were never returned to the pool when a
SceneLightwas destroyed — in scenes with many lights this would fill VRAM quickly. -
Fixed a transform equality regression where
Rotation.AlmostEqual's default threshold was too loose (~1.62°), causingSetLocalTransformto silently drop small updates and producing jittery camera movement. -
Fixed
Rotation.AlmostEqualincorrectly returningfalsefor two default (zero-length) quaternions. -
Fixed cascade shadow exclusion culling overculling objects at the edge of shadow cascade spheres.
-
Fixed managed textures (prefab-embedded textures) never being present on headless/dedicated servers, which caused missing icons for inventory items, health, ammo, etc.
-
Fixed
ScenePanelbeing completely reset on hotload — panels that manage their ownScenenow survive hotloads intact. -
Fixed the
TextEntrycaret becoming invisible after the move to command lists. -
Fixed a ~300ms stutter when first opening the settings panel.
-
Fixed
MaterialAccessorretaining stale material overrides after deserializing new data, causing phantom overrides to persist after prefab instance reverts. -
Fixed
PolygonMeshwriting world-space properties into JSON, which broke prefab diffing. -
Fixed blob IDs regenerating on every save, producing unnecessary git noise.
-
Fixed light probe regression caused by an incorrect call to a stubbed
RenderDevice->IsUsingGraphics()on headless servers. -
Fixed modeldoc wireframe rendering.
-
Fixed crash when accessing
MusicPlayer.Titlewith an invalid URL. -
Fixed assert triggered on
MusicPlayerdisposal. -
Fixed null
TargetComponentcrash in the Doo invoke block inspector. -
Fixed
SimplePickershowing cloud assets when searching in the "Local Assets" tab. -
Fixed package modal portal layout regression.
-
Fixed several Linux server path and library casing issues that prevented the dedicated server from starting.
-
Restored center pivot behaviour in object selection mode.
Комментарии 0
Гостевые никнеймы не подтверждают личность. Все комментарии проходят проверку владельцем сайта.
Обсуждение ещё не началось.