userDaniel Pcancel

1,979 Commits over 488 Days - 0.17cph!

16 Days Ago
Merge: from main
16 Days Ago
Clean: fix formatting in Analytics.Azure.cs Most of file was offset with 2 tabs. Sorry to anyone who has conflicting changes in same file (hopefully no-one) Tests: editor compiles
16 Days Ago
Update: Analytics - track all entity spawn/destroy events after server initializes - change the format of these events to only send vital data - HackableLockedCrate no longer has it's own EntityCreated event Tests: logged analytics on Craggy - saw events being appended after server initialized
16 Days Ago
Merge: from server_occlusion_poppin - Reduce player poppin by making occlusion grid generation more conservative - Bumped occlusion version, will cause regeneration on next server boot Tests: visualized in editor, ran previously failed queries
16 Days Ago
Update: ServerOcclusion - only block occlusion cell if it's fully under terrain - bumped occlusion file version Previously we considered it was blocked if one of sample points was in terrain. This allows more occlusion queries to pass, which should reduce poppin. Tests: visualized new grid, ran previously failing query - they now pass
17 Days Ago
Merge: from hide_getinternalarrayunsafe - Replaces dangerous API with a safer, updates existing use cases Tests: unit tests
17 Days Ago
Update: replace invalid usage of GetInternalArrayUnsafe Tests: none, trivial change
17 Days Ago
Update: Hide List.GetInternalArrayUnsafe - introduce ListAsReadOnlySpanOf to help deal with casting up (since we don't have ReadOnlySpan<T>.CastUp<U>) - added simple unit tests Tests: ran unit tests
17 Days Ago
Merge: from analytics_v2_expose_telem - Fixes CLient crash when running analytics.tablestats or uploaderstats Tests: built standalone and ran the commands - no crash
17 Days Ago
▊▉▆█▋▌: ▇█▍▊ ▌▋▉▋▍▅▆▍▇▊▌▊▌▇▇▊▋▌▉▋▇▋ ▊█ ▅▉▍██▉▋▉▄ █▌▉▅▊▍▍▆▆▌▋ ▋▄▊▌▅ ▄▄█▌▅▇▄ ▅▅▊▇▆▌, ▉▋▌▆▉ ██▋▉▅ ▍▊█▄▍ ▌▊▄▌▄ ▆▇ █▆ ▊▌▅▌█▍ ▄▉▋█▋▅▌ █▉▆█ █▉▍ ▉▅▋▆▅▆█▉█▅ ▉▅▇▉ ▊▊▆▊▆▉▄▇▍. ▄▆▌▄▆: ▉▊▊▌▌ █▋█▅▌▋▆▉▉▄ ▉▍▊▋▆▌, ▌▍▌ ▅▍▌▆▆▊▍▇▆.▅▍▌█▊▇▌▌▅▉ - █▍ ▄▄▉▆ ▇▅▊▄▋█▋
18 Days Ago
Merge: from main
18 Days Ago
Merge: from spectate_dontfloodsnapshots - reduce potential delay when starting to spectate a far-away player Tests: flew around 2k procgen map, got to the other side of it then spectated player on the opposite end.
18 Days Ago
Merge: from main
18 Days Ago
Update: spectator's snapshot queue is cleared when switching between far-away targets This should speed up switching around on a server. Doesn't help if the network write queue is backed up Tests: on a 2k procgen map and fast noclip, flew around the island to load up the snapshot queue, then spectated on a player that's on the other side of the island. Observed player moving.
18 Days Ago
Undo: 135590 - ISubscriberStrategy.GatherSubscriptions outputs whether it has fully or partially gathered subscriptions After implementing throttling realized there's a better way(invalidate grid sbuscriptions for spectator) - thottling solves only half of problem Tests: editor compiles
19 Days Ago
Update: ISubscriberStrategy.GatherSubscriptions outputs whether it has fully or partially gathered subscriptions - all existing implementations report "full" gathers This feeds into whether we'll stop running UpdateSubscriptions or not. Will use this to throttle-and-prioritize cell streaming to spectators Tests: editor compiles
19 Days Ago
Merge: from networkpositiontick_reduce - Optim: buoys, containers, water-junkpiles and vines no longer always replicate their position. Reduces number of NetworkPositionTick invokes from 2309 down to 522 on 4.5k map Tests: interacted with each prefab type, observed up close and from afar
19 Days Ago
Update: codegen Tests: editor compiles
19 Days Ago
Merge: from main
19 Days Ago
Bugfix: profile.CountSyncMoveEntities - check if invoke handlers are not instantiated - Also add a total count Tests: used it while swinging from vines
19 Days Ago
Optim: VineSwingMountable no longer syncs positions by default Should save another 0.7ms Tests: Swung across multiple vines in playground_vineswinging, descended on one to ground
19 Days Ago
Optim: crate_underwater_* - only sync positions once freed Should save us 0.7ms on 4.5k server Tests: untied basic and advanced crates on Craggy and observed them raise up
19 Days Ago
Bugfix: disable Drop To Ground on spawnpoints for junkpile_water_* barrel spawns Some were incorrectly placed leading to barrel spawning on the ocean floor. Tests: spawned on craggy, inspected a bunch of junkpile_water_*, none had underwater barrels
19 Days Ago
Optim: junkpile_water_* - enable client interpolation and use InvokeHandler instead of InvokeHandlerFixedTime Fixed time handler fires off 10x more by default, and it would generate 3x more position tick messages than InvokeHandler. Will need validating on naval_update Tests: observed transofrm values of a junkpile in editor while close and at a distance - interpolation didn't throw it anywhere
19 Days Ago
Buildfix: remove stale debug code Tests: editor compiles
19 Days Ago
Optim: OceanWreckBuoy/-Small skips syncing position if there are no nearby players - set Sync Position to false by default - marking buoys to always interpolate (need to do the same to junkpiles_water) Tests: observed transform in editor from craggy and from nearby. Buoys didn't sink/fly off due to continual interpolation (need to double check what's stopping it)
20 Days Ago
Optim: set junkpile_water_a/b/c Sync Position to false It is now script controlled, and having it off by default saves allocating an action per entity Tests: observed transform in editor on craggy at spawn then when close
20 Days Ago
Optim: junkpile_water_a/b/c replicate positions only if player is in sight - also switched them to the fixed time invoke handler, since their positionsare ran per fixed update Tests: booted craggy, validated they weren't moving while I was on island. Flew close, observed them moving and checked in inspector that values change
20 Days Ago
Update: bring over jarryd's 124139 - BasePlayer.ToggleNetworkPositionTick Slightly different form - lets us save on the IsInvoking lookups, fixed a bug with fixed time callbacks Tests: booted on craggy, pushed a car, observed buoys and junkpile_water movement
20 Days Ago
Add: profile.CountSyncMoveEntities server var Reports number of "Sync Positions" on the server. Some entities don't get into saves, so this is the only way to see what's putting pressure on InvokeHandler Tests: ran it in editor on craggy
20 Days Ago
Bugfix(editor): if invoke throws, don't lose Profiler.EndSample There's bigger problems out there, but this was making profiling a bit annoying Tests: loaded playtest save and profiled it in editor
20 Days Ago
Update: Enable AnalyticsV2 by default Staging servers ran this for a couple days now and this'll switch over clients as well. Tests: none, trivial change
23 Days Ago
Merge: from save_viewer_extras - Save viewer can now filter for mobile(Sync Position) prefabs - It can also aggregate by prefab Tests: opened a save from the playtest
23 Days Ago
Update(editor): SaveViewer - adjust what we display if we're in aggregate mode or not Shows count in aggregate mode, otherwise shows ID and Parent ID Tests: opened a save from playtest
23 Days Ago
Update(editor): SaveViewer - sort aggregates in descending order by default Tests: viewed a save in aggregate mode
23 Days Ago
Update(editor): SaveViewer - add toggle to aggregate by prefab Tests: inspected aggregated entities from playtest save
23 Days Ago
Update(editor): SaveViewer - add a "SyncPos Only" toggle Need it to figure out what caused high counts of syncpos networkables on the server Tests: viewed a save from the playtest
23 Days Ago
Merge: from analytics_v2_expose_telem - Can view AnalyticsV2 stats via analytics.stats, analytics.tablestats and analytics.uploaderstats Tests: used above to check stats in editor
23 Days Ago
Buildfix: missing return path in NetworkReadEx Tests: ran "Test Compile Errors"
24 Days Ago
Merge: from main Needs codegen
24 Days Ago
Update: AnalyticsV2 - Azure uploader will update uploading client if endpoint settings change Tests: changed settings and checked with debugger
24 Days Ago
Clean: replace ClientVar + ServerVar with ConsoleVar Generates less commands, avoids duplication in console autocomplete Tests: ran stats command - it worked
24 Days Ago
Update: AnalyticsV2 - allow resetting stat tracking Tests: logged stats before and after reset
24 Days Ago
Update: AnalyticsV2 - expose stats via convars Available via analytics.stats, analytics.tablestats and analytics.uploaderstats Tests: enabled v2 analytics and ran above commands
24 Days Ago
Merge: from voice_when_invis_fixes - Voice chat is now heard by nearby invisible players and spectators Tests: tested voice replication between 2 players, when invis and when spectating. invis case also tested disconnect-reconnect while invis.
24 Days Ago
Update: allow invis players to listen to nearby voice - invis players are now tracked in BasePlayer.invisPlayers Tests: 2p on Craggy, 2nd player went invis, host tapped mic - replicated. 2nd player disconencted and reconnected, host tapped mic - replicated
24 Days Ago
Update: Spectators can listen to voice of spectated and nearby players - Spectators now exclude themselves from EntityGrid Tests: 2p on Craggy, flew away from the island, started spectating player on island and tapped the mic - it came through
25 Days Ago
Update: minor ServerProfiler function filtering adjustment - built from b90a83e5 Was annotating everything from SubGrid, instead of ignoring everything Tests: unit tests
26 Days Ago
Merge: from baseplayer_serverupdateparallel - Optimizes ServerOcclusion by reordering work and reducing number of pairs considered - Optimizes parallel snapshot send out by reducing Pool contention - General optims via reduced profiler instrumentation (new ServerProfiler.Core binaries) Tests: 2p session on craggy with teleporting around and various occlusion scenarios (invis, dead, normal occluded, in view)
26 Days Ago
Merge: from main