10,480 Commits over 4,171 Days - 0.10cph!
Tweaked snow mound terrain anchors
Added DebugEx.Log to write to log file without stack trace
Game startup logs and console commands no longer spam stack traces into game log
Fixed stack trace red text in main menu because fuck me
EAC register timeout is 20 seconds
EAC HandleClientUpdate tweaks
Do EAC auth right after Steam auth
EAC SDK update (eliminates GC allocations)
Rebuilt Facepunch.Network and Facepunch.Raknet
▌▆▍▉▌▊▍▄▄▋ ▍▌█▊▊ ▆▇▍▍▇▍▇█▋ █▉▅▋▊▄█▇ ▌▄▅▄▍▆▌ ▇█▉ ▅▊█▆
EAC SDK update (fixes macOS startup issue)
Eliminated GC allocs from effect instantiates (IEffect.SetupEffect)
Eliminated GC allocs from effect weapon bone parenting (EffectParentToWeaponBone)
Eliminated GC allocs when switching resource stages (StagedResourceBreakEffect)
Eliminated ~300B of GC allocs whenever a randomized sound was played
Larger coastal player spawn areas
Better spawn handler density enforcement
Disabled saving on radtown ore nodes (not supported by loot spawn points, RUST-1747)
Reduced spawn density of wooden logs by around 30%
Added "authtimeout" convar (default = 10 seconds)
Reduced distance fog / aerial perspective density at daytime / dusk / dawn by 25-50%
Added AssetNameCache (with GetName / GetNameLower / GetNameUpper extension methods for materials and physic materials)
Eliminated GC allocs from footstep / footprint lookups, hit effect lookups and gib effect lookups
Removed some crazy inefficient methods from GameManager that should not be used by anything
Eliminated GC allocs from lowercase conversion of prefab names (triggered by spawn handler, decor spawners)
Log warning when having to convert prefab names to lowercase (should never happen)
Fixed some hardcoded prefab paths in code that weren't lowercase
More prefab paths that weren't lowercase
Fixed animation event prefab paths not being lowercase
Added StringFormatCache (caches the result of repeated string.Format calls with the same arguments)
Eliminated GC allocs from effect path assembly (this affected every single effect spawn)
Removed gc.interval since it's bullshit and the thought of someone having it enabled scares me
Reverting to legacy EAC API due to server authentication issues
Network++
Much more detailed profiling in CreateOrUpdateEntity (ClientSpawn, ClientInit, InitShared etc)
Cherry picking improved CreateOrUpdateEntity profiling (22318)
BaseNetworkable SaveInfo / LoadInfo are structs (eliminates GC allocs)
Deleting Plugins/Facepunch (all part of Facepunch.Network)
Networkable + Subscriber are pooled (eliminates GC allocs)
Networkable fires events via NetworkHandler interface instead of actions (eliminates GC when subscribing / unsubscribing events)
Rebuilt Facepunch.Network and Facepunch.Raknet plugins
Nicer separation of editor-only entity networking cost in the profiler
Removed GC allocs from GetComponentInChildrenIncludeDisabled
Entity links are pooled (eliminates GC allocs)
EffectRecycle / DecalRecycle cache their invoke actions (eliminates GC allocs once pooled)
Eliminated GC allocs from FPSTimer
Eliminated SpecialPurposeCamera GC allocs