130,549 Commits over 4,232 Days - 1.29cph!
    
    
    
        
            
            
            
                
                Update: Add chat feedback when perf snapshot is being taken
It'll warn users if they're in the middle of something important
Tests: exported in editor with no delay and default standalone delay
 
                
                
                
                
                
             
         
        
        
            
            
            
                
                Splitted the code in client/server files
Updated naming and moved everything in the right folders
 
                
                
                
                
                
             
         
        
            
            
            
                
                wip: working server -> client syncing
 
                
                
                
                
                
             
         
        
            
            
            
                
                wip: Took me a day to realise there were seperate writer methods for client and server
 
                
                
                
                
                
             
         
        
            
            
            
                
                Replaced the metal bonk effect for something more appropriate
 
                
                
                
                
                
             
         
        
            
            
            
                
                Clean: remove unnecessary params in ProfilerExporter
Tests: none, trivial change
 
                
                
                
                
                
             
         
        
            
            
            
                
                Update: Add commandline argument support to explicitly turn on profiler instrumentation
- Added log to explicitly confirm if it's enabled or disabled
Tests: ran in editor and server standalone with and without it being enabled
 
                
                
                
                
                
             
         
        
            
            
            
                
                Collision damage
Ragdoll the rider when taking too much damage (hitting a tree at full speed, running off a cliff etc)
 
                
                
                
                
                
             
         
        
            
            
            
                
                Bugfix: avoid a rare case of dealocating main thread's Allocs storage
- Code is written with the assumption that it's always there, but if 1 frame didn't record any allocs, it would nuke the storage, tripping up the profiler.
Discovered when doing additional testing in standalone (somehow editor was unaffected)
Tests: did 6 snapshots of standalone server with 6k map - no crashes
 
                
                
                
                
                
             
         
        
            
            
            
                
                properly disposing native structures in-editor when stopping play in editor
 
                
                
                
                
                
             
         
        
            
            
            
                
                - ▉▍▋▋█ ▌▅▋▇ ▇▆▋ █▌ █▊▊▄▍▇▆█▇▄ ▇▇▇ ▌▍▅▄ ▍▋▍▅ █▌ ▅▌▌█ ▋▉▆ ▇█▆▉▍▄ ▆▌▇▇ ▉▄▊ ▊█▄█▆▋▆▇▇▍ █▋▄ ▌█▅▄▍▉▌
- ▄▋▌ ▅▋▌▌ ▍▅▉ ██▄▋▆▋▋▇▅▍ ▇▍▄▉▋▌▍▆▌▊ ▆█ ▄▆▊ ▍▉▍▊█▌ ▇▅▌ ▉▄▋▇▉▊▇
 
                
                
                
                
                
             
         
        
            
            
            
                
                merge from native_mesh_simplification
 
                
                
                
                
                
             
         
        
            
            
            
                
                cleanup and logging procedural mesh stats with a logmeshstats convar
 
                
                
                
                
                
             
         
        
            
            
            
                
                Horse head and body bounciness, so we don't lose too much speed when bumping on trees
 
                
                
                
                
                
             
         
        
        
            
            
            
                
                Physics tweaks, updated grounded checks
 
                
                
                
                
                
             
         
        
            
            
            
                
                merge from Twitch_Rivals_24
 
                
                
                
                
                
             
         
        
        
        
            
            
            
                
                Trying a wheel collider approach to reduce unwanted friction when riding on uneven terrain
 
                
                
                
                
                
             
         
        
        
            
            
            
                
                Merge from localcoord-blend-layer
 
                
                
                
                
                
             
         
        
            
            
            
                
                Added talk_06 anim as cinematic gesture
 
                
                
                
                
                
             
         
        
            
            
            
                
                deployable target 
will need a programmer to look over stuff again
 
                
                
                
                
                
             
         
        
            
            
            
                
                work around horrible flickering when in 2D editor view
 
                
                
                
                
                
             
         
        
            
            
            
                
                chicken coup deployable test
will need looking over with an actual programmers eyes just in case
 
                
                
                
                
                
             
         
        
            
            
            
                
                Make flex controller names case insensitive again
Optimizations for weapon autorefresh in spawnmenu
Fix branch specific build error
 
                
                
                
                
                
             
         
        
            
            
            
                
                ▊▊█▅ ▌▆▋ ▅▅▊▌▊▌▅▅▋ ▌█▇██▍▇█ ▉█▊ ▆▊▊▆▇▄█▉ ▌▍▍▋ ▇▅▇ ▋▊ ▆▉▅▊▆▆█▆█▇
