252,896 Commits over 3,990 Days - 2.64cph!
First pass at drawing curves for each track
https://files.facepunch.com/ziks/2025-01-26/sbox-dev_L4KcsdWKxm.mp4
Fix api download exception
Fix exception when couldn't parse resource as json
Leaderboard backup, run #
17141
Battering ram can't take collision damage from the head
Catapult dry fire plays the smoke effect
Horse and BaseAnimalRagdoll NRE fix
Untow when towing horse starts ragdolling
Can't tow ragdolling horse
Siege weapons handbrake
Tweaked wheel colliders of all siege weapons
Increased battering ram weight
Increased horse forces when going up slope and towing
Added clothing items to player update loadout
Make agents follow gameobject position while in editor
Improve previous fix for NavAgent position glitching
Tweaked catapult physics, less wobbly, more reliable on uneven terrain
Tweaked the interaction colliders so you don't push it by accident when trying to reload or fire
Make it easy to retarget a .movie in a scene
https://files.facepunch.com/ziks/2025-01-25/sbox-dev_OOMXIyOyis.mp4
Fix an issue where manually setting a NavMeshAgents position would result in race conditions at high framerates
For example, this manifested when using CreateBoneObjects on a SkinnedModelRenderer owned by the agent's GameObject.
Basic demo of a .movie resource
Fixed issues with speed calculation when wearing horse armor
Added 'autopilot' editor convar to make horses move by themselves
Fixed StateLayerController never cancelling its FadeOutLayer invokes, causing client performance issue with moving horses
Siege weapon item descriptions
Catapult default pose set to idle, fixes the noticeable change when spawning them
Galloping speed bonus when on road
Revert "Bindless lightmaps/Lightmap Combo Removal (#1765)"
This reverts commit 1fdcdeab689851f1093853faa8d8b4d6041d63f7.
# Conflicts:
# game/addons/base/Assets/postprocess/ObjectHighlight/objecthighlight.shader_c
# game/addons/base/Assets/shaders/atmosphere_sky.shader_c
# game/addons/base/Assets/shaders/blendable.shader_c
# game/addons/base/Assets/shaders/foliage.shader_c
# game/addons/base/Assets/shaders/fur.shader_c
# game/addons/base/Assets/shaders/gizmo/gizmo_grid.shader_c
# game/addons/base/Assets/shaders/gizmo/gizmo_line.shader_c
# game/addons/base/Assets/shaders/glass.shader_c
# game/addons/base/Assets/shaders/line.shader_c
# game/addons/base/Assets/shaders/lpv_debug.shader_c
# game/addons/base/Assets/shaders/sprite.shader_c
# game/addons/base/Assets/shaders/terrain.shader_c
# game/addons/base/Assets/shaders/terrain_brush.shader_c
# game/addons/base/Assets/shaders/terrain_preview.shader_c
# game/addons/base/Assets/shaders/tiled_light_culling_cs.shader_c
# game/addons/base/Assets/shaders/ui_backdropfilter.shader_c
# game/addons/base/Assets/shaders/ui_basic.shader_c
# game/addons/base/Assets/shaders/ui_borderwrap.shader_c
# game/addons/base/Assets/shaders/ui_cssbox.shader_c
# game/addons/base/Assets/shaders/ui_cssshadow.shader_c
# game/addons/base/Assets/shaders/ui_dropshadow.shader_c
# game/addons/base/Assets/shaders/ui_filter.shader_c
# game/addons/base/Assets/shaders/ui_text.shader_c
# game/addons/base/Assets/shaders/vertex_color.shader_c
# game/addons/base/Assets/shaders/water.shader_c
# game/core/shaders/black_unlit.shader_c
# game/core/shaders/cables.shader_c
# game/core/shaders/complex.shader_c
# game/core/shaders/complex_reflections.shader_c
# game/core/shaders/cs_volumetric_fog.shader_c
# game/core/shaders/debug_wireframe_2d.shader_c
# game/core/shaders/decal.shader_c
# game/core/shaders/depth_only.shader_c
# game/core/shaders/eyeball.shader_c
# game/core/shaders/generic.shader_c
# game/core/shaders/hair.shader_c
# game/core/shaders/post_process.shader_c
# game/core/shaders/projected_decals.shader_c
# game/core/shaders/projected_sheet_decals.shader_c
# game/core/shaders/simple.shader_c
# game/core/shaders/skin.shader_c
# game/core/shaders/sky.shader_c
# game/core/shaders/spritecard.shader_c
# game/core/shaders/static_overlay.shader_c
# game/core/shaders/tools_shading_complexity.shader_c
# game/core/shaders/tools_solid.shader_c
# game/core/shaders/tools_visualize_collision_mesh.shader_c
# game/core/shaders/tools_wireframe.shader_c
# game/core/shaders/ui.shader_c
# game/core/shaders/visualize_cloth.shader_c
# game/core/shaders/visualize_nav.shader_c
# game/core/shaders/visualize_physics.shader_c
# game/core/shaders/vr_tools_shading_complexity.shader_c
Build shaders
If we have any command line arguments from the Steam client (sbox.game -rungame), parse it via ISteamApps.GetLaunchCommandLine
Expose Application.ShutdownUnitTest()
Throws if not currently running a unit test
Make sure it doesn't run in headless (errors out on dedicated server)
Some tidy up - data table ReadFilter instead of other method, reset delta snapshot cache on owner change and after network refresh is received
Add Simulate Packet Loss alongside Simulate Lag in editor network options - it's working for simulating outgoing lost packets from the host right now
VR: Remove obsolete controller checking bools that nobody's using
VR: Add IsHandTracked bool to VRController, update fpxr to 5cf7ff24f5b157166102c8e4898bb84b4accb952
VR: Add MotionRange to VRController.GetJoints, update fpxr to 8822f0461709fbd2eda8fe004d51af79d47e6aa9
e.g.
```csharp
Input.VR.LeftHand.GetJoints( MotionRange.Hand ); // default
Input.VR.LeftHand.GetJoints( MotionRange.Controller ); // tries to wrap hands around the controller
```
VR: Better controller interactions in menu, move panel to a more comfortable height
Reapply "Bindless lightmaps/Lightmap Combo Removal (#1765)"
This reverts commit de7b93d17c7a036a567347794ca51163132ef42a.
Reapply BATCH_FLAGS_CONTROLLING_COMBO_CHANGES for legacy shaders, accidentally removed binding lightmap for legacy shaders
Initialize vertex output of lightmap uv when lightmapping is disabled
Update drivers with bindless lightmaps & amd fix
Humans/animgraph: added Sprint_NW & Sprint_NE
Don't accept "game" command while Application.IsEditor
Compute Shader Skinning (#1786)
Calculate skinning in compute shader instead of vertex shader
Compile shaders
Can now right click on a Shader to "Create Material" from it.
https://files.facepunch.com/CarsonKompon/2025/January/24_17-29-EmptyPony.png
Fix typo in MaterialMenu
add octohedral_encoding.fxc include
Forward+ Decals (#1606)
GPU driven tile culled decals that modify their surfaces PBR properties.
No additional draw calls for any decals.
* PBR modification: Albedo, Normal, Roughness, Metal, AO
* Works with transparent surfaces as it's not projecting based on depth
* Color Tinting + Opacity
* Angle attenuation
* Automatic sort order + override
* Future compataibility with extra data flags to add 100 more things
* Decal::Apply( ... ) API
Make shaders compile with Vulkan 1.2, allows for wave ops instructions used in new SSR, etc
Microsoft/DirectXShaderCompiler/wiki/Wave-Intrinsics
Bitch when variables are uninitialized in HLSL, can cause all sorts of weird undefined behavior in certain drivers
Fix warnings on all shaders, remove D_EYE_WHITE (bullshit?)
Avoid sampling diffuse cubemap for fog at lod0 to not have fireflies like in Eagle One Rain Demo
Disable compute skinning temporarily while descriptor set crash is being debugged
Mark used resources in buffered descriptor set a few frames in advance, they're being deleted while still used
Texture Generators (#1779)
* Add ResourceGenerator
* Add ResourceGeneratorContext
* Add TextureGenerator
* Add Bitmap
* Add Sandbox.Utility.ForAsync
* Add IPopupEditor<T>, EditorUtility.OpenControlSheet looks for this interface when creating a popup
* Rename ControlSheetPopup to PopupEditor,
* Add Color.Rgba16 (half based color)
* Managed can override compiling of any resource
* Add Texture.GetBitmap
* Add transient filesystem in editor
* Add Texture.IsError
* Add Margin.IsNearlyZero
* Fix asset picker ignoring AdditionalTypes
* Add Widget.GetDescendants<T>
* Add MainThread.Wait()
* Expose TypeDescription.Order
Fix Json exception when compiling texture
Fix NRE in CreateBoneObjects
Add VTexWriter - clean up the texture compile process
In FloatBitMap_t::Pixel(, clamp the sample
Allow non power of 2 textures in native compiletexture
Update stb_dxt.h
Add Bitmap.IsOpaque()
Don't use stb for dx5 it's shit
Automatically work out texture compression format
Merge branch 'master' into json-free-clone2
Add VTexWriter - clean up the texture compile process
In FloatBitMap_t::Pixel(, clamp the sample
Allow non power of 2 textures in native compiletexture
Update stb_dxt.h
Add Bitmap.IsOpaque()
Don't use stb for dx5 it's shit
Automatically work out texture compression format
Firing the catapult will block the push interaction for 2 seconds
Can't feed swimming horses
GetCurrentIngredientProgressAmount NRE fix for client ahead of the server
Fix Json exception when compiling texture
Fix NRE in CreateBoneObjects
Don't attempt to auto equip bags and shields when taking from weapon racks
Texture Generators (#1779)
* Add ResourceGenerator
* Add ResourceGeneratorContext
* Add TextureGenerator
* Add Bitmap
* Add Sandbox.Utility.ForAsync
* Add IPopupEditor<T>, EditorUtility.OpenControlSheet looks for this interface when creating a popup
* Rename ControlSheetPopup to PopupEditor,
* Add Color.Rgba16 (half based color)
* Managed can override compiling of any resource
* Add Texture.GetBitmap
* Add transient filesystem in editor
* Add Texture.IsError
* Add Margin.IsNearlyZero
* Fix asset picker ignoring AdditionalTypes
* Add Widget.GetDescendants<T>
* Add MainThread.Wait()
* Expose TypeDescription.Order
Leaderboard backup, run #
17117
Add TextureGenerator boilerplate
TextureControlWidget poc
Fix NRE in SpriteRenderer when texture is null
TextureControlWidget creates a child ResourceControlWidget instead of trying to be one
Draw texture preview
Standardize internal way to async replace placeholder textures
Add Sandbox.Utility.ForAsync
TextureGenerators are async
Add IPopupEditor<T>, EditorUtility.OpenControlSheet looks for this interface when creating a popup
Rename ControlSheetPopup to PopupEditor, make more modular so we can override important bits
Add TextureEditorPopup
Clean up TextureControlWidget
Add Color.Rgba16 (half based color)
Add Bitmap class
More bitmap stuff
Bitmap draw and bitmap pen
Bitmap drawing fixes
Bitmap clone, IDisposable, IValid
Wrap IResourceCompilerContext
Find "$compiler" in resource json and launch compiler
Add more ResourceCompiler functionality
Managed can override compiling of any resource
Add Texture.GetBitmap
Simple texture compiling from managed
Add Bitmap.ToFormat( ImageFormat format )
Add TextureBuilder.WithMips() - auto mip count
Bitmap.ToTexture supports mipmaps
ResourceCompiler.Compile is async (but we have to run it syncronously)
ResourceCompiler,. ResourceCompilerContext are in Engine
Add transient filesystem
Add Texture.IsError
Compile embedded textures to transient folder
Double height texturcontrolwidget
Remove debug
Add Bitmap.DrawText
Clean up
Lock FontManager cache when accessing
Refactor
Generated resources get weak cached in memory for re-use
Cleanup floatbitmap, add LoadFromInMemoryTGA
Load Bitmap.CreateFromBytes supports tga
Better tooltips on TextureControlWidget
Don't support mipmaps if npot (until we figure out how/why)
Create Bitmap.Filters.cs
Bitmap supports psd loading
Fix a bunch of bitmap filters
Add Margin.IsNearlyZero
Fix blur/sharpen thinking the edge of the bitmap is the end
Control widget tweaks
Pass ResourceCompiler in ResourceGenerator options, allowing us to add references
Fix asset picker ignoring AdditionalTypes
Move ColorTextureGenerator
Move RandomTextureGenerator to engine, allow normals creation
Add Widget.GetDescendants<T>
Expose OpenColorPopup on ColorControlWidget
Add [TextureImagePath] - allows selecting an image or a texture
Don't cache resource if hash changed while generating
Expose CreateEmbeddedResource on TextureResource
Bitmap.Rotate resizes the texture
TextureControlWidget has shortcut buttons for selecting a file, or color
Add bitmap SVG loader
Return white for default colors, instead of transparent
Add MainThread.Wait()
Add EngineFileSystem.Mounted (!)
Create TextTextureGenerator.cs
Create RadialGradientTextureGenerator.cs
Create LinearGradientTextureGenerator.cs
Create ImageFileTextureGenerator.cs
Expose Svg texture generator
Expose TypeDescription.Order
TextTextureGenerator tweaks
Fix warnings and errors
Use classname when setting ResourceGenerator
Fix bitmap.clear not using floating point color
Fix NRE in ImageFileTextureGenerator
Mark used resources in buffered descriptor set a few frames in advance, they're being deleted while still used
Shield cannot be raised if the player has less than 1s of time in the progress bar
Hammer is no longer usable with shield (was a bit of a downgrade since you had to unequip the shield to access upgrade options)
Hopefully fixed recurring issue where the player would be stuck in blocking state if their shield breaks while it is raised
Disable compute skinning temporarily while descriptor set crash is being debugged
Recoil when a player sucessfully blocks a hit is now applied to the attacker, not the defender, only applied for melee
Left in the screenshake for local player on blocking a hit as it looks good