userDaniel Pcancel

2,928 Commits over 730 Days - 0.17cph!

16 Minutes Ago
Update(tests): patch up CoalingTower.unloadingBounds for TestMTSave Tests: TestMTSave(CoalingTower) passes
26 Minutes Ago
Update(tests): do minimum initialization for IOEntities Allows FogMachine and StrobeLight to pass tests Tests: ran TestMTSave, these 2 cases pass
29 Minutes Ago
Bugfix(tests): exclude abstract BaseEntities from test cases Tests: ran unit tests
39 Minutes Ago
Bugfix(tests): bypass ferry error checks when initializing during unit test Can be fixed properly, but don't think we need it right now Tests: ran TestMTSave(NexusFerry) - it passes
55 Minutes Ago
Bugfix: bypass marker spawning when unit testing Unrelated blocker to MT saving test Tests: Ran TestMTSave(NexusIsland), now passes
1 Hour Ago
Optim: avoid struct copy in ExtractTransformAccess, just reinterpet the pointer shrinks asm to 8 instructions from 40+ Tests: ran TransformEx unit tests
2 Hours Ago
Merge: from main
3 Hours Ago
Merge: from remove_jobs2 - Bugfix for exceptions when server gets more than 32 players Tests: compiles
3 Hours Ago
Bugfix: expand TickDeltaTime & TickNeedsFinalizing server state arrays as players join Prevents NRE when server gets >32 players - missed this during rewrite Tests: compiles
3 Hours Ago
Merge: from main
3 Days Ago
Update: ensure BaseEntities with networkEntityScale can be saved in MT - added GetLocalScaleMT + unit tests - increased TestMTSave(BaseEntity) coverage Tests: ran unit tests - 219 pass/425 fail
3 Days Ago
Bugfix(tests): rewrite test proto comparison to use serialized buffers Was naive to hope NUnit would fall back to reflection-based Equals for objects. Tests: ran TestMTSave(BaseEntity) - it passes (though there's 1 branch that's not covered, gotta fix)
3 Days Ago
Update: add GetNetworkTime(ThreadSafeTime) overload Going to use it to gradually convert entity saving code (instead of modifying all 40 callsites from the get go) Tests: ran unit test for BaseEntity - no longer complains about scripting API, but thinks outputs differ
3 Days Ago
Update: Convert BaseNetworkable.GetNetworkPosition/Rot to use GetLocalPosMT/RotMT - every BaseEntity now caches it's TransformHandle on spawn Only active when UsePlayerJobs >= 4 Tests: ran unit tests (now fails further). spawned a boat on craggy and sailed for a bit - no replication issues.
3 Days Ago
Update: Implement GetLocalPosMT and GetLocalRotMT that can bypass unity scripting restrictions - added unit tests These are dangerous and can only be used if it's known that there's no other overlap with transform hierarchy changes. WIll be slower than TransformHandle read in editor/staging, but should be similarly fast in release Tests: ran unit tests
3 Days Ago
Update: cache Time values into ThreadSafeTime so we can avoid unity api calls - replaced Time.frameCount read in BaseNetworkable BaseNetworkable can now save, now the rest of BaseEntity Tests: ran TestMTSave(BaseEntity) - still fails, but now further
3 Days Ago
New(tests): BaseNetworkableTests.TestMTSave - saves each subclass of BaseNetworkable twice on thread pool, compares results Tests: ran all 644 cases, all fail, picks up scripting API asserts as hoped
4 Days Ago
Merge: from remove_jobs2 - Removal of UsePlayerUpdateJobs 2 supporting code, setting it lower will run at least mode 3 - Bugfix for potentially invalid buffer usage when fetching WaterInfos - Moved more BasePlayer state to NativeArrays Tests: ran unit tests, ran around on craggy
4 Days Ago
Update: Codegen Tests: compiles
4 Days Ago
Clean: pass around ReadOnly instead of mutable collection where possible Tests: compiles
4 Days Ago
Merge: from main
4 Days Ago
Bugfix(tests): make sure PerfIsNoClipping properly cleans up spawned gameobjects - also cleaned up some leftover deltaTime arrays in tests This was messing up tests further in the queue Tests: ran AH perf and unit tests
5 Days Ago
Bugfix: fix out of bounds write Tests: ran unit test combination that previously failed - now passes
5 Days Ago
Clean: remove AntiHack.DeltaTimes persistent buffer Was used to cache tick times, but now we cache it in PlayerStates Tests: ran AH perf and unit tests - stumbled on an unrelated(I think? suspicious) bug
5 Days Ago
Update: move tickDeltaTime and tickNeedsFinalizing into it's own state arrays Cleans a stale TODO Tests: booted craggy and ran around
5 Days Ago
Bugfix(tests): remove test assertion that can sporadically fail Since we run some checks in parallel, some state results are unreliable Tests: ran unit tests as a batch and each in isolation
5 Days Ago
Bugfix(tests): ensure env volumes get cleaned between TestIsFlyingConsistency runs Found a test that fails when run in isolation Tests: ran unit tests
5 Days Ago
Bugfix(tests): use test state caches for PlayerState Fixes failures from previous change. Spotted a bug that should cause a failure, yet it passes somehow - will investigate next Tests: ran AH perf and unit tests
5 Days Ago
Update: move generic AH state from BasePlayer to AH.PlayerState struct Tests: ran AH tests, perf tests failing (will fix next)
5 Days Ago
Bugfix: add missing reset call for noclip states - also minor refactor Tests: ran unit tests
5 Days Ago
Clean: minor refactor - remove dead prop - wrap unparentTime in prep for moving to it's own state array Tests: compiles
5 Days Ago
Bugfix(tests): use passed in array instead of global static when checking overlap with player Same bug as before but on a batched path - guess I was sleep deprived yesterday. Tests: ran all AH perf and unit tests - they pass
5 Days Ago
Bugfix(tests): use correct array when checking overlap with other player Fixes PerfIsFlying tests, gotta fix the batched now Tests: ran perf + unit tests
5 Days Ago
Clean: move noclip state from BasePlayer to AntiHack.PlayerNoclipState Tests: ran all AH tests, unit tests pass but perf tests fail (for flying checks, will fix next)
5 Days Ago
Clean: move IsNoClipping code to unit tests Tests: compiles
6 Days Ago
Update: ensure PlayerPos/LocalPos/Rot/... caches are initialized to accurate values when player connects Tests: none, trivial change
6 Days Ago
Clean: minor refactors - codegen Tests: none, trivial changes
6 Days Ago
Clean: remove last Jobs 2 code and branches Tests: compiles
6 Days Ago
Clean: remove all speed and flyhack state fields on BasePlayer, rely on AH counterparts Tests: ran unit tests
6 Days Ago
Clean: use AH states in unit test logic Eliminates a chunk of BasePlayer AH field usage, can remove them next Tests: ran unit tests
6 Days Ago
Clean: rewrite internal unit test methods to use PlayerServerState struct Done in prep to switch to custom AH states from Jobs 3 Tests: ran unit tests
6 Days Ago
Clean: got rid of Jobs 2 branches in AntiHack code - also moved serial IsSpeeding and IsFlying from AntiHack to Test.AntiHackTestsSetup Keeping them so that we can still use those to validate batched logic Tests: ran unit tests
6 Days Ago
Clean: remove BasePlayer.UpdateSubscriptions, it was only used in unit tests - fix TestPlayer.UpdateSubscriptionsConsistency unit test Tests: ran unit test
6 Days Ago
Clean: initial pass of removal Jobs 2 code - removed hand-rolled async state machines - removed all code dependent on !UseUniTasks Tests: compiles
6 Days Ago
Merge: from culling_falsepos_improve - Update: restore culling.debugshowstats functionality Tests: built debug client standalone, used the command in editor
6 Days Ago
Update: replace editor GUIStyle with default one to allow culling.debugshowstats to work - remove UNITY_EDITOR defines Tests: built debug client standalone
7 Days Ago
Bugfix: ignore set calls if occlusionculling instance hasn't been created yet Tests: compiles
7 Days Ago
Merge: from culling_falsepos_improv - Bugfix for NRE blocking connection to the server Tests: none, trivial change
7 Days Ago
Merge: from culling_falsepos_improv - Update(debug): added a bunch of editor only debug tools to be available in standalone, in culling clientvar group - Update(debug): improved output of some of these tools Tests: used these tools on craggy and apartment
7 Days Ago
Merge: from main