▋▋▇▍▊█▊ ███▇█▊▇▊ ▇▌▌▋ ▍▇ ▄▅▋▅▍, ▇▍▄▇▆▍▌▋, ▋▋▉▍▇ ▇▋ ▋▌▇ ▆▌▌ ▋▍▍█▉ ▉▉▍▊▊▊▋▊, ▄▊▇▄▅ ▇▉▍ ▊▌▋ ▌█▇▆▊▅▋ █▇ ▅▉▍ ▅▍▊▇▇▋▅ ▅▍▅▋▆▄, █▌ ▅▌ ▆▍▅▅ ▅▉ ▄▆▆ ▇█▌▅█▉▉▊ ▅▅█▍▅ ▅█▋▌▊▋▄▅▆
! ▇▊▊▄▅ █▌▄▇▊▅▅▇ ▊▇ ▋▋▆ ▋▇▆▋ ▊▌▄▋▊▇
▆▍▇▆▄▅▄ ▆ ▉▇▇▅▋ ▄▋ ▌▌▄▌▌▇▄ ▌█▆▌▍▊▍▋▍▇▋ █▋█▆▍▄▆ ▉▄▆█▌▊▊▅▍▌▄ ▄▍ ▌▄▅▄, ▌▍▆▅ █▆ ▌▇▄▇
▆▆▇▉▍▄▊ "▆▆▌█" ▉▊▅▋▋▅▋▍█▍
█▊▇█▍ ▋▄▅▋█▅▌
!▇▇▌▉▆▄ ▍▇▊▋▇▊▇▆▄█▊, ▅▄▇▊▇▌▊▍▅ ▍▇▉▄▉, █▇▋▇▌▌▅▌▊ ▄▄▆▋▆, ▋▄▊▊▊█ ▊▇▋▆▍
▉▅▊▄▄▊▋ ▉ ▆▍▆▉▍ ▅▉ ▉▇█▇▉▅▄ █▅▄▆▊▍▉▍▄▉▉▇▇▋▉ ▋▉█▇▋▉▇▉
█▊█▄▍▆▍█▊▌█▋ █▄▋▍▋
▄▇▌ ▋▄▊▌▌▄▉▌▌▆██  ▄▊▉▊▅ ▍▊▊▅▄▌ ▉▍▍▄▋
▋█▉▊▆ █▋▇▄▊▆▌▋▄▉▇█ ▍▋▌█▅▌ ▌▇▊▋▊▆▄▍▍ ▄▌▄█▋ ▋▆▉▌▅▉▉ ▊▋▌▄ ▉█▅▍ ▅▆ ▇▊▉▊ ▇▉ ▋▅▅▄▋▇▌▍▍
▅▊▊▋▅▍▆ -▊▇▆▊▋▊▅▋ ▍▄▋▋██
▌▄▇▊▌ ▋▄▉▋▆▌▍▅
▇▋█▅▄▆▄ ▍▆█▋▋▅▄▇▅▋▊▄█▉▆▉ ▇▅▇▆▅▅▉ ▍▋ ▌█▋▍█▌:▊▉▇█▊▊▊▌▊▋▊▇
▄▊▋▉▊▅:▅▅▄▋▍▌▌▋▉▍▍▊ ▆▇▊▌▍ ▉▄▄▊▍ ▊▆▊▉▉▋▉, ▆▄▆▌▉▌▇▌▍▉ █▊ ▍▅▊▍▄█ ▇▋▅▊
▆▉▉▉▆ █▌▅ █▇▅▅▆ ▍▋▋▊ ▉▇ ▄▄▍▉▇▊▌▍▇ ▉▄▆▄▇▉▋▋▆ ▍▉▌▍▋▅
!▅▉▋▌▊ ▅▆ ▋▋▇▄▊▆
▍▆▌▇ ██▉▇ ▅▅ ▌▊▅▍█▋ ▍▉ ▄▆▌█▌▍▍▇ ▅▆▇█▊▇ ▍▉ ▋▄▅▆ ▇▉ ▆▋▍█▍▆█▆
▌▄▋▌▍▇█ ▉ █▍▇ ▅▇▆▄▋██ ▊▊▅▇▊ ▋▅▉▄ ▄█▇▄▋▌ ▍█▆▊▌ ▇▊▄ ▆▊▆▌▅▅▍ ▋▆▄█▉▌▄██
▄▊█▆█ ▄▄▌▊▇█▌ ▋▄▉▅ ▄▊▍▋█▌▄ █▅▆▆▇▊▅ ▍▍▍▌▊▆▍
▇▉ ▆▊▇▆ ▌▊▄▄▆█▆▉▅ ▅▋▄ ▅▊▍▅_▆▋▊▆█▇_▉▌▌█_▇▆▊▄▊▄▄▊▅▋
▄▆▄▍▇ "▊▌▌▆ ▌█ ▊▍▆▇█▍▅▋ █▅▅▅▌" ▄▄▍▄█▊▍█ █▆▄▍▋▊▌
▋▉▋▉▄ ▍▊▆▇▋▅▄ ▍▍▋▉ ▌▄▆▌▆▋▋▇▊ ▌▍▆▋▆▇▋ ▇▆▍▍█▉ ▄▌▇▌▉▇▆▉ ▄▉▊▊▅
▌▉▌▊ ▄▋▇ ▍▆▍ █▉ "▅▇█▋ ▊▍▋▅▆" ▄▇█▇▆▇▄
▅▋█▉▄▄ ▉▆▉▉▌▅ ▅▊▌▍▍ ▇▇▄▌ ▋_█▉_▌▉▌▌▅▇▆▌▇▆▋█
█▍█▄▌▆▆▄ ▄▊:▄▊ ▆█▉▄, ▌▇ ▅█▇ ▍▊▉▅▊ ▄▅▇▄▌▌▌▇█▄▍.
▇▆▊█▇ █▆▉▆ ▊▋▋▆▄ ▄▅ ▇▅▉▆▌▍ ▅ ▅▄▋▄▌▆▋▌▄ ▉▅▉▄▉▍▄-▉
▇ ▄▍▄▆ ▇▅ ▄▋▊ █▅▌ ▋▄▇▄█▇▉ ▇█▇█▋▊ ▆▄▉▍▊█
 
                
                
                
                
                
             
         
        
            
            
            
                
                Only use networked velocity for entities that set it serverside
