userDaniel Pcancel
reporust_rebootcancel

2,624 Commits over 639 Days - 0.17cph!

Today
Merge: from createcorpse_triggerparent_nre - Bugfix for TriggerParent not cleaning themselves up if a corpse forces it's way just before volume is destroyed Tests: ran auto tests
Today
Bugfix: Ensure TriggerParent properly tracks forced corpse Corpses forcefully inherit trigger volumes, which doesn't properly initialize internal contents, leading to skipped cleanup when volume is destroyed. Rare bug in the wild, but consistent in auto tests. Tests: ran all PlayerMountedToArmoredVehicle_PlayerNotTargeted auto tests
Today
Merge: from stableobjectarray_remove_dirty - Optim: maintain synchronized order of dependent data as we remove from StableObjectCache Tests: unit tests and a couple 2p sessions on Craggy with disconnects, shooting
Today
Update: codegen Tests: none
Today
Bugfix: fix invalid index assigned to a projectile on projectile removal from cache Copy paste mistake, happy we got unit tests Tests: ran ProjectileTests.TestConsistency - it passes
Today
Merge: from main
Today
Clean: consolidate player-related state cache growth to AddToPlayerCache Tests: compiles
Today
Clean: make the code clearer around maintianing packed order Using better names for vars, easier to understand ifs and a safety assert Tests: compiles
Today
Update(tests): add TestMovePlayer - bugfix for missing to copy an extra tick/reset point in TickInterpolatorCache.MovePlayer - added more docs to StableObjectArray Tests: ran new unit test
Today
Optim: replace BasePlayer.SparsePlayers with PlayerCache.Objects now that indices always match packed order Tests: 2p on Craggy with disconnects of 2nd player
Yesterday
Update: repack player cache and dependent state as players are removed Should allow us to clean up a bit of indirection and optimize things further Tests: 2p session on Craggy with disconnects and being kicked for flying under terrain
Yesterday
Clean: projectiles now internally iterate over their cache rather than instance list Tests: unit tests, 2p on craggy
Yesterday
Update: ensure projectile stable indices are packed This simplifies code and opens up the door for better cache utilisation & simd processing, but currently savings are on the noise level Tests: unit tests + shot around player with 2 clients connected
Yesterday
Clean: cache span from ActiveTriggers.Objects Tests: none, trivial change
Yesterday
Merge: from main
Yesterday
Merge: from terrainkick_nre_fix - Bugfix for NREs caused by kicking players(invalidating iterators) while looping over StableObjectArray Tests: kicked self through clipping in terrain - no NREs
Yesterday
Merge: from main
Yesterday
Optim: Avoid double indirection when looking up active triggers - enabled by use of invalidating RemoveAtSwapback TriggerParent.StableIndex is only const during a frame, it now can change between frames Tests: built a 3-piece boat with a ladder, jumped around it
2 Days Ago
Clean: removed FilterInvalidPlayers now that I've validated that all kicks were grouped at end - cleaned up comments that pointed out kick locations Tests: none, trivial change
2 Days Ago
Bugfix: avoid NRE after kicking a player while iterating over a player cache - consolidated all kicks in ServerUpdateParallel to end of the method Tests: got kicked for terrain violations, no NRE
2 Days Ago
Update: StableObjectArray.RemoveAtSwapback can now optionally invalidate stable indices - added unit tests Should help us maintain packed state of dependent arrays - will start converting current use cases next. Tests: ran unit tests
3 Days Ago
Update: replace hardcoded constant with GamePhysics.DefaultMaxResultsPerQuery (same value) - also submitting missing meta file Tests: compiles
5 Days Ago
Merge: from fix_boat_no_sail - Bugfix for boats and vehicles getting stuck in open areas, effects not playing, building appearing slow Tests: unit and perf tests, built and sailed a boat on craggy
5 Days Ago
Bugfix: fix player boats getting stuck while sailing (and other weird bugs) - Network subscription now creates discovered cells Was caused by overly aggressive network group lazy creation. If they are created within player subscription range, player doesn't get subscribed to them automatically, which caused all kinds of issues. This'll hurt perf over time, but no worse than current perf on Release - I'll optimize this later Tests: unit tests, perf tests and built a boat and sailed across craggy
6 Days Ago
Merge: from stableobjectcache_taa_nulls - Update: Replaced StableObjectCache with StableObjectArray, updated TriggerParent, Projectiel batching and server player processing to use it - Bugfix: fix for "Adding null to TransformAccessArray" warning Tests: unit tests, 2p session on Craggy with jumping on boat, shooting, conencting-disconnecting
6 Days Ago
Merge: from main
6 Days Ago
Update(tests): add validation of StableIndexLookup to StressTest Tests: ran unit tests
6 Days Ago
Clean: delete StableObjectCache, no longer in use - fixed up const references that I missed Tests: compiles
6 Days Ago
Update: add missing NativeDisableParallelForRestriction to BasePlayerJobs.RecacheTransforms Tests: none, trivial change
6 Days Ago
Update: rewrite projectile batching to use StableObjectArray instead of StableObjectCache - internal statics are now initialized and cleaned up on client connect/disconenct (+ scripts reload) - had to sprinkle container access checks due to indirection This was the last user of StableObjectCache, will rip it out next Tests: ran unit tests, 2p craggy test with shooting (confirmed fly by effects, ricoches still happen)
6 Days Ago
Update: rewriten TriggerParent to use StableObjectArray instead of StableArrayCache - ran codegen - made DisposeInternalState run on assembly reload Tests: built a boat, jumped on off - no issues (except the boat not moving, but a separate bug)
6 Days Ago
Bugfix: ensure PlayerTransformsAccess stays in sync with PlayerCache when players are removed - also removed safety if as it's obsolete after recent change to cleanup player before shutting down the server Tests: had 2nd client connect-disconnect to me on Craggy (though technically it's not enough, I'm relying on unit test logic)
6 Days Ago
Update: StableObjectArray gets GetIndexForSyncRemove to support removing from linked collections - used it to fix TestTransformAccessArraySync Need to update actual game code since it's bugged Tests: ran unit test
6 Days Ago
Merge: from main
6 Days 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
6 Days Ago
Merge: from main
6 Days Ago
Bugfix(editor): cleanup connected players before we shutdown server when stopping playing in editor Tests: started and stopped play mode
6 Days 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
6 Days Ago
Bugfix: properly dispose of BasePlayer.PlayerCache - also invoke DisposeInternalState on assembly reload Tests: started and stopped playing on Craggy
6 Days Ago
Clean: rename BasePlayer.StableIndex -> BasePlayer.ActivePlayerInd Eventually we'll have SleeperInd and etc, so doing this change early Tests: compile all modes pases
6 Days Ago
Clean: delete PlayerCache and it's unit tests Tests: compiles
6 Days Ago
Bugfix(editor): rengerate client-side shorevector cache if it's size changed Tests: connected to a server running craggy
7 Days Ago
Merge: from main
7 Days 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
7 Days Ago
Bugfix: StableObjectArray.StableIndexLookup was returning unbounded array Tests: booted into craggy and ran around
7 Days Ago
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
7 Days Ago
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
7 Days Ago
Clean: dead test code removal Tests: compiles
7 Days Ago
Update: conversion to StableObjectArray - step 2, WaterLevel tests Tests: ran WaterLevel unit and perf tests
7 Days Ago
Update: conversion to StableObjectArray - step 1, AntiHack unit tests Tests: ran antihack unit and perf tests