userDaniel Pcancel

2,404 Commits over 608 Days - 0.16cph!

14 Days Ago
Clean: simplify TestNoClipConsistency unit test Tests: ran updated unit test
14 Days Ago
Merge: from spectate_stay_after_dc - Bugfix for disconnecting players staying standing with UsePlayerUpdateJobs 2 Tests: spectated disconnecting server
14 Days Ago
Bugfix: ServerOcclusionParallel(Jobs 2) - when spectator is hovering in a net group cell, use that cell's occlusion group As the spectated player disconnected, we would stop populating the occlusion results cache, thus leaving spectator in a frozen-world state Tests: on craggy with Jobs 2 - spectated a player that disconnected, was able to see them sleep. Did same from outside network range.
14 Days Ago
Merge: from main
14 Days Ago
Bugfix: uncomment tickState caching Left it commented because I thought it would help with unit test validation, but it's completelly unrelated to my unit tests. Tests: on Craggy tried to sprint with UsePlayerUpdateJobs 0
14 Days Ago
Update(tests): cover all speedhack_protection levels in tests Tests: ran unit tests
15 Days Ago
Update: expand isspeeding test coverage by generating index permutations Revealed a bunch of false-positive access violations, fixed by sprinkling NativeDisableParallelForRestriction (hate it) Tests: ran unit tests
15 Days Ago
Update: add a couple more test positions for unit tests Tests: tests pass
15 Days Ago
Update: move normal calculation logic to HeightMapQueryStructure - Give couple methods a rename Tests: ran unit tests
15 Days Ago
Bugfix: basic arespeeding unit tests now pass - use the right interpolators for IsSpeeding - add overloads to TerrainHeightMap.GetNormalsIndirect and antihack specific jobs to accept deferred arrays - make IsSpeeding work on CachedState Tests: ran unit tests
15 Days Ago
Update: add basic consistency unit tests for AntiHack.IsSpeeding and AreSpeeding Currently fail, as I forgot to adjust the IsSpeeding logic after state cache changes. Tests: ran unit tests
18 Days Ago
Update: shifting job dependency downstream Tests: none, trivial change
18 Days Ago
Update: added AntiHack.AreSpeeding - (almost) fully jobbified version of IsSpeeding Only active with UsePlayerUpdateJobs 3. Needs unit tests, will do that later. Tests: booted on craggy with UsePlayerUpdateJobs 3 and ran around.
18 Days Ago
Buildfix: type missmatch Tests: editor compiles
18 Days Ago
Update: add BasePlayerJobs.CalcPlayerSpeedJob Tests: none
18 Days Ago
Update: add ScatterValueToJob utility job Tests: none
18 Days Ago
Update: add TerrainHeightMap.GetNormalsIndirect Tests: none
18 Days Ago
Buildfix: fix up missed renames Tests: unity compiles
18 Days Ago
Update: AntiHack now track it's own persistent cache of player states - base player internals redirect to the cache when jobs 3 is set Gets synced when player enters and leaves player cache (even if they're disconnecting). This allows us to change jobs level without mesing up player state. Tests: none, WIP
18 Days Ago
Update: Gather more player state for Jobs3 work - rewrite how we add to/remove from PlayerCache to add custom handling for specific systems (needed for AntiHack) Tests: none
19 Days Ago
Merge: from optim_jobs2_builddepchains - Optim: UsePlayerUpdateJobs2 - BuildDependencyChains is now 40%+ faster and scales better Tests: unit tests, loaded into Craggy, loaded into 2.5k procgen
19 Days Ago
Merge: from main
19 Days Ago
Update(tests): adding Perf_BuildSnapshotDependencyChains Basic test churning throuhg 1 snapshot queue of 1k entities. Mostly shallow hierarchies are fast (20% parented -> 0.15ms), but dense hierarchies are slower(200% parented -> 0.6ms). Tests: ran perf test
19 Days Ago
Update(tests): add BuildSnapshotDependencyChains unit tests - DummyServer now automatically cleans up spawned entities in CleanTestState Tests: ran unit tests
19 Days Ago
Clean: refactor some of unit tests - take out DummyServer and move bot, player creation logic into it - move out Measuring utils to it's own file Tests: ran occlusiongroup tests, all pass
19 Days Ago
Optim: Jobs 2 - rewrite BuildSnapshotDependencyChains - fix a bug that caused more snapshots to be sent than necessary (causing massive inflation) - add a couple fast paths, rewrote it to be a single-pass algo - reduced number of pooled lists usage Need to write unit tests for this Tests: with useplayerupdatejobs 2 set from start, loaded craggy and 2.5k procgen world in editor, visited ferry terminal - didn't see anything missing, npcs had weapons and were shooting
19 Days Ago
Merge: from serverprofiler_disable_memstates - Update: added extra safety try-finally Tests: none, trivial change
19 Days Ago
Update: missed an extra try-finally in perfsnapshot_stream Tests: none, trivial change
19 Days Ago
Merge: from main
19 Days Ago
Merge: from serverprofiler_disable_memstates - Bugfix for running multiple capture commands without waiting for completion of initial - Bugfix for memstats parsing exception (disabled memstats recording) Tests: couple 128mb perfsnapshot_stream in editor
19 Days Ago
Bugfix: perfsnapshot/_stream - set exportDone to false when starting recording - wrapped inner task logic into a try-finally to ensure exportDone latch is released Well this is a derp up, the safety latch was in place for a year but never worked because I never engaged it. Whoops. Tests: done perfsnapshot_stream 128mb as another one is exporting - no crash, got message
19 Days Ago
Update: ServerProfiler.Core - disable system memory tracking - release binaries built from 25d14ef0 Its too unstable and overengineered, will rework later Tests: perfsnapshot_stream 128mb of data - no system memory tracks in json
19 Days Ago
Merge: from tracespheres_optim - Bugfix for exceptions when shooting Tests: shot the ak on Craggy in editor
19 Days Ago
Bugfix: VerifyRays/Spheres - early out if passed empty command set Fixes exceptions when shooting Tests: shot ak on Craggy in editor
19 Days Ago
Merge: from main
20 Days Ago
Merge: from fix_sortdeferred_race - Bugfix for sorting of hits potentially running in a race with previously scheduled jobs Tests: unit tests
20 Days Ago
Optim: merge count and sort jobs into one Tests: unit tests
20 Days Ago
Bugfix: GamePhysics.SortDeferred - respect dependsOn handle param Tests: ran unit tests - all pass
20 Days Ago
Merge: from spectate_stay_after_dc - Update: when spectating a player that disconnects, the client starts orbiting their last position. Third-Person is the only valid camera mode in that situation Tests: spectated a player that disconnected - was able to look around.
20 Days Ago
Merge: from main
20 Days Ago
Update: client now hovers last spectated player's position in third-person mode when spectated player disconnects/gets nuked Tests: spectated player that disconnected - started orbiting. spectated as only player on server - orbiting original position (as before)
20 Days Ago
Update: when spectated player disconnects, stay spectating above their player Don't like how the logic is tied to the player/sleeper, need to improve on the clientside Tests: spectated player, then that player disconnected - stayed in an area
21 Days Ago
Merge: from tracespheres_optim - Optim: GamePhysics.TraceSpheres and TraceSpheresUnordered are now faster at 32 or more spherecasts (previously started scaling at slightly more than 128) Tests: unit tests
21 Days Ago
Merge: from tracespheres_optim - Optim: GamePhysics.TraceSpheres and TraceSpheresUnordered are now faster at 32 or more spherecasts (previously started scaling at slightly more than 128) Tests: unit tests
21 Days Ago
Clean: remove hacky testing code Tests: none, trivial change
21 Days Ago
Merge: from main
21 Days Ago
Optim: GamePhysics.Trace - replace sort with a serial scan - added unit tests and perf tests In existing perf tests scene complexity is not enough, but expecting to be a minor improvement in real world. Tests: unit tests
21 Days Ago
Merge: from main
22 Days Ago
Optim: replicate TraceRays optims to TraceSpheres/-Unordered TraceSpheres now scales better and earlier than it's serial counterpart: * TraceSphereUnordered vs TraceSpheresUnordered: 128 - 0.57ms vs 0.3ms; 1024 - 5.1ms vs 1.38ms; 8196 - 43ms vs 9.9ms * TraceSphere vs TraceSpheres: 128 - 0.64ms vs 0.44ms; 1024 - 5.6ms vs 2.2ms; 2048 - 11ms vs 4ms Tests: unit tests
22 Days Ago
Bugfix: veeeeery rare out of bounds access when Unity returns invalid hit Tests: none, don't have a unit test for that