Physics entities such as props, vehicles, SENTS do not set their velocity, since its all handled by the physics engine, so it ends up not actually being networked
Make particle preview background slightly lighter (32,32,32)
Fixed more crashing issues to do with particles
 
                
                
                
                
                
             
         
        
            
            
            
                
                support applying vertex color/alpha on Standard Packed Mask Blend
color and/or alpha be applied to albedo color, ao, or neither
 
                
                
                
                
                
             
         
        
            
            
            
                
                Server receive methods
- Setup testing
- More logcs
- Client sync var debugging
 
                
                
                
                
                
             
         
        
            
            
            
                
                add metallic workflow version of LocalCoord Diffuse
 
                
                
                
                
                
             
         
        
        
            
            
            
                
                Update: Don't allocate storage for alloc marks on worker threads
Tests: exported a couple snapshots in the editor
 
                
                
                
                
                
             
         
        
        
            
            
            
                
                Update: truncate snapshot names to 32 chars
Tests: none, trivial change
 
                
                
                
                
                
             
         
        
            
            
            
                
                not trying to simplify the mesh to 10% anymore
 
                
                
                
                
                
             
         
        
            
            
            
                
                Setup both client and server send methods
 
                
                
                
                
                
             
         
        
            
            
            
                
                Update: export worker threads in the json snapshot
- Also fixed a bug I introduced in previous submit that led to sporadic exceptions
Tests: exported 5 profiles in a row from Craggy in Editor, exported 2 in standalone, checked in perfetto
 
                
                
                
                
                
             
         
        
            
            
            
                
                deferred mesh simplification
- sculpture waits for a period of inactivity to schedule mesh simplification
- mesh simplification is run in a background thread, while the unoptimised mesh is displayed immediately
- handles multiple enqueued simplification requests with job dependencies, preferring wasted background computation over main thread blocking
 
                
                
                
                
                
             
         
        
        
        
        
            
            
            
                
                Horse gaits (walk, trot, canter, gallop)
Tweaked speeds
 
                
                
                
                
                
             
         
        
            
            
            
                
                Update: record marks from worker threads
- Had to leave allocation tracking enabled for main thread only - there's a comment explaining why
Need to implement export for worker threads - that's next
Tests: exported snapshot from Craggy in editor and opened in Perfetto
 
                
                
                
                
                
             
         
        
            
            
            
                
                wrapped in-job profiling in a define, using a ProfilerMarkerStub with matching functions calls decorated with BurstDiscard
 
                
                
                
                
                
             
         
        
            
            
            
                
                Update: generate snapshots under server root
Tests: exported in editor, found in the right location
 
                
                
                
                
                
             
         
        
            
            
            
                
                re-added early exit on flipped check loop
 
                
                
                
                
                
             
         
        
            
            
            
                
                minor cleanup and crunching meshes down for 20% reduction