13,876 Commits over 1,552 Days - 0.37cph!
Remove Log.Info from SceneCubemap
Only do SceneCubemap.RenderDirty() when it actually updates rather than every frame
Only clear up light count instead of also envmap count on AllocateLights()
Clear interpolation properly and don't apply new interpolation if transform update received over network with clear interpolation flag
Another minor fix
SceneStats: include DynamicSceneObject render stats, lights/shadow stats
Remove Preferences.VoipVolume from voice component, handled through the mixer now
Add SoundHandle.Loopback, use voice_loopback to determine (for local voice)
Bounce talking party member
Mic icon when chatting
Switch to ServerGarbageCollection (we'll want to benchmark this when we have benchmarks)
Multiple threads to handle garbage collection, utilizing all available CPU cores.
Better performance in multi-core environments.
Reduced latency due to parallel processing.
Add Sound.UncompressVoiceData
Make Friend comparable
Basic party voice chat
Make voip_volume a convar so it gets saved
Use VoipVolume setting as a multiplier for voice component volume
Change Voice.ShouldExclude to Voice.ExcludeFilter to provide the connection filter list at once, this is easier to implement
Add ShouldExclude override to voice component to allow team voice chat etc
Only set console widget instance for main editor window
Report GpuFrametime in PerformanceStats
Fix restitution not combining
Flush network updates before send RPCs (#1594)
* Flush network updates before send RPCs
* Keep track of potential pending network updates to flush for RPCs
* Make sure to unregister for update after sending
* Add some documentation
Don't keep sounds that failed to load around trying to mix forever (matches how old vmix mixer handles it) Fixes #1597
Add MapInstance.Bounds to get world bounds of the map
PartyRoom - run tick at set interval, cache owner
Add Panel.ToggleClass
Remove ButtonGroupConstructor
Can change party title, capacity, public state
sound-in, sound-out will target UI mixer if there is one (resolves #5583)
Use a bone body cache in model physics, spending too much time asking native for the pairing every frame
Hightlight.RenderEffect: Use Scene.GetAllComponents instead of iterating every gameobject ( closes #1597 )
Fix enter/leave not updating chat box
Add party_id to rich presence
Add Connection.PartyId
Add more CompileCodeArchive tests
Codegen should shit itself if you don't use a string literal from Cloud.Asset() methods
Terrain: Add height blend settings, add per material height and normal strength, various other polishing
Hide GameResource.ResourceVersion
TerrainMaterialList: Allow drops properly
Editor post processing toggle closes #1587
Colour grading changes, tonemapping in its own component (means color grading isn't 1 pass, but that's easier to do later compared to splitting up components)
Co-authored-by: Matt Stevens <matt@mattstevens.co.uk>
Fix buffer overrun (80% confidence)
Clothing LODs
Bandana, sleeveless jacket and fingerless gloves LODs
Add vertex bevel operation https://files.facepunch.com/layla/1b0311b1/sbox-dev_qwSFxWpceA.mp4
Fix model physics not setting gameobject tags
Hammer: Option for placing objects using bounds bottom as origin for when you want to disable it
SteamLobbySocket caches owner, calling SteamMatchmaking.GetLobbyOwner each tick had significant impact
Add SkinnedModelRenderer.UseAnimGraph, this will frequently be used to turn off animations on ragdolls without going through sceneobject
Fix model physics T posing for a frame on enabled and switching animgraph off, allows for smooth ragdoll transitions https://files.facepunch.com/layla/1b3011b1/sbox_K1lOWP0iir.mp4
FPArms: added basic throwable animations
ResourcesPage path widget directory is relative to the Assets directory
Expose Terrain size properties to settings sheet
Changed GameObject prefab deserialization to return promised GameResource, instead of failing and throwing, fixes a race condition where prefab resource hasn't loaded in time
First person arms: various updates to prefabs + new non-weapon_root-centric shared animations (for grenades)
Edge merge now supports 2 open edges from different meshes, meshes will be merged into one https://files.facepunch.com/layla/1b2811b1/sbox-dev_4CCaZjcxH9.mp4
First person arms: bring back the hold bones for non-weapon_root-centric setups
Add mesh merging (only 2 open edges from the same mesh for now)
New TerrainMaterial & TerrainStorage resources, rework creation of terrain, component custom editor, simple height blends and various QOL improvements
New TerrainMaterial asset, can be used on multiple terrains, copied from other projects
* Replaces TerrainData.TerrainLayer which used manual packed vtex files
* Accepts source images for: albedo, normal, rough, ao, height
* Compiles into 2 generated vtex_c
* Contains other properties for metalness, uv scale, uv rotation
* AssetPreview is used for editor UX too, instead of hacky shit before
* TerrainMaterialEditor auto populates _normal _rough etc. properties from albedo
* Drag drop TerrainMaterial assets into Terrain component
* Open for expansion to grass/clutter properties
TerrainStorage
* Replaces TerrainData & TerrainDataFile
* Make use of IJsonConvert to avoid all the crazy crap I was doing before
* Drag drop TerrainStorage asset into scene
* JsonUpgrader for TerrainData -> TerrainStorage, resmaples ^2+1 heightmaps to just ^2
Terrain component editor:
* Support creating or linking TerrainStorage if none is attached
* Split settings into its own tab
* Add heightmap resampling for non pow2 heightmaps
* Add import splatmap
* Terrain creation no longer forced through GameObject menu, remove Hide attribute from Terrain component.
* Remove special terrain save logic from SceneEditorSession, use scene.saved editor event
* Texture streaming works properly
* Basic height blend
* Disable specular on terrain
Reverse Scene isEditor constructor so GameObjectSystem constructor is aware of editor scenes
▋▆█▄▅▍▋ ▉▆█▉▄▌▌▌▅ ▍▉▊▉▉▅ ▍▊ ▋▌█▍▆▆▉.▆▉▆▌█▋ ▍▌▊▄ ▄▋█▉▋▊▊ ▅▋▋▍ ▉▆▄▊▇▌▇ ▇▉▋▇
▄▌-▇█▉▄█▇▄▊-▄█: █▇█▄▄ ▅▋▌▉ <█▉▊▇▆.▅▄▍▊@▉▄▇▋▋▉▆▆▄▊▋▇▋▇▉▋.▊▇▌>