5,970 Commits over 4,383 Days - 0.06cph!
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++
Cherry picking improved CreateOrUpdateEntity profiling (22318)
Merge from gc_optimizations
Added LOD mesh swapping support to StagedResourceEntity
Fixed ores using the wrong mesh in the distance when partially broken
Subtracting gc_optimizations
Merge from gc_optimizations_2
Disabled dynamic batching (experiement)
Fixed Server.DestroyNetworkable not calling Networkable.Destroy when returning networkable to pool
OnInventoryChanged profiling
Adjusted some memory pool sizes
Eliminated GC allocs from ItemContainer.Load
Eliminated GC allocs from MaterialReplacement
Just use prefab name on the client in Entity.ToString() to avoid GC allocs
Eliminated GC allocs from BaseNetworkable.NetworkDestroy
Eliminated needless group creation when trying to destroy an empty network group on the client
Re-enabled dynamic batching (too many changes on staging this week, let's compare again next week)
Eliminated GC allocs from MaterialColorLerp.RefreshRenderers
Eliminated GC allocs from PlantEntity.UpdateSkinParameters (called from PostNetworkUpdate)
Fixed material / memory leak from mining quarries
Removed TransformEx.FindChildren since it's super inefficient and now unused
Disabled PlanterBox, EmissionToggle, LaserBea, FlashlightBeam and VendingMachineScreen material adjustments since they were all leaking materials / memory
RenderInfo debug tool no longer duplicates materials when called
Optimized MaterialColorLerp
Tweaked EntityLink default capacity
Eliminated GC allocs from BaseEntity.UpdateParenting
Removed AttachToBone (unused, inefficient)
Viewmodel attachments use Model.FindBone instead of Transform.FindChildRecursive (more efficient since cached)
Reduced or eliminated GC allocations from Transform.FindChildRecursive (only used by UI)
Fixed material / memory leak in Bradley TreadAnimator component
Reduced sky brightness slightly
Log warning when trying to create attachment on viewmodel without model component
Reduced GC allocs in SelectedBlueprint.RefreshBlueprint
Adjusted default buffer sizes of collider groups, renderer groups, foliage groups and LOD cells
Remove foliage groups when they are empty (similar to renderer / collider groups)