userDaniel Pcancel

2,590 Commits over 639 Days - 0.17cph!

4 Hours Ago
Update(tests): add unit test that validates StableObjectArray is in sync with TransformAccessArray Tests: ran the test - they're not, gotta fix it tomorrow
4 Hours Ago
Merge: from main
4 Hours Ago
Bugfix(editor): cleanup connected players before we shutdown server when stopping playing in editor Tests: started and stopped play mode
4 Hours Ago
Bugfix: if shorevector caching is disabled, then make sure we generate it Prev version skipped if it found the cache files on disk even though it didn't load them Tests: booted into craggy
4 Hours Ago
Bugfix: properly dispose of BasePlayer.PlayerCache - also invoke DisposeInternalState on assembly reload Tests: started and stopped playing on Craggy
5 Hours Ago
Clean: rename BasePlayer.StableIndex -> BasePlayer.ActivePlayerInd Eventually we'll have SleeperInd and etc, so doing this change early Tests: compile all modes pases
5 Hours Ago
Clean: delete PlayerCache and it's unit tests Tests: compiles
5 Hours Ago
Bugfix(editor): rengerate client-side shorevector cache if it's size changed Tests: connected to a server running craggy
6 Hours Ago
Merge: from main
6 Hours Ago
Update: StableObjectArray rewrite - version 2 - Replaces PlayerCache on the server in all the relevant paths Still need to do clientside projectiles stable cache before ripping it out Tests: booted into Craggy, ran around. Need to test 2p, but being stopped by some shore vector out of bounds access, hoping sync fixes it
Today
Bugfix: StableObjectArray.StableIndexLookup was returning unbounded array Tests: booted into craggy and ran around
Today
Update: useful bits from the first failed StableObjectArray conversion It ended up being too pervasive for my liking, going to try a simpler approach Tests: compiles as part of rewrite, but none otherwise
Today
Update: StableObjectArray now exposes stable index lookup map (needed for transform access array jobs) - moved NativeArrayEx to Facepunch.UnityEngine plugin, enabled unsafe code, added Unity.Collections dep Tests: none, code is in the middle of breaking rewrite
Today
Clean: dead test code removal Tests: compiles
Today
Update: conversion to StableObjectArray - step 2, WaterLevel tests Tests: ran WaterLevel unit and perf tests
Today
Update: conversion to StableObjectArray - step 1, AntiHack unit tests Tests: ran antihack unit and perf tests
Today
Update: implement StableObjectArray.Repack - update unit tests to better track consistency of the state - expand StressTest to validate Repack Going to start replacing StableObjectCache in code tomorrow. Also gotta stop unit test from allocating, it takes too long Tests: ran StableObjectArrayTests
Yesterday
Update(tests): add StressTest unit test Next up going to try to figure out how to support Repacking Tests: ran unit tests
Yesterday
New: StableObjectArray, a pending replacement for StableObjectCache - added basic tests, needs more Follows TransformAccessArray API, provides similar stability guarantees as StableObjectCache but requires to be interacted with differently. Tests: ran unit tests
2 Days Ago
Merge: from unitask_reliable_taskpool - Optim: UniTask internal pooling now reliably caches items Tests: unit and perf tests, ran around Craggy with Jobs 3
2 Days Ago
Optim: ensure UniTask.TaskPool reliably caches items - copied from repo at 88737fb5 Original version was written in wait-free fashion which permitted only 1 participant while failing others. Rewritten to be lock-free, which allows to guarantee pooling Tests: ran unit and perf tests. stuck breakpoints to confirm that repeated perf test invocation didn't have allocations. ran around craggy with jobs 3
3 Days Ago
Merge: from remove_netgroup_prealloc - Optim: NetGroup objects are now lazy allocated, saves 150MB Tests: ran unit tests, ran around on craggy
3 Days Ago
Update: cleanup ClientVisibilityProvider when disconnecting from the server Tests: disconencted from local server
3 Days Ago
Merge: from main
3 Days Ago
Update: dispose netgroups when NetVisGrid gets disabled Tests: booted into craggy and stopped - no errors
3 Days Ago
Clean: remove Provider.Init method Tests: ran UpdateSubscriptionConsistency test, booted into craggy
3 Days Ago
Optim: Get rid of NetGroup pre-allocation, use thread-safe lazy allocation Comparing memory snapshots, we go from 2.1mil NetGroups down to 131, saving 140MB Tests: booted to Craggy and ran around. ran UpdateSubscriptionsConsistency unit test.
3 Days Ago
Clean: move group initialization from PopulateCells to GetGroup Tests: ran around on craggy
3 Days Ago
Clean: remove Visibility.Manager.groups - also remove all provider == null checks Tests: compiles
3 Days Ago
Update: add ClientVisibilityProvider - mostly a dud Provider, most methods do nothing - Upodated all places to use ClientVisibilityProvider instead of null This allows to remove groups from Network.Visiblity.Manager Tests: booted into craggy, ran GameTraceTests
3 Days Ago
Update: instead of iterating all netgroups, add Provider.ForEach(layer, callback) method - get rid of Visibility.Manager.Groups accessor This removes public access to groups dictionary, so almost there to remove it Tests: booted to craggy, opened deep sea and ran deepsea.printentitycount
3 Days Ago
Update: Visibility.Provider now can create network groups in a thread-safe fashion - organized hardcoded groups into their own collection - Network.Visibility.Manager now defers to provider's GetGroup and TryGetGroup Not sure if I want to support NetworkVisibilityGrid on CLIENT or not, but will try to clean it up in a bit Tests: Booted and ran around on craggy. compiled for all modes separately
6 Days Ago
Merge: from useplayerupdatejobs_purge - Clean: Removal of UsePlayerUpdateJobs 0 and 1 code - Optim: RelationshipManager now uses cached server occlusion results instead of running new ones - Bugfix: stop NPCs/Bots writing tick history, corrupting internal memory Tests: booted a server from a save and connected to it
6 Days Ago
Merge: from main
6 Days Ago
Bugfix: avoid invalid tick transformation from NPCs/bots that would corrupt array header - added an assert to GetPlayerTickIterator, only place where it's not checked by default Tests: booted a standalone server with a save - was able to connect and run around
6 Days Ago
Update: replace all unsafe usage with spans, should throw if I go out of bounds Tests: compiles
6 Days Ago
Rollback the rollback
6 Days Ago
Merge: from main
6 Days Ago
Subtract: roll back 148302 - merge from usepalyerupdatejobs_purge Release servers are crashing (but debug not). Will chase up next week
6 Days Ago
Merge: from useplayerupdatejobs_purge - Clean: Removal of UsePlayerUpdateJobs 0 and 1 code - Optim: RelationshipManager now uses cached server occlusion results instead of running new ones Tests: unit tests + ran around on craggy, used heli, zipline, swam
6 Days Ago
Merge: from main
6 Days Ago
Clean: remove dead using statements Tests: none, trivial change
6 Days Ago
Update(tests): adding TickInterpolatorCache tests - added overloads to accept index directly instead of entire baseplayer Tests: ran unit tests
6 Days Ago
Clean: nuke TickInterpolator We lose consistency unit test, so i'll add a couple basic ones in next change Tests: ran AH unit tests
6 Days Ago
Clean: minor variable replacements in TickInterpolatorCache Tests: none
6 Days Ago
Clean: replace all usages of TickInterpolator with TickInterpolatorCache in AntiHack Tests: ran AH unit tests
6 Days Ago
Clean: remove all uses of TickInterpolator in BasePlayer logic Tests: compiles
6 Days Ago
Clean: update UsePlayerUpdateJobs servervar description with a new min level - ran codegen Tests: compiles
6 Days Ago
Clean: remove all ConVar.Server.UsePlayerUpdateJobs > 0 checks Tests: compiles
6 Days Ago
Clean: remove TriggerParent.UsePlayerV2Shortcuts servervar Tests: compiles