This month brings easier game discovery, better physgun physics, cloud entities, duplicator, and explosions! Big performance boosts, fewer crashes, and some news on exporting games.
Sprite Resources
Live Lobbies
Editor: Managed screen recorder
GpuBuffer.GetDataAsync
Texture.GetPixelsAsync
Editor: `SceneUtility.RunInBatchGroup` helper
Rendering: Sphere bound check for frustum culling
GameObject: `RunEvent<T>` method
Editor: Managed screenshot service
Debug: Overlay frustum drawing
UI: Multi-edit support for dropdown controls
Camera: Frustum API using screen rect
Utilities: LZ4 compression/decompression
UI: Infinite scroll for package lists
Profiler: Auto-upload for captures
Editor: Added ListHeader to Asset Browser/Cloud Browser
Editor: Added `BaseItemWidget.SelectItems` to select multiple items
.webp files are now recognized as an Image asset type
Editor: Movie Maker video file export
Physics: Ball joint motor
Physics: Control joint
ModelPhysics.Mass/MassCenter
Pause Screen: change map modal
Pause Screen: player list modal
Steam.FilterText methods for censoring text based on their Steam settings
Render Settings for texture detail, post processing, volumetric fog
Editor: Can now pin camera previews
Rendering: Default text rendering filter mode applied
Camera: Transform updated before frustum queries
Physics: Parallel joint and ghost collision handling
Rendering: Cubemap fog now respects rotation
Rendering: Standardized sprite roll rotation
UI: Games page shows up to 200 items (was 60)
Diagnostics: Exception reporting buckets cleaner
Animation: Update optimizations
GameObject: Clone performance improvements
UI: Create Game dialog usability improvements
Memory: Use CUtlVector for safer result handling
Serialization: Component interface serialization support
Audio: Soundscape box/sphere priority handling
Tools: Visualization modes always supported
Hashing: Migrated FastHash to xxh3
Hashing: Native CRC32 replaced with xxhash3
Optimization: AnimationUpdate hotpath, reduced frame time spend on animation (~10% improvement)
Optimization: Gameobject.Clone
Framework: Updated Facepunch.AssemblySchema (fixes protected members being stripped)
GraphView: Dragging a node or selection box to the edge of the display now pans in the graph
ShaderGraph: UI Group / Subgroup names now show a dropdown choice with other values used for that property in other nodes
Editor: "Create Child" now creates a GameObject under all selected GameObjects (instead of just the first)
Editor: Renaming GameObjects through the TreeView is now undoable
Editor: "Paste as Child" will paste under each selected GameObject (instead of just the first)
Editor: Dragging a GameObjectNode on top of itself no longer plays the error sound
Editor: Renaming multiple GameObjects at once will make each name unique if under the same parent GameObject
Don't init GameObjectSystems on PrefabScenes
Maps now default to using Sandbox instead of Walker
Editor Cloud auto-cleanup
Resolution scaling for screenspace reflections
Failure to launch the game on Windows 10 LTSC because of forced on CET
Crash trying to render disposed textures
Crash in `ToolFramework2->Spin`
Crash in `CreateRenderMesh` with certain names
Crash when selecting maps in Asset Browser
Crash when hotloading after closing Hammer
Low resolution textures after seeing a planar reflection
Memory leak on editor and dedicated server from metrics
Navigation Tool: Overlay deletion when not enabled
Navigation: Navlink edge cases & NREs when disabling the link
Physics: Mass overrides not applied correctly to body parts
Resources: Type cache not clearing in resource system
Hotloading: Issues with ConcurrentDictionary and keyed collections
Editor: Startup reliability improvements
Editor: Movie import menu breaking after repeated use
Compiler: File saving during compilation race condition
Rendering: Depth-aware filter regression (borders)
Editor: Selection/undo inconsistencies
Editor: Overreaching custom editor logic affecting widgets
UI: Interface control widget taking unintended priority
Prefabs: Duplicate ID warnings for broken/unloaded references
Prefabs: ApplyGameObjectChangesToPrefab for hierarchies with "added prefab instances"
Rendering: Z-fighting on highlight component inner color
ShaderGraph: Surface preview errors
Video Recording: Cursor flipped
Video: FFmpeg deprecated pixel format warning
Video: VideoPlayer Duration returning 0 for some files
UI: `Package.VideoThumb` not being set
UI: Unnecessary stylesheet lookups on panel creation
Editor: MovieMaker serialization errors
ShaderGraph: Numbers can be used in parameter names without them getting cleaned out
Editor: Eye Dropper Tool can now find disabled Components
Editor: ListControlWidget now accepts a multi-select drag containing disabled Components
Editor: Fixed `GameObject.MakeNameUnique()` logic
Editor: Cloud Browser no longer loads more assets when scrolling to the bottom of the "Installed" section
Editor: Asset Browser Flat View no longer allows you to accidentally drag files up into the root folder
Editor: "Delete File" prompt no longer shows incorrect file extension for certain asset types
Editor: Block tool having incorrect tangents
Capsule class does not want a Vector3Converter
Black in fullbright toolvis mode when using metallness
Regression on bloom where bloom-only layer being composited with only mip 0
NRE when starting lobby on an unpublished project
don't base ui skew on window size
Fix vignette on Gaussian Blur Downsample
Fix Mipmaps for Decals
Fix cloud cosmetics not appearing in game
Launch options: editor is now a seperate steam app
Unused Thickness property on Surfaces
Unused texture filtering user config
Various quality settings on post processing components, these are now user convars
Many third party libraries that were unused or barely used
Looking forward to updates on the royalty free exports. My workplace uses Unity to build training software and would be interested in a .NET compatible engine like s&box, especially with all the Unity inspirations that are clear in your editor.
Resolving half of all crashes is either phenomenal, or "oops that was an embarrassing typo" type embarrassing. Sounds like you're getting a good system in place to detect and resolve crash bugs.
You should reconsider the way VR mode is launched, or at least add some form of override (such as Steam's launch menu) to force non-VR mode. I don't like it when games autodetect like that. I personally keep my VR headset connected since it's a pain to get around to the back of my PC to unplug and plug its multiple plugs. There is a breakaway connector (which I disconnect instead when needed for this sort of thing) but it's not really designed for use in this way and it's still a pain to fish it out of my rat's nest of cables behind my PC. It would be nice if I could just tell Steam to launch a non-VR override every time and only switch it up if I feel like VR.
Looking forward to updates on the royalty free exports. My workplace uses Unity to build training software and would be interested in a .NET compatible engine like s&box, especially with all the Unity inspirations that are clear in your editor.
Resolving half of all crashes is either phenomenal, or "oops that was an embarrassing typo" type embarrassing. Sounds like you're getting a good system in place to detect and resolve crash bugs.
You should reconsider the way VR mode is launched, or at least add some form of override (such as Steam's launch menu) to force non-VR mode. I don't like it when games autodetect like that. I personally keep my VR headset connected since it's a pain to get around to the back of my PC to unplug and plug its multiple plugs. There is a breakaway connector (which I disconnect instead when needed for this sort of thing) but it's not really designed for use in this way and it's still a pain to fish it out of my rat's nest of cables behind my PC. It would be nice if I could just tell Steam to launch a non-VR override every time and only switch it up if I feel like VR.