4,430 Commits over 731 Days - 0.25cph!
scientist_boat_ai -> naval_update
Boat AI will automatically turn on the lights if its nighttime, keeps them off if its day
Better lights on the RHIB
Use raycasts for avoidance instead. Spherecasts are just too unstable
When boat dies kill all remaining scientist on board
scientist_boat_ai -> naval_update
Pass mount point for spawning, dont rely on position
scientist_boat_ai -> naval_update
Stop info box breaking with 'null action'
Dont ram a player if they are way higher up on an island
Stop group members including themselves in the pursuit notifications
This prevents an infinite loop when pursuing a player
Better scientist mount position spawning code
Compile fixes
Ensure boats have minimum: driver and turrets
Then at least 1 other
Then we coin flip each subsequent scientist
Spawn rhibs facing towards the deep sea centre
naval_update -> pt_boat_2
unskinned_windmill -> main
main -> naval_update (BREAKING)
unskinned_windmill -> main
Fixed more rotational weirdness
Use a guide prefab so you can see the sails of the Windmill when you place it down
Start the sails pointing towards the player rather than off to the left everytime
https://files.facepunch.com/ianhenderson/1b1311b1/Unity_4IqvKXIbrW.mp4
main -> unskinned_windmill
syncvar_Improvements_2 -> main
syncvar_improvements_2 -> main
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