userDaniel Pcancel
branchrust_reboot/main/parallel_validatemove/stable_playercachecancel

44 Commits over 31 Days - 0.06cph!

10 Months Ago
▉ ▌▄▉▍▌▆▌ ▋▇▉██ ▄▇▇▉▍ ▄▇▆ ▉█▅▌▋▊▊ ▆▊▊▅▉▆▅ ▇▇▋▆ ▇▇▋▊▌█▄▄ ▊▍▉▋▇▆▇▄▍█▍▊▅ ▅▊▊ ▄▋▇ ▍▅▍ ▍▍▋▊▊▍ █▌▉ ▊▋▋▍▋ ▊▌▇ ▍ ▅▆▅▍ █▄ ▄▅▋▅▉ ▅▄▅▌▋▍▉▄▊ ▉█▉▅ ▌▆▍█▆ ▌▍▆▇█▋▍▋▄█▊▊▉▅▇▆▇▉ ▉▌▆▋▄▋ ▋▇▋▊ ▍▄▆▅▊▌▍ ▅▇▌▊
10 Months Ago
▆ ▇▊▍▉▇▍▌ ▆▍▊ ▅▅▌▍▌██▊ ▊▊▉ █▍▊▄▇▆▌ ▍▆▍▋ ▍▍▌█▉ ▅▉▅█▌▉▅▉ ▍▉ ▋▍▇▌▉ ▍▊▊ ▍▋▆█▄▊▍▆▋▊▇▆▌ ▄▇▌▆▅▉ ▆▋▌▌ ▅▅▌█▍▉▇ █▋ ▇▆ ▍▋▇▊ ██▉ ▉▌█▅▋ ▊▊ ▉▉▊▇██ ▍▄ ▍▅▇▆▅▍▋ ▇▅ ▊▌▊▅▊ ▉▊▊▄ ▊▆▄▇▄▇▆▌▇▄▋▅▇ ▍▇▌▌▅▇ ▆▇▉▌ █▆▉▌▄█▌ ▍▍▊▇
10 Months Ago
▄ ▄▄▆▍▇▇▌ ▆▄▋▌▊ ▊▇▌▅▉█▉ ▉▊▄▅▌▍█▆ ▊▉▇▌ ▉▋▅▉▋ ▅▋▍▄▆▆▊ ▌█▆▇▍▌█▆▋▇▄ █▍▍ ▇▍▍▄▅▋▋▌▇▍▉▌▄ ▍▋█ ▉▇▇█▆█▊ ▄▇▋▄
10 Months Ago
Clean: consolidate some work buffers Tests: ran staging demo
10 Months Ago
▊ ▉▋▍▇▆▌▆ █▊▄█▌ ▇▄█ ▋▇███ ▄██ ▄▌▍▅▍▅▍ ▊▌▌▉ ▌█ ▉▅▌▄▇▍▆▇▅▍▋▅▋▍▋▇▇▆▊▄▆▌█▇ ▋▇▇ ▋ █▉▄▌▆ ▍▅ ▆▉ █▄▅▆▅ ▍▌▅▍▅ ▅▅▆ █▉▌ ▋▆▊▊█▇ ▄▊█ ▌▉▌▍ ▍▋▋▉▋▍▆▉▌ ▅▍▊ ▆▋▅▅▉▅ ▅█▍▉▋█▉▅▄▍█▋ ▆▇▍▆▄█ ▇▊██ ▇▇▍▅▋▄▆ ▉▌█▍ ▋ ██▍ █▄▆▍▊▍▆▄▄▌ ▉▊▍▋▋▋▌▊▊▅
10 Months Ago
▍ ▍█▍▆█▌▋ ▆▇█▇▊▋▋ ▌▍▋▅▄ ▆▌▍▇▅▄▅▉█▌▉▆▆▉▇█▄ █▉▋▅▌▋▅▉▆▍▊▆▉▌ ▊▌▉█▅▍▅ ▌▆▆▆ ▇█▋ ▅▅▅▇▇▌▉▅█▌▇ ▄▋▋▍▅▉▆▌ ▍▍█▊▅▆ █▍▊▇█▌▉ ▇██▄ ▋▇▍▋▇█▇▋ ▅▄ ▆▇▌▄▊▄██ ▌▋▉▍▄ ▌▍▍▋▍ ▍▋▋▇▇▍▇▆▆▅▉█ ▄▍▄ ▅▆▉▋▇ ▋▌▅▌▊▊▉▌▆▅▌█ ▊▇▋▇▇▌ ▄▌▋█ ▋▆▌▇▊▉▌ ▍▊▇▅ █ ▅▄▉▌▊▊█▉▍▅ ▇▅▋ ▊▅▋▋ ▇▉▌▊▇▅▌▍ ▆▍▍
10 Months Ago
▄ ▇▅▍▊▌▇▆ ▍▇█▉▊ ▌█▍▍▍▊▊▊▅▋▋▇▌▌▋▅▉ ▉▆▉▅ ▋▊▆█▇▍▉▊ ▍▄▉██▇█▄▊ ▄▄▊▊▌ ▊ █▊▌▍▉▄▇▋▅▍▉▄ ▌▊█ ▊▋▄▄▆▋▅▌▇▉▇▅▌█ ▆▌█▌▄▌▌█▍▄ ▉▉▆▇ █▍▆▉▇▆ █▆▊▉▊▍▇▋██▅▌▉▆▍▄▄ ▅▌▌ ▊▅▋▄█▋ █▋ ▇█▆▋▋▊ ▄▍▆▍ ▆▄█▄▄ ▉▌▋▄▄█▇▌▄▋█▉▆ ▉▉▄ ▌█▉█▍▆█▄▌ ▆▄▌▄▍▋ ▇▉▅▆▅▋ ▋ ▇▇▍▉▅▄ ▇▄▋█ ▊▌▇▊▌▊▄ ▆█▊▅
10 Months Ago
Update: merge NativeList.Expand and NativeList.ExpandAndClear - Rewrote the Expand branching logic to be simpler Realized that Expand(false) always leads to a Clear - so there's no point in having ExpandAndClear
10 Months Ago
Update: Add NativeList.ExpandAndClear - also fixed invalid check in NativeList.Expand that was comparing against list length instead of capacity, potentially causing more reallocs than necessary Tests: none, trivial change
10 Months Ago
Clean: variable rename Tests: none, trivial change
10 Months Ago
▄ ▇▌▇▅█▄▄ ▉▇▊▋▇▍▄▉ ▆▍▅▄█▊▆▉▇▊▋▋▋ █▊▄▉ ▌▊▊▄ ▋▉ ▊▍▄▆▊▄█▅▌█▌ ▍▊▅▍▅▇▅▇▄█▊▇▆▄▋▊▅▉▇█ █▉▇█ ▄█▇▉▉▌▉▌▇▌█▍ ▌▊▊▆ █▋▋▄▄ ▊▋▅▌█▆ ▉ ▉▄█ █▆▊▌▋▄▉ ▌▅▍▌▍ ▇▊ ▌▋▉ ▍▄▍▊▋▆ ██▊▅▋▄▉▍▆▇█▍ ▊▅▋▌▅▌ ▍▊▅▆ ▊▇▉▄▊▋▉ ▉▄▋▋
10 Months Ago
▌ ▄▆▉▉█▉▄ ▉█▋█▌ ▋█▉▍▍▍▍▇ ▊ ▌▋▉▉▌ ▌▉▄▊▌▇ ▊▌▆█▇▅▅▌▌▊▋▌██▋▊▌▄▄▇ ▇▉▅▅▉▄▄ ▉▊█▉ ▋ ▌▅▆▍▅ ▄▉▋ ▋▅▉▍ ▅▍▅▄ ▅ ▅▋▍▊▉▄ ▄▊▅▍▆▅ ▉ ▅▇▅▍ ▍▆▅▌█▋█ ▆▉▅ ▄▆▄▉▍▍█ ▉▋▉▅▆▄▆▆▄▅▇▉ ▆▍▆▌▅▍ ▌▍▆▊ ▍█▇▄▌▍█ ▄▇▆▆
10 Months Ago
▌ ▌▊▅▄▄▄█ ▍▊▆▄█▌▋ █▄▍▇▋▊█▆ ██ ▄▌▌▋▅▌▇▍▄▉▇▄▄ ▉▆▊▍ ▊▇▋▍▆█▊▄▊▉▄ ▄▇▇▉▅▊▄▆▆▋ ▌▋▌▅▇▇▇▇▄▇▅▅▊ ▌▍▊▉▋▇ ▅▋ █▇ ▆▌▊▅▌ ▌▇▉▍█▆▌ ▉▌▋▌▄▆▊▉▆▍▍▋▉▊▉▅▇▌▄▄▇█▊▆▊ ▆▉█▋▋▅ ▋▇▄▇ ▌▌▌▇▍▄▍ ▅▇▍▍ ▊ ▆▇▆▆▄▇▆ █▄▆█ ▅▌▊▆▌█▋▆█▉
10 Months Ago
Bugfix: NativeList.Expand now properly clean us old list Tests: none, trivial change
10 Months Ago
▅ ▄▊▋█▌▊ █▆▊▅▊▌ ▆▋▊█▇▉▅▊▅▆▍▉▋▄▆█▍ ▌█ ▌ ▇▄▄▆▉█▅▊▊▉ ▍▍█ ▄▍▊▄▅ ▄▆▍ ▇▄▌▊ ▅▋ ▌█▍▇ ▌▋▌▉▆▊ █▍▌▇▉▍ ▊▆▄▄▊▄▉▇▌▋▅ ▍▍▍▆▉ ▇▊▇▆▊▅▅ ▆▊▉▋▍▊
10 Months Ago
▊ ▋▍▉▄▍▆▍ ▅▆█▌▅▋▄▄▄▋▉▋█ ▌ ▄▊█▄▅ ▉▅▅█▅█▆ ▊▄ ▇▌▆▊▌▇▍▌█▊▋▍▉▍▄ ▉▉▋▅▋▊▇ ▄▍▌▊ ▋▍▌▆█▌▄▄▊▅█▍▌▅▍▆▅▌▇▆▄▆▅▌▊▋▅▍▇▄▌▇▋▆ ▊▍▄▅ ▅▌▍▉▆ ▌▅▊ ▌▄▌█▅▆▊▊ ▉ █▌▍▉ ▋▋▅ ▋▊ ▇▅▅▊ █▄▅▍▊ █▇█▍▆▋▄▍▄▄▌ ▌▉▊▅▊▅▄▄▊█▅▋▌▊█▄▉▅▉▌▆▅ ▊▅▆▅▉▊ ▆▉▋▊ ▄▌▋▌█▍▍ ▇▍▄▇ ▅ ▇▉▊ ▇▋▊▉▋█▆▉ ▋▌█▍▉▊█ ▌▄ ▊█▋▍▍▊ ▉▉▆▆▌▅▋█▌▋
10 Months Ago
Update: TickInterpolatorCache exposes state via ReadOnly property - Reroute all accessors and logic via static methods that take in ReadOnlyState This enables to pass entire TickInterpolatorCache into a burst job Tests: ran unit tests
10 Months Ago
Update: mark a bunch of BasePlayer functions as static Makes it easier to build Burst jobs Tests: editor compiles
10 Months Ago
▍ ▋▍▍█▄▅▆ █▉▄▆▌ ▇▍▋ ▍▄▊ ██▌▌▊█▄▆▍ ▋▍▊▉▍▋▋▌ ▍█▌█▅▊▅▊▄ ▊▄▋▊▄█▅▊ ▉▉▅▍ ▇▉ ▇▌▅▉ █▌▉ ▇▅▉▅▌▉▆▆▇▌▊▆▊ ▋▄▉▇▊▉ ▉▍▇▅ ▊▍▉ ▌█▊▍▅▊▋ █▇▍▅
10 Months Ago
▆ ▋▅█▇▍▄▊ ▉▍▍▋▄ ▋▄▇ ▄▋█▋▉▄▋▆▋ ▉▆▊▋▇▄▊▅ ▉▇▉▅ ▊▊█▋▋▅▌▇▉▊ ▊▍▅▉▍▉▅▅▆▄▌▋▋ ▋▇▍▆▌▆ ▊█▇▉ ▆▇▅▄▍▌▍ ▌▌▆▌
10 Months Ago
▋ ▌▄▌▍▆▊▅ ▆▌▋█▍▅▍█▋ ▌▇▉ ▅▇▆▅█▊▊▋▍ ▍▍▌▍█▆▇▊ ▊▄▋ █▌█▉▋▌ ▊▉▊▋▆▊▇▉▉▇▊▌█▇ ▊▌▆ ▆▌▌▉▉▌▉ ▌▅▋▊ ▅▆▍▊█▉▍▄
10 Months Ago
▉ ▉█▅▇▆▄▅ ▆▌▌ ▅█▍▇▉▇▍ ▅█▄▇ ▌▇ ▊▉▋▌ ▋█▄▋▊▆ █▄▄▅▋ ▅▆▊▌▊▉▌▍█▌▊▇▄▉▍▍▅▊▄█▌▉▆█▋ ▌▄█▆
10 Months Ago
Update: Split various tick validation functions into smaller loops - Added a couple small extension utils to NativeList This helps isolate code that we'll be able to run as Burst jobs - there's a bit more to split Tests: Staging demo playback - got comparable results
10 Months Ago
Update: Adding last missing API - TickInterpolatorCache.TransformEntries - added tests to cover it Tests: ran unit tests
10 Months 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
10 Months 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
10 Months Ago
Bugfix: avoid writes past the end of the buffer Tests: ran unit tests
10 Months 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
10 Months Ago
Tests: Add more edge case testing - Testing 1 tick only - Testing up to capacity ticks Tests: ran unit tests
10 Months Ago
Bugfix: TickInterpolatorCache now properly handles "Reset" position - Fixed unit tests Tests: ran unit tests - all tests now pass
10 Months Ago
Tests: validate PlayerTickIterator in it's initial state Tests: ran unit tests
10 Months Ago
Clean: add a comment Tests: none, trivial change
10 Months 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
10 Months Ago
Update: made some caches stable across frames Tests: played back staging demo - no new errors and stats match expected
10 Months Ago
Clean: simplify call Tests: none, trivial change
10 Months Ago
Merge: from parallel_validatemove Tests: none
10 Months 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
10 Months Ago
Merge: from parallel_validatemove Tests: none, no conflicts
10 Months Ago
Merge: from parallel_validatemove Tests: none (resolved into dest version)
10 Months 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
10 Months Ago
Merge: from parallel_validatemove Tests: none, no conflicts
10 Months Ago
Clean: Lenght -> Length Tests: compiles in editor
10 Months 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
10 Months 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