userDaniel Pcancel

923 Commits over 243 Days - 0.16cph!

6 Months Ago
Update: Bycicle drops all sound resources when sound definition changes - Previously it tried to manage lifetime of modulators internally, but since we can pool it'll happen automatically now. Tests: rode the bike with jumping off during different moments. Noclipped away and back, redid same actions - all stable.
6 Months Ago
Update: DPV stops all sounds when no longer simulating In theory, there were edge cases where previously it was possible that some sounds would not be cleaned up. Tests: rode the DPV, jumped off at various points, picked it up and redeployed. Noclipped around the area
6 Months Ago
Update: MovementSounds releases sound resources on disable - Also got rid of IOnParentDestroying implementation - it's handled by OnDisable now Tests: ran in water. Killed self mid run to test onDisable - all good
6 Months Ago
Update: Minigun and Fishing Rod drop their sounds on destroy/cleanup Tests: Spooled up and fired the minigun with switching in between. Fished with switching at various stages(holding, throwing, fish catching, fish pulling).
6 Months Ago
Bugfix: Ignore sound fadeout requests on retired sounds Because sound is a shared-ownership resource and we have scenarios where owners don't know that the sound sometimes has been retired, we need to be a bit more permissive with existing cleanup logic. Tests: Had a fish bite with the fishing rod, started pulling then switched over to a different item, then tried fishing again - with sound pooling this would sometimes throw, but not anymore. Confirmed with audio logs that bad scenario did happen but didn't fail.
6 Months Ago
Bugfix: AmbienceEmitter now drops occlusion modulator on fade-out Tests: noclipped around Craggy with audio recycling logs on - no NREs
6 Months Ago
Merge: from item_pooling Fixes NRE when saving a player that was killed while crafting items and returned items would stack with existing inventory items Tests: crafted low grade fuel with 1 extra fat in the inventory, killed before finishing the craft and saved the session on the server - no NRE
6 Months Ago
Merge: from main Tests: editor build
6 Months Ago
Clean: remove CancelTask ReturnItems param Param was always set to true. Tests: Crafted to completion and with cancellation (voluntary + killing)
6 Months Ago
Update: rewrite the same bugfix a bit better - More explicitly explained why it's needed Tests: none, trivial change
6 Months Ago
Bugfix: Release items that we've moved from crafting tasks back to inventory. Tests: Crafted low grade fuel with 4 fat in inventory, then killed self mid-craft and saved - no NRE
6 Months Ago
Update: GameSetup can load save with double-quotes Makes it friendly with explorer's "copy as path" action. Tests: loaded a procedural save
6 Months Ago
Merge: from main Tests: none, trivial changes
6 Months Ago
Update: Implementing retiring of SoundModifier Tests: none, trivial change
6 Months Ago
Optim: Recycle footsteps earlier Previously sound would get recycled when the effect would be destroyed(1.7s), but it happens much later(instead of 0.5s) Tests: Ran around on craggy - coast, grasslands, water.
6 Months Ago
Update: Log Sound stop-and-recycle requests - Log level 3 for Audio Tests: observed logs when running around (footsteps)
6 Months Ago
Update: updating audio debug output to make cross-referencing easier Tests: Rode a zipline on Craggy, was able to track the looping sound
6 Months Ago
Bugfix: Zipline stops playing audio when reaching the end This avoids trying to fade out a sound that was already recycled due GO being destroyed by server. Haven't found a better solution. Tests: on Craggy with sound pooling enabled, used the zipline twice, then noclipped out in the distance, and rode the zipline twice - no NREs. Logs also didn't show double-retire
6 Months Ago
Update: rewrote the comment Forgot to press save in VS before submitting. Tests: none, trivial change
6 Months Ago
Update: Allow use of client-side commands for GameSetup in Editor context This simplifies some testing scenarios. Tests: Boted craggy with a couple client-only debug commands - they changed as required
6 Months Ago
Update: add sound logging under audio category Tests: Ran in editor, confirmed output
6 Months Ago
Merge: from main Tests: built in editor
6 Months Ago
Merge: from soundmodulator_leak Fixing zipline NRE that my previous change caused. When not pooling, retail the modulators instead of trying to recreate them, since some scripts don't clear them properly. Tests: rode the zipline twice on Craggy, then noclipped around the island to destroy sounds, then rode the zipline twice again - no NREs
6 Months Ago
Bugfix: don't clear modulators when not pooling, fixes zipline NRE This was caused by my previous fix Tests: rode the zipline twice on Craggy, then noclipped away from the island, and rode the zipline again - no NREs
6 Months Ago
Merge: from soundmodulator_leak Fixing an assert flood on client by hiding a check behind soundpooling switch - this restores original wonky behavior. Tests: On Craggy, flew around the island with noclip to trigger spawning/despawning of sound entities - didn't see any assertions.
6 Months Ago
Bugfix: when sound pooling is disabled, don't validate if we own the removed modulator Originally, it didn't check but tried to return to the pool - this change restores this aspect. Tests: noclipped on craggy across the entire world to cause entitiy destruction - no asserts
6 Months Ago
Update: Audio RPC codegen Missed in my previous commit - support for audio.enablesoundpooling. Tests: enabled the switch at runtime, produced assertions (expected)
6 Months Ago
Update: RPC Codegen Somehow missed it despite generating previously. Tests: validated that I can dynamically switch it(even if it triggers my asserts - it's intentional)
6 Months Ago
Merge: from soundmodulator_leak Workarounds the AudioAmbience NREs by disabling pooling (audio.enablesoundpooling). Tests: on Craggy shot up 20 scientists, rode a horse, cut down trees, placed 100 barricades - no uptick in pooling of sound modulators in telemetry. No old NREs triggered.
6 Months Ago
Merge: from main Tests: none
6 Months Ago
Update: Add console switch to enable sound pooling - Disabled by default while I'm investigating ongoing NREs in the area Tests: spawned 20 scientists and killed them. Ran around placing 100 barricades. Cut down 2 trees. Telemetry showed no pooled sound modulators.
6 Months Ago
Merge: from main Tests: none
6 Months Ago
Merge: from runtime_profiling_pooling Fixes pool telemetry flood. Tests: hacked code to force run pooling telemetry - confirmed reduced telemetry.
6 Months Ago
Bugfix: Respect profiling pool flush interval for pool telemetry This caused to send ~100kb every update Tests: hacked code to run analytics
6 Months Ago
Merge: from main Tests: none
6 Months Ago
merge: from soundmodulator_leak Tests: Spawned and killed scientists in batches of 10. Previously I would get an NRE on 2nd batch, now doesn't happen after 6.
6 Months Ago
Bugfix: Don't update disabled sound players I haven't seen it happen, but it is possible that someone could add a SoundPlayer to the Manager's queue, retire it, and next frame Manager would try to update it triggering an NRE. Tests: spawned 10 scientists and killed them - no nres, audio was good
6 Months Ago
Bugfix: recycle sounds used by SoundPlayer when owner is returned to pool Tests: Killed 60 scientistnpc_patrol in batches of 10 - NRE didn't reproduce.
6 Months Ago
Merge: from main Tests: none
6 Months Ago
Merge: from main Tests: built all modes, tried to repro 2 previous known bugs - didn't happen.
6 Months Ago
Merge: from main Tests: none
6 Months Ago
Optim: Send trees in batches over multiple frames to avoid spike on player connection This is experimental, but it seems stable initially. On 4.5k procgen world from a save it took 90ms(very rough numbers, including client-side spawning overhead) in total to send all trees, but each frame 1 player took on average 0.2ms to gather & send data. Also need to fix a bunch of bugs Tests: Ran craggy in local editor session - no exceptions.
6 Months Ago
Merge: from main Tests: built all modes in editor
6 Months Ago
Merge: from pool_container_telem Tests: took telem info from craggy, procgen 4.5k and saved procgen map. Built all modes in editor. Built standalone server exe.
6 Months Ago
Buildfix: properly exclude command from non-editor builds Tests: built all modes in editor. Built standalone server.
6 Months Ago
Update: added editor-only print_memory_overhead cmd - Marked that it gives estimates, not accurate results Tests: ran on craggy - got simlar results to print_memory
6 Months Ago
Update: print extra mem held by containers in Pool Tests: took a couple snapshots on craggy, fresh 4.5k procgen + 4.5k procgen save
6 Months Ago
Update: Pool can track container capacity memory overhead - Implemented as an editor-only feature to avoid adding overhead in release I needed to confirm that we don't keep around giant lists/buffers in the pool. Tests: entered play mode in editor
6 Months Ago
Clean: replacing obsolete Pool api usage Tests: none, trivial change
6 Months Ago
Merge: from /main/soundmodulator_leak Tests: spawned car_2mod_01, drove around - pool telemetry stayed stable, audio was good.