userDaniel Pcancel

1,897 Commits over 457 Days - 0.17cph!

Yesterday
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
Yesterday
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
Yesterday
Update(editor): SaveViewer - sort aggregates in descending order by default Tests: viewed a save in aggregate mode
Yesterday
Update(editor): SaveViewer - add toggle to aggregate by prefab Tests: inspected aggregated entities from playtest save
Yesterday
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
3 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
3 Days Ago
Buildfix: missing return path in NetworkReadEx Tests: ran "Test Compile Errors"
3 Days Ago
Merge: from main Needs codegen
3 Days Ago
Update: AnalyticsV2 - Azure uploader will update uploading client if endpoint settings change Tests: changed settings and checked with debugger
3 Days Ago
Clean: replace ClientVar + ServerVar with ConsoleVar Generates less commands, avoids duplication in console autocomplete Tests: ran stats command - it worked
3 Days Ago
Update: AnalyticsV2 - allow resetting stat tracking Tests: logged stats before and after reset
3 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
3 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.
3 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
3 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
4 Days Ago
Update: minor ServerProfiler function filtering adjustment - built from b90a83e5 Was annotating everything from SubGrid, instead of ignoring everything Tests: unit tests
5 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)
5 Days Ago
Merge: from main
5 Days Ago
Update: new ServerProfiler with more filters - Built on 276b03cf Excludes a bunch of BasePlayer, BaseEntity, BaseNetworkable light functions, Native calls to RakNet and EAC, StableCache iterators. Tests: booted in editor, took a snapshot of 10 frames
5 Days Ago
Optim: Set Pool<BufferStream> capacity to 32k (sum of NetRead and NetWrite caps) We end up eating up default capacity on busy servers(1.1k BufferStreams on 330p server), causing allocs. This should help avoid that. Tests: none, trivial change
5 Days Ago
Optim: UsePlayerTasks - pre-allocate NetWrites when sending snapshot queues This should reduce contention on the Pool<NetWrite>'s lock and let worker threads blast as fast as possible. Will need to revisit after measuring the pre-alloc overhead for main thread. Tests: On Craggy with UsePlayerUpdateJobs 2 flew away from island's network range then back - entities were where there have been before flying away.
5 Days Ago
Merge: from main
5 Days Ago
Merge: from spectating_disconnect_nre_fix - Bugfix for server NRE when spectating player disconnects Tests: 2p on Craggy, disconnected while spectating - no more NRE
5 Days Ago
Bugfix: stop spectating when disconnecting This cleans up cached spectators on spectated player's end, which avoids server NREs and leaks Tests: 2p on craggy, started spectating then disconnected - no NRE
5 Days Ago
Merge: from main - brings bugfix for player not seeing items on cargo ship(and other global networked entities) - new analytics mode (switched off) Tests: editor compiles, spawned cargoship on craggy and threw a rock on it - it replicated
5 Days Ago
Merge: from basepalyer_netgroup_interit_fix - Fixes cargoships(and other global entities) putting players into global network group which stops replication with "outside" world Tests: 2p session on Craggy, spawned a cargo ship and threw items, killed other player, tried spectating
5 Days Ago
Bugfix: stop player from inheriting parent's network group Unintentional change as part of baseplayer_vis_nre merge. This caused player to inherit global network group on cargoship, which stops replicating anything outside of it. Tests: 2p session on Craggy, spawned a cargo ship and threw items, killed other player, tried spectating
6 Days Ago
Merge: from analytics_queue_rewrite - Bugfix for missing session-start event from Client, invalid session-end event from Client, malformed json aggregation - Added support to edit upload intervals (tied to existing same server vars) - Adjusted uploaders for some tables to avoid trying to send to our backend Tests: unit tests + manual testing on Craggy (S+C mode) and Bootstrap (C only)
6 Days Ago
Merge: from main
6 Days Ago
▊▊▉▇▋▇: ▅▅▅▆▅█▊▌▉▊▉ - ▆▉▍▅▄▋ ▍█▆▇ ▆▉▉▋▄▊▇ ▆▊▉█ ▍▌▇▍▄▊▅▍▊▆▄▆▌▉▉▆▄ ▉▍▊▍ ▉▄▌▊ ▊▉▅▌▇▊ ▌▄▅ ▇▋▉▆▄▅-▋▉▊▅▆▆▊▅▉ █▆▊▋▍▉▇▋▉ ▆▇ ▄▍-▅▇▊ ▅▅▋ ▆▋▊▌█▌ ▌▇▌▍▉▇▍ ▇▊▇ ▄▍▄▅ ▊▍▍▄▍▊▄▋ ▇▇ █▄▅▌▍▋▌ █▆▌▄▅: ▉▌▍▍▇▋▇ ▋▆▋▄ ▄▅▇▌▉▌, ▋▌▄▄▉██▆▄ █▍▉▊ ▊▆▄▉█▄▄ ▄▇▆ █▉▄▋▄▄▋▊/▍▆▉█▄▍▄▍██▋
6 Days Ago
Update(editor): AnalyticsV2 - emit session start event This is to make validating analytics on the backend easier (as this helps to form a full session) Tests: with logging enabled observed session-start being fired before player_connect for server is sent
6 Days Ago
Update: AnalyticsV2 - add support for changing upload intervals - made RuntimeProfiler and TickLogger adjust their intervals Tests: enabled runtime profiler and changed interval - confirmed sent when expected
6 Days Ago
Update: AnalyticsV2 - restore gameplay_events upload interval Accidentally submitted while testing it yesterday Tests: none, trivial change
6 Days Ago
Bugfix: AnalyticsV2 - don't spam "appended 0 bytes" when logging is enabled Tests: none, trivial change
6 Days Ago
Bugfix: AnalyticsV2 - ensure events sent at shutdown have valid steam tickets Done by pumping steam event queue while analytics thread is shutting down Tests: unit tests and ran Client mode in editor
6 Days Ago
Bugfix: AnalyticsV2 - only recycle auth tickets if not consumed them - Added extra checks for early steam shutdowns Previously we would eagerly cancel tickets, which is not api-appropriate. Now only doing so if either an exception occured or we're in dry-run mode Tests: ran unit tests. Still can't catch why auth ticket is sometimes null on shutdown
9 Days Ago
Bugfix: AnalyticsV2 - fix invalid Json aggregation - logs are aggregated again to reduce spam This breaks azure bulk aggregation, but now the code structure is in place to support both Tests: ran unit tests
9 Days Ago
Bugfix: AnalyticsV2 - don't miss client-only initialization during bootstrap flow Tests: monitored client bootstrap analytics
9 Days Ago
Bugfix: AnalyticsV2 - skip client analytics if steam hasn't been started Tests: none, trivial change
9 Days Ago
Bugfix: AnalyticsV2 - Log and DryRun no longer skip accumulators and uploaders once changed As an extra, it got rid of a bunch of inheritance code Tests: ran unit tests and logged analytics in editor
9 Days Ago
Merge: from main
9 Days Ago
Update: UsePlayerTasks - ensure SendEntitySnapshotsWithChildren_AsyncState have equally sized batches Previously we counter players for batch limit (skipping it's hierarchy), but that could lead to lopsided unequal tasks Tests: couldn't test this one, but it's similar code to other places so should be gud
9 Days Ago
Optim: UseOcclusionV2 - ServerOcclusion caches unoccluded connections - removed couple redundant if checks This allows us to completelly skip faster-but-still-slow ShouldNetworkTo that have internal hash lookups in SendNetworkPositions - hoping it'll speed it up 50% Tests: ran in and out of occlusion on Craggy. disconnected to validate sleeper, then killed sleeper and reconnected - all works
9 Days Ago
Merge: from analytics_save - Adds a "save" event tracking when server creates a save Tests: triggered save in editor with logging
9 Days Ago
Update: add analytics save event Tests: ran an explicit save in editor
10 Days Ago
Update: add extra TODO for UseOcclusionV2 Tests: none, trivial change
10 Days Ago
Update: UseOcclusionV2 - propagate networkTime to OcclusionGetRecentlySeen Should be a smidge faster, but it's primarily to enable threading if we go that way. Also saves on profiler inhibiting the call (need to exclude it on the profiler side) Tests: none, trivial change
10 Days Ago
Clean: restructure UseOcclusionV2 code to make profiling easier Tests: compiles in editor
10 Days Ago
Clean: fix ShouldSkipServerOcclusSion typo English is hard Tests: editor compiles
10 Days Ago
Optim: UseOcclusionV2 - OcclusionFrameCache uses NetIDs instead of BasePlayer pairs This avoids ObjectEqualityComparer which has overhead because of unity-null checks Tests: none, trivial change