userDaniel Pcancel
reporust_rebootcancel

923 Commits over 243 Days - 0.16cph!

4 Hours Ago
Bugfix: ServerDemoPlayer - handle player reconnecting multiple times Not 100% sure it's the correct way, but I think it works for now. Tests: played back new staging demo 3 times
6 Hours Ago
Tests: replace Assert.AreEqual with Assert.IsTrue - Brings TickIntrpolatorCache test from 30s+ down to 6s Turns out AreEqual is slow and inflates the test times by quite a bit. Tests: ran unit test
Today
Optim: TickInterpolatorCache reduce number of segments being copied when growing Unit test is still slow, need to dig a bit more Tests: ran unit tests
Today
Merge: from parallel_validatemove - more debug to track down null baseplayer Tests: local editor SERVER+CLIENT session
Today
Clean: fixing whitespace issues after auto-merge Tests: none, trivial changes
Today
Merge: from main Tests: none, no conflicts
Today
Debug: sprinkling additional validation checks in ServerUpdateParallel Trying to narrow down at which point this null sneaks in Tests: none, trivial change
Yesterday
New: TickInterpolatorCache - a sparse, bulk TickInterpolator array - Comes with it's own stress tests (they pass, but need to investigate perf) - Depends on PlayerCache, but I need to modify it to provide more stability Building block towards jobifying tick history processing. Tests: ran unit tests
Yesterday
Optim: replace couple managed loops with a burst job Tests: none, trivial changes
Yesterday
Merge: from parallel_validatemove - buidlfix Tests: build client and server in editor
Yesterday
Buildfix: move ValidateTransformCache to SERVER region - also fixed missing Profiler.EndSample() Tests: built client and server in editor
Yesterday
Merge: from parallel_validatemove - Adds error checking to UsePlayerUpdateJobs 1 mode and graceful disable to avoid crashes to help with investigation Tests: ran parallel mode in editor on craggy with a couple debugger-forced emergencies
Yesterday
Merge: from main Tests: none, trivial merge
Yesterday
Clean: promote server var to a const - no codegen since I didn't do one when I added this It's temp code, but it makes things safer while I investigate, so no reason to disable it at runtime Tests: none, trivial change
Yesterday
Bugfix: purge player cache when player update jobs has emergency shutdown Allows to restart player update jobs cleanly in the same session Tests: in editor with debugger forced an emergency scenario, confirmed the cache was empty and rebuilt
Yesterday
Update: move player transform cache updates to be first step of parallel player processing - Bugfix - using Steam networking backend can have temporary outtages, which can cause gaps in processing and player cache desyncing - also enables us to compose parallel flows better in the future Tests: local editor session on craggy
Yesterday
Update: add temp emergency disable of player job processing - Only active on staging servers while I investigate the crashes Tests: forced an error via debugger - confirmed fallback is working
Yesterday
Tests: move the PlayerCache stress test to it's relvant tests file and clean up - commented out the expected-to-fail case Tests: ran the tests
4 Days Ago
Update: adding throw away tests to investigate how I cuased a native crash yesterday So far everything points to BasePlayer being removed after we cache all transforms for the burst jobs and before the first RecacheTransform invoke, but I haven't tracked where it's coming from. Tests: ran the hacky unit test
5 Days Ago
Merge: from main
5 Days Ago
Merge: from players_cmd_clean - Removes obsolete columns Tests: ran the command in a local editor session
5 Days Ago
Buildfix: restore server ifdefs Tests: compiled in editor
5 Days Ago
Clean: remove obsolete columns from players cmd - Also rewrote it using the new API Tests: ran in a local session in editor, tested both text and json versions
5 Days Ago
Merge: from profiling_improvements Tests: took a snapshot in editor
5 Days Ago
Update: updated profiler binaries - Built from 7b1b923e Contains additional filters for BaseNetwork::ShouldNetworkTo, BaseEntity::ShouldNetworkTo and entire Facepunch.Network.Subscriber class Tests: took a snapshot in editor
5 Days Ago
Merge: from main
5 Days Ago
Merge: from minigun_audio_fix - Fixes minigun audio beign stuck on Client after releasing the fire button - Fixes minigun effects not replicating to other players Tests: local 2 player session with each player firing minigun in various patterns.
5 Days Ago
▍██▄▆▋: ▊█▇ ▋▆█▊▋▇▋ ▄▍▋▌▉ ▋▇▉▋▅ ▍▆▋ ▌▇▆ █▍▌▉▆▉▍▄▆▍▄ ▌▍▅▋ - ▍▆▌▇▋█▍ ▋▆▄▍▆▅ ▋▇▋█▇▄ ▍▋ ▌▌██ ▄▋ ▊▊▋▉▊▉ █▄▍▌▉▉, ▋█▆▊▉ ▇▇▋▆▌▆-▊█▍▅ ▄▅█▇▍▋▊ ▇▄▉ █▇▋▊▊▇▌▍ ▋▆█ █▆ ▇▅▅ ▆█▌█▅▅ ▋▇█▍▉: █▊▋▄▅ ▅ ▅▄▄▉▅▊ █▇▊▋▊▋▉ ▌▄▆▌ ▉▆▉▊ █▇▊▇▆▋ ▌█▇▍▅▇ ▇▅▆▅▉▅▌ ▇▄ █▇▄▊▌▄█ ▆▋▆▌▊▉▋▋.
6 Days Ago
Merge: from item_allocs - Simplifies stacking logic to be cheaper and get rid of potential allocation Tests: various stacking scenarios from belt to inventory with wood stacks(incomplete stacks, full stack + incomplete, full stack only)
6 Days Ago
Merge: from main Tests: none, no conflcits
6 Days Ago
Optim: don't sort items when trying to stack them This saves us the potential allocation in Sort + less iterations over the array + can avoid doing slightly more expensive logic if we randomly jump around in item container. Tests: various stacking scenarios from belt to inventory with wood stacks(incomplete stacks, full stack + incomplete, full stack only)
7 Days Ago
Merge: from item_allocs - Fixes BufferList not able to sort when it's not full - removes some from Item.MoveToContainer Tests: moved and stacked items in the inventory while checking profiler
7 Days Ago
Optim: remove allocations from Item.MoveToContainer Unity profiling showed an allocation inside it's sort impl, but I haven't seen it on server snapshots - will clean up if it is there Tests: got a bunch of wood in separate stacks and stacked it via right click from belt to inv. Checked profiler to confirm expected allocations are gone.
7 Days Ago
Bugfix: BufferList can handle sorting subrange Tests: moved items around in inventory(future cl)
7 Days Ago
Merge: from growablegenes_allocs - Remove allocs from GrowableGenes Tests: local in editor, spawned a planter box, filled it with seeds while monitoring Profiler stream
7 Days Ago
Clean: remove profiling hack Tests: none, trivial change
7 Days Ago
Update: avoid linq allocations in GrowableGenes Tests: local in editor, spawned a planter box, filled it with seeds while monitoring Profiler stream
7 Days Ago
Merge: from treemanager_oob_nre - Fixes NRE caused by trees close to the edge of the world Tests: throw away unit tests that sampled edges of the tree manager's grid
7 Days Ago
Bugfix: Properly calculate grid dimensions for TreeManager Fixes NRE caused by trees close to/outside of world bounds (modded) Tests: throw away unit tests that sampled edge locations
7 Days Ago
Merge: from active_tooltip_nre Logs to help track down mystery NREs. Tests: booted into bootstrap scene
7 Days Ago
Update: reinforce Tooltip language changing logic Instead of throwing an NRE report an error. I don't see how we can end up in this situation, but our logs show it can rarely happen. Tests: booted into bootstrap scene
7 Days Ago
Merge: from baseplayer_dispose - Fixes the error log spam on staging Tests: local 2 player session, 2nd player disconnected, triggered GC - no errors
7 Days Ago
█▄▅▉▌▅: ▊▊▌▇▌█▅▅▊▍ ▋▄▆ ▋▆▋▋█▅██ ▉▉▇▌▉▍▇▋▅▄▊▆ ▆▋ ▅█▌▇▋█ ▇▌▌▄ ▊▆ ▊▌▋▆ ▊▇█▋▄ ▅█▉ ▇█▌▇█ ▍▅▋▄ ▄▅▆▍▄: █▍▅▊▋ ▇ ▅▆▇█▄▌ ▇▆▌▉▊▄▍, ▇▄▇ ▊▍█▍▍▍ ▆▊▋█▇▊▍█▉█▇▅, ▇▅▄▇▆▉▉▌▌ █▇ - ▄▆ ▊▍▄▇▅▆
8 Days Ago
Merge: from parellel_validatemove - Full conversion of player WaterInfo caching over to jobs - TerrainMap now uses NativeArray instead of managed array - expanded unit tests - new ServerDemoProcessor that tracks water results checks (in/out of water counts) Going to start testing on staging and monitoring the impact Tests: ran all the new or updated unit tests, made sure builds passed locally, during dev used server demos to validate stats.
8 Days Ago
Clean: remove unnecessary usings Tests: editor compiles in CLIENT+SERVER
8 Days Ago
Update: adding missing logic to BasePlayer.ServerUpdateParallel since the merge - also fixed the formatting in a couple places Tests: none, trivial changes
8 Days Ago
Bugfix: check if ignore grids (terrain, water) are present - Covers cases in editor where they haven't been setup yet Tests: ran unit tests
8 Days Ago
Bugfix: invalid indexing of water infos when player is parented to a water blocking entity Tests: none, trivial change
8 Days Ago
Merge: from main Tests: ran unit tests, played in editor with parallel update jobs enabled on Craggy - water was detected correctly
8 Days Ago
Bugfix: rename WaterVisibilityTrigger.Reset to ResetTrackedTriggers Old name conflicted with Unity's scripting api and generated errors in editor(problematic for tests) Tests: ran unit tests