156,810 Commits over 4,566 Days - 1.43cph!
Stop water purifier sending two unchanged network updates per boil tick
30 B/s~ per nearby player
Dont send environment rainGraceStartTicks (only used on the server)
Sends every 5 seconds.
54 → 44 B per update, so saves 10 B~ every per player every 5s
Door.SetOpen no longer sends a full network update when the door is already in the requested state (door closers re-close shut doors 3 s after every open/close cycle)
Saves ~76 B per nearby player per call
merge from main -> cache_entity_links
Only send search light network updates when aim/flags change rather than per tick when mounted
▄ ▉▄▉▆▄ ▇▋▍▄ ▄▅▇▆▊▍█▅▄▌█▋█▋▆▆▍▄▌▅▍▌█▉▋▌▍▉
█▆▇▇▌▅ ▌▆▌▊ ▇█▋▋▍▇▄▉▄█▇▉▇█▅▉▄█▊▇▊▉▄▉█▌▅▌
merge from optimize_duplicate_player_check -> main
▍ ▇▆▋ █ ▉▉▋█▉▅ ▄▊▅▌█ ▋▋▍▇▍▋▌▇▌ ▊█▉▋ ▍▉▋▌█▇▋▊▋▊█ ▇▊ ▅▄▉▅▍▍▆▄▄▉ ▅▄▇▅▉▌▌▋▄ ▍▍ █▄▇ ▆▅▋▅▌▄▅█▍▆ ▊▌▌▋▊▉▇▋▍▍▊ ▋▄▆▅ ▋▍ ▌██ ▋▊▍▅▍▌▅▄▅▄█▋▅▅▉▋▄▅▅ █▉ ▅▉▄▋█▄▉ ▄▄▄ ▆▄█▉▄▌ ▊▌▌ ▇▆▉▍▉▍ ▊▍▋▇▋▌
Dont send travelling vendor map marker updates 20 frames a second
Saves 160 bytes per network tick when the vendor is out
merge from optimize_enforce_limits -> main
Create the pools LaunchProjectileClientside uses at bootstrap instead of on the first shot, avoids a ~365KB alloc when the first projectile of the session is fired
Remove old mortar prototype code
Means we can remove an mortarCooldown float with every BasePlayer update
Saves 6 bytes per player update
merge from fix_steam_setkey_crash -> main
Reduce number of unique keys set to prolong time until limit is hit
- round entities to nearest 1000
- round FPS to nearest whole number (and clamp to 512)
- round RAM to nearest 100MB
- round GC count to 2 significant figures (1-9,10-90,100-900,etc)
- round uptime to nearest 15m interval instead of every 30s
- increases time before limit is hit from 7d -> 365d+
Prevent server from crashing if too many keys are set
- stop setting new keys after 50k unique values have been set (it can still assign to previous values)
- prevents server from getting enough unique values to cause the crash
Compile fix, missed a file..
Add a test to ensure that networkLookDirection is false for NPCs that dont have a look animator
Better way to go than toggling in preprocess
Fixed
150531 not working in builds (Mega hack to bypass the PlayerUpdateCanvases call when unity renders the realtime cubemap, saving some time wasted on UI for nothing)
merge from cubemap_ui_optims2
Fix the editor freezing for like 5s when you first die
This was due to us loading the prefab for pretty much every item that can kill you when you die in editor. This load happens at preprocess in builds
Add PrefabInformation to some deployed thrown weapons so they still display correctly in the death screen
Merge from deathscreen_editor_fix
Dont send full network updates every tick for for animals without a look animator.
bears, polar bears, boars, chickens, crabs, frogs, jellyfish, squirrels, rabbits, stags
Worst offender is bear costing 94 bytes~ per update when roaming.
~550 B/s → ~27 B/s per bear per player while roaming
Restore update order just to be safe
merge from soundocclusion_optims
merge from scarecrow_errors_fix
Fix error spam from scarecrows
Fix bug that made scarecrows, gingerbread npcs, and junkpile scientists float slightly above the ground
Revert ProjectSettings.asset changes
material updates post shader changes
crowflock prefab uses single emitter now
Add particle stream toggle to crittermovement shader so mesh particles get a per-particle flap
Fixed sounds started by destroyed monument client entities when loading not being cleared correctly
Material fixes
Added test flock prefab
Fix gesture duration
Add more sound events for sheep foot stomp and cow head shake
Improve facing the player
Fix main menu not rendering sometimes
Another order fix/improvement
Sound occlusion optims:
- stop checking every wall between a sound and the camera once one wall muffles it
- looping sounds occlusion rays are batched
- virtualised sounds (sounds muted by unity) check occlusion every 1s instead of 0.25s
Standing outside an average base with 40 looping sounds in range:
~0.65ms -> ~0.05 ms per frame
Gamepad building hints order optim fix
Scratch animation re-export at origin
pt_boat_target_fixes -> main
merge from pipe_mesh_optim
Fix bug causing PT boats to sometimes easily give up on targets up to 12 units above sea level. It should've been only 12 units below sea level
Hidden players rank behind every visible one, but can still be picked if nobody is visible
merge from pipe_mesh_optim