5,052 Commits over 792 Days - 0.27cph!
Reading is now down 200~ milliseconds
- Use immediate reading mode
- Only write symbols if we have them
Introduce a cache for BaseNetworkable inherited types. Slighly speeds up post processing (300 ms or so)
Remove LINQ usage on ILPostProcessor hook hot loops
ddraw_server_wrappings -> main
Add text,box,capsule server bindings
Add DDraw BasePlayer overrides to the Server (this lets you call DDraw.Line and pass in a player to forward the console command to)
Add DDraw.BroadcastLine, DDraw.BroadcastSphere etc, this lets us forward the ddraw to all players automatically without specifing a player.
allocation_reductions -> main
allocation_reductions -> main
Preset list capacity on active renderer effects (stops list reallocations at runtime)
Stop UI_Hero_Infobox keeping running its update method for no reason when the menu is hidden.
Restore the update loop when menu is open again.
Saves 40 bytes a frame
Stop PostProcessingLayer stealing a whole 1 KB/s
This was due to profiling using a formatted string, a very minor mistake that we paid in allocations on every client.
- Profiling was using a formatted string in a hot loop
- Hide this behind convar: graphics.detailed_postprocessing_profiling
Fix DLSS breaking with GetTemporary.
Pass a texture descriptor struct to ask for a random write texture.
Dont allocate new RenderTextures every frame in PsotProcessLayer.RenderScale()
Lets use RenderTexture.GetTemporary instead
Savings in render loop (roughly):
- AsyncTextureLoad.Texture (.4 ms)
- Texture2D.LoadRawTextureData (.1 ms)
Save 40 bytes a frame in UIChat.
'FindWith' was allocating a lambda, replace with a simple loop
Stop HurtOverlay allocating 36 bytes a frame.
Was boxing a float into Mathf.Max() with a single value?
unskinned_windmill -> main
LOD improvements (match sail and vain)
Swapped windmills from skinned mesh renderers to regular mesh renderers.
With 50 windmills (high end, all around the same lod):
- saving .15 on UpdateAllSkinnedMeshes
- saving ,15 on MeshSkinning.Update
- Saving .12 on Animators.Update
- Saving .10 on DirectionUpdateAnimationBegin/End
- saving 0.07 on camera rendering
main -> unskinned_windmill
scientist_boat_fixes -> naval_update
Up scientist boat count from 12 to 36
(might scale with server pop in the future)
Dont global breadcast deep sea boat spawning - should prevent weird issues... scientists being without the boat?
boat_fixes -> naval_update
Potential fix for IsDriverDead
- Don't rely on a reference to dead driver (work with nulls)
- Gate checks between has spawned
Prevent on killed from firing an nre during server restarts
Dont save boat ai
Try to fix black bars on RHIB (that can show up at certain angles)
mounted_turret_reloading -> naval_update
naval_update -> mounted_turret_reloading
Fix some more dodgy angles on the front seat
- Swap front turret to correct mount pose (standing)
- Fixed problems with front turret being unable to progress its reload bar properly
- Adjust eye position on front turret
- Remove logs
Fixed AI turrets not shooting at the players (incorrect dot calculation)
Better driver caching, prevents a random other npc on the boat from being marked as the driver
Fixed ai mounted weapon controller so it points at the right location again
prevent rear turret clipping checks from failing right at the corners
- AI's can now reload turrets if they are empty
- Extra profiling in a bunch of turret methods
- Run at randomised time to keep the thread clear
Re-add support for world and local space inputs (mouse delta vs aim angles)
Fixes to ensure the server representation is updated properly
Rewrote cmounted turret client prediction
- Correct reload time estimations (across the net)
- Better client predicting aim lerps
- Fix powerbar sticking
Simple reloading (just ignores the reload bar for now)
Lerp client turret rotation when predicting (since we dont have snapshots to smooth it out)
PTBoat script handles loot spawning rather than the spawner itself
This means console command spawned boats will spawn their loot properly
pt_boat_gameplay_pass -> naval_update
naval_update -> pt_boat_gameplay_pass
Add client prediction to ServersideMountedWeapon aiming
This means players can now move the turret around indepdently of the server
Do reconcilliation on server receive state (if out of date enough)
This is now just a checkbox on any ServersideMountedWeapon.
Still requires some further improvements, but will work for now
Also added seat caching to Mounted Weapons