userDaniel Pcancel

1,159 Commits over 304 Days - 0.16cph!

42 Days Ago
Update: Integrate TickInterpolatorCache into the server flow Tests: played back staging demo, once with it enabled from start, another with disabling-enabling it multiple times during playback. Both cases had comparable telemetry numbers
42 Days Ago
Bugfix: avoid writes past the end of the buffer Tests: ran unit tests
42 Days Ago
Update: Adding last missing API - TickInterpolatorCache.TransformEntries - added tests to cover it Tests: ran unit tests
42 Days Ago
Optim: TickInterpolator.TestConsistency - Replace Assert.IsTrue with AssertTrue wrapper that doesn't allocate - Sprinkled some scopes for future Speeds up the unit test 20x times and avoids 3.6GB of garbage Tests: ran the unit tests
42 Days Ago
Clean: add a comment Tests: none, trivial change
42 Days Ago
Tests: validate PlayerTickIterator in it's initial state Tests: ran unit tests
42 Days Ago
Tests: Add more edge case testing - Testing 1 tick only - Testing up to capacity ticks Tests: ran unit tests
42 Days Ago
Bugfix: TickInterpolatorCache now properly handles "Reset" position - Fixed unit tests Tests: ran unit tests - all tests now pass
42 Days Ago
Update: Adding TickInterpolatorCache.PlayerTickIterator to help with code migration - Expanded unit tests to cover the new util and a couple more code paths Tests: none. Tests are currently failing as I uncovered a different issue - will fix in next CL
43 Days Ago
Update: translate ValidateMove to batched ValidateMoves Internally it's the same logic for now, as I've yet to properly intergrate TickInterpolatorCache and need to convert a lot of internal methods Tests: played back staging demo - got same numbers and no new errors
43 Days Ago
Update: made some caches stable across frames Tests: played back staging demo - no new errors and stats match expected
43 Days Ago
Clean: simplify call Tests: none, trivial change
43 Days Ago
Merge: from parallel_validatemove Tests: none
43 Days Ago
Merge: from parallel_validatemove - bugfix for invalid transforms in the cache - fallout from previous bugfix Tests: played back staging demo - counts as expected and no more errors about transform cache inconsistency
43 Days Ago
Bugfix: fix transform cache rebuild loop Previously threw away dirty indices too early, missing on some player cache changes Tests: played back the staging demo - no more error logs about transfomr cache inconsistency
43 Days Ago
Update: consolidate debug logic - Also ValidatePlayerCache fixed to actually check for native-null players I'm hoping I won't need this after tomorrow, but keeping it fixed to use for testing on staging for a bit Tests: ran through the staging demo - notifced it's picking up an issue from the prev merge, will fix shortly
43 Days Ago
Merge: from parallel_validatemove Tests: none, no conflicts
43 Days Ago
Merge: from parallel_validatemove - Bugfix for null players in PlayerCache causing UsePlayerUpdateJobs to get disabled Tests: played back staging demo - got similar results
43 Days Ago
Clean: fixing broken whitespaces that I spotted with the merge Tests: none, trivial change
43 Days Ago
Merge: from main Tests: none, no conflicts
43 Days Ago
Bugfix: PlayerCache now tracks players that are removed from the server Original impl left a space where it could miss some of the players, leading to rogue nulls. Tests: played back staging demo - had same numbers
43 Days Ago
Merge: from parallel_validatemove Tests: none (resolved into dest version)
43 Days Ago
Update: adapted code to PlayerCache change - FinalizeTickParallel now uses `player.StableIndex` as indirection, instead of iterator index - Updated validation checks - Transform caching job now checks for invalid transform accessses Tests: ran all relevant unit tests, played back staging demo - got comparable numbers
44 Days Ago
Merge: from parallel_validatemove - fixing one of validation checks silently passing Tests: none, trivial change
44 Days Ago
Bugfix: one of validation checks was doing nothing Tests: none, trivial change
44 Days Ago
Merge: from parallel_validatemove Tests: none, no conflicts
44 Days Ago
Clean: Lenght -> Length Tests: compiles in editor
44 Days Ago
Merge: from parallel_validatemove - Removing extra logging Tests: built server locally
44 Days Ago
Clean: removing BasePlayer OnDisable/-Destroy logs for UsePlayerUpdateJobs Got confirmation that it's not Unity nuking the objects, so something else must be afoot. Tests: built server locally
44 Days Ago
Merge: from main Tests: none, no conflicts
44 Days Ago
Update: fix TickInterpolatorCache tests and update it's API - No longer tracks player count - Made API focus on Expand -> Replace(index) flow - makes it easy to work with PlayerCache Tests: ran unit tests
44 Days Ago
Update: PlayerCache now guarantees spatial stability - Updated it's direct tests (will update rest next) Updated interface, although compatible with existing code, will lead to breakages, so I'm slowly updating the relevant code Tests: ran unit tests
44 Days Ago
Merge: from parallel_validatemove - minor server demo playback bugfix - extra debug logging for baseplayer destruction when UsePlayerUpdateJobs is enabled Tests: build tests
44 Days Ago
Clean: fixing broken formatting that snuck in on main Tests: none, trivial changes
44 Days Ago
Merge: from main Tests: none, no conflicts
44 Days Ago
Debug: adding sanity debug error logs to baseplayer OnDisable and OnDestroy Hoping to catch where it's coming from Tests: local build tests
45 Days 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
45 Days 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
45 Days Ago
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
45 Days Ago
Merge: from parallel_validatemove - more debug to track down null baseplayer Tests: local editor SERVER+CLIENT session
45 Days Ago
Clean: fixing whitespace issues after auto-merge Tests: none, trivial changes
45 Days Ago
Merge: from main Tests: none, no conflicts
45 Days Ago
Debug: sprinkling additional validation checks in ServerUpdateParallel Trying to narrow down at which point this null sneaks in Tests: none, trivial change
45 Days Ago
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
46 Days Ago
Optim: replace couple managed loops with a burst job Tests: none, trivial changes
46 Days Ago
Merge: from parallel_validatemove - buidlfix Tests: build client and server in editor
46 Days Ago
Buildfix: move ValidateTransformCache to SERVER region - also fixed missing Profiler.EndSample() Tests: built client and server in editor
46 Days Ago
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
46 Days Ago
Merge: from main Tests: none, trivial merge
46 Days Ago
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