110,890 Commits over 3,897 Days - 1.19cph!
wip: Kill sync var tick on object death
wip: Automatically sync vars should any change. Uses a polling method for now:
- Invoke poll in fixed repeat time
- Syncvar handler no longer requires default value
Code cleanup
Collision damage tweaks
Perform type checks on initial sync var generation pass
wip: Added bidirectional client -> server / server -> client var sync. Syncvars can be declared as chaving client authority
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
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