Update 26.03.11

🛠️Fixes, Optimizations, Mapping, Sandbox progress and more!

Rendering Optimizationsby Sam Pavlovic

We've made some rendering optimizations this week, Screen Space Reflections is using indirect dispatches now, the GPU is feeding it's own commands, if you have this component enabled in your scene and just have rough surfaces it should have functionally zero cost now.

In a fully reflected scene you can see good improvements as well, our benchmarks SSR is down about ~0.4ms on average, whereas depth of field is down about ~1ms.
11_08-51-CrazyAtlanticblackgoby.png 32.69 KB
We'll keep on iterating on this to get frame time down as much as possible, there's a lot of obvious things to do to make things faster and more GPU driven.

Ugc Improvementsby devultj

As part of adding spawnlists to sandbox, we needed to add some more features to our Storage/Ugc system.

You can now query for authors, specific workshop packages, and reupload workshop items instead of only publishing new ones.

Crashesby Lorenz

Last week we reported that our crash rates are down.
That was fake news, we were tricked by our backend which wasn't recording the stats correctly. Turns out crashes are even slightly up, hovering around 4%, which is obviously too high.
11_08-34-AstonishingIrishterrier.png 19.75 KB

We dropped a new batch of crash fixes this week that should bring that number down and will continue looking into it. Stability & Performance remain a primary focus while gearing up for the release.

You can hold us accountable and track our progress via https://sbox.game/metrics/stability

Sandbox: Spawnlistsby devultj

We've added spawnlists. They're similar to how they were in Garry's Mod. But you're now able to publish them and share them on the workshop. Works with cloud stuff, local stuff, dupes, mounts, anything.
sbox-dev_bjJ9trIbop.mp4 18.12 MB

Vertex Paint Multi-Blendby Layla

The vertex paint tool can now blend multiple layers together instead of painting a single channel at a time.
sbox-dev_Fubhg1TmC7.mp4 16.27 MB

NavMesh Boundsby Lorenz

Sometimes you may not want the navmesh to generate for your entire scene. Maybe you have a large 3D skybox, or maybe you don't want navmesh on rooftops.

You can now manually specify the bounds within which the navmesh should generate.
11_13-08-HungryAsianpiedstarling.mp4 11.5 MB


Sandbox: Grid Snappingby devultj

This week, we've added grid snapping to Sandbox. This isn't our end goal. We want to be able to define sockets on models, say a wheel, say a chassis, where you'd be able to weld stuff to those obvious sockets really easily.
sbox-dev_hZhbbM3tgY.mp4 30.65 MB

Sandbox: Material Editingby devultj

Using the context menu, you can now override materials, including material groups.
sbox-dev_uXNE1vS3NY.jpg 315.19 KB

Underwearby Carson

No more flashbang nude humans, they've all been given undies and told to never dress inappropriately again.
image.png 523.17 KB

Allocation Reductions IIby Lorenz

Continuing from last week's allocation work, we've kept chipping away at GC pressure.
In some places this helped a lot with performance, for example, Cloning Prefabs & GameObjects is now  2 times faster.
06_15-50-OptimalDotterel.png 51.8 KB

We've exhausted most of the obvious optimization potential now, but we'll continue addressing any unnecessary allocations we come across going forward.

Resource Leaksby Lorenz

We also took another pass at native resource leaks, particularly around shutdown. After some previous attempts we were still leaking native resources, and we've fixed a lot of them. Tracking these down also surfaced a handful of general runtime leaks, which we fixed along the way.
Hopefully, this will also reduce the large amount shutdown crashes most of us have been experiencing.

We also added a managed leak tracker that reports and force-destroys leaked resources at shutdown, enable resource_leak_tracking for full allocation callstacks and report them to us.
[...]
NativeResourceCache: Resource still alive during shutown,
                     which can indicate a leak: Material [10022664158783386085] model (model)
                     will be force destroyed.
NativeResourceCache: Allocation callstack:
   at Sandbox.Material.FromNative(IMaterial native, String name)
   at Sandbox.Material.Create(String materialName, String shader, Boolean anonymous)
   at MaterialLoader..cctor()
   at System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(RuntimeTypeHandle type)
   at Sandbox.ReflectionUtility.RunAllStaticConstructors(Assembly asm)
   at Sandbox.Mounting.Directory.LoadAssemblies()
   at Sandbox.Engine.Bootstrap.PreInit(CMaterialSystem2AppSystemDict appDict)
   at Sandbox.AppSystem.InitGame(AppSystemCreateInfo createInfo, String commandLine)
   at Sandbox.GameAppSystem.Init()
   at Sandbox.AppSystem.Run()
   at Sandbox.Launcher.Main()
   at Sandbox.Program.Launch()
   at Sandbox.Program.Main()
NativeResourceCache: Total leaks: 3

Sleep Physics Eventby Layla

You can now get an event when a rigidbody goes to sleep.
sbox-dev_goQl1soyPP.mp4 17.96 MB

Sandbox: Post-Processby bakscratch

We've added the ability to configure post-processing effects from the spawn menu. You can also submit your own with code/assets on the workshop.

sbox.2026.03.09.16.33.53.mp4 76.75 MB

Summaryby devultj

This is a less glamorous blog, but a ton of small fixes and optimizations.. We launched clutter last week, as well as our new menu. Both have been well received, and we're working on improving new features over time.

We've been seeing a steady uplift in players over the last few months, it's been cool to see., considering we're barely marketing the game.
image.png 38.02 KB
We've been giving Sandbox Game more and more love, and as we're gearing up for release, we're treating it as our flagship game. Try it out! Let us know what you'd like to see us add.