2,222 Commits over 549 Days - 0.17cph!
Merge: from parallel_validatemove
- Bugfix: GamePhysics.OverlapCapsules no longer skips 0-length-capsule queries
- Additional unit tests
Tests: unit tests + staging demo playback
Tests: add GamePhysics.CheckShhere, CheckCapsule and related consistency tests
Contains divergence cases that are constantly warned about - this is to document current behavior
Tests: ran unit tests
Update: Adding GamePhysics.CheckSpheres
Tests: unit tests (next submit)
Merge: from main
Tests: none, no conflicts
Update: Made GamePhysics.CheckCapsules and related consistent with CheckCapsule around sphere queries
- Added a defaulted param(true) that controls whether we should scan for sphere-like capsule queries or not
- Added a couple comments to clarify things
This adds ~1ms on 10k player perf test scenario, but should silence Unity's warnings
Tests: unit tests + staging demo playback
Update: GamePhysics.OverlapCapsules and OverlapSpheres now check for invalid commands and report errros
Tests: unit tests
Clean: added a comment expanding the reason for previous test
Tests: none, trivial change
▉ ▅▄█▆▊▌ ▋▉█▊▇▇▄▌▋▅▄▄▇▍▆▍▍▉█▊▆▆▅▇▆▉▉▋▆▅▆▌ ▄ ▍▅▉▌ ▅▇▄▋ ▅▆▄▉▇▊▇▇▆ ▅▌▌▄▉█▇▅ ▇▌▌▇▉▉▌ ▅▍▇▌▊▄▋▅█▍▄▄ ▅▌▍▌ ▅█▄▄█▍▄█▊ ▅▋ ▌▉▆█ ▊ ▊▅▇▇▆▉▊▆█ ▋█▅ ▉▇▆▆ █▍▊▌ ▉▉█▅ ▍▍▅ █▆▍▊ ▅▉ ▇▇▍ █▉▊▉▋▌▊▋▉▌ ▌▇▍ ▉▇▊ ▊▉▅▅▋
Bugfix: ServerDemoPlayer - skip trying to spawn invalid prefabs from the server demo stream
Tests: played back server demo
Update: make ServerDemoPlayer complient with recent Protobuf changes
Tests: played back a staging server demo
Merge: from main
Tests: none, no conflicts
Merge: from loading_entity_leak
- Fix zombie ProtoBuf.Entity objects never being returned to the pool after loading a game save
Tests: loaded craggy save, editor default procgen save and staging server save
Bugfix: don't leak ProtoBuf.Entity during loading of a save
Loading a 4.3k staging server save drops ~129k objects (almost all get spilled, but that's okay after a load)
Tests: loaded craggy save, loaded default editor procgen save and stagign server procgen save
Merge: from fix_treetoolrenderer
- Brings back tree rendering on editor start with a scene with trees without triggering database refresh
Tests: variosu editor open scenarios, various scene switching scenarios with domain reload
Update: TreeToolRenderer is now a static class instead of an EditorTool
State survives domain reload (somehow).
Tests: started editor on swamp_a, craggy, swamp_b - rendered okay. Triggered a couple domain reloads via code changes - still rendered with active scene + scene switching
Bugfix: bring back tree rendering on first scene opening
- Defer tool initialization to first scene load to avoid triggering asset refresh in InitializeOnLoad
Tests: closed and opened editor with various starting scenes. Switched scenes.
Merge: from ioentity_slacklevels_pooling
- Fixes IO entity spilling List<float> on save
Tests: build a couple water tanks and checked pool.print_memory
Bugfix: use pooled List<float> during IOEntity's slacklevels saving
Avoids inflating List<float> in the pool, and eventually spilling them, leading to GC pressure.
Tests: on craggy build a couple water tanks - checked that "List`1[System.Single" pooled active objects doesn't go negative
Merge: from playerinventory_allocs
- Removing extra garbage allocs from ToArray calls
Tests: equipped armor when already having one, tried to pick up an extra map with one already in the belt
Update: PlayerInventory.CanWear no longer allocates an extra array
- BufferList.CopyFrom now clears orphaned range, to avoid holding references to managed objects
Tests: gave myself 2 maps - they correctly avoided being both on the belt
Update: pool ToArray allocation in PlayerInventory.WearItemCheck
- BufferList now can copy from List
Tests: equipped armor while wearing armor
Merge: from parallel_validatemove
- Clearing 2 TODOs
Tests: unit tests
Clean: remove minor TODOs
- append Job to the last burst job without it
- Replace .Add with AddNoResize
Tests: uni tests
▇ █▉▊▉▋▋ ▌▊▅▆ ▄▉▍▌▉▍▄█▋█▉█▆▉▌▋█▅█▋▉█▍▅ ▉▄▉▆▅▅▆█▇▉▄▍▌▇▅▍▅▍▋ ▆▋▄ ▇▅▊▍▇▊▅▇▋ ▉ ▊▋▆██▌ ▇▊▆▄▄ ▊█ ▍▌▄▄▉▉▉▊ ▋▇▉▊▇ ▉▅▋▉ ▆▍▌▉▇▅▅▊▉▇▊▅▍ ▊▍▊ ▊▋▅▆▊ ▊▋▅▌▌▇▊▋▄▆ ▅▌▋▋▅▌ ▍▉▋▍▇ ▄▆▍▉▋▊▊▄ ▋▋▄▉▌▊▆▋ ▊█▋█▌█▅▉▇▅▌ ▌▌ ▋▅▇▇ ▆▊▉▅▇▅▊▄▋▇ ▉▄▇▌▅▌▄▆▅▄█▉▉ ▄█▆▉▌▌▆▄▊▋▆▉▍ ▋▉▇ ▇▄█▅▅▊█▍▇▋▍▋ █▄▇▌ ▋▄█ ▋▄▉▌▅▉▇▍ ▇▅▇▅▅▉▍ ▋▍▄▇██▍▆▆▄▌█▉▉▇ ▇▌▍▇▌▆▋▅▆▉ ▋▊▄▌▍ ▉▌▆▉▆ ▇▋▇▉▍▋▌▆ ▋▆▅▋▇▍ ▋█▆ ▋▊▊▍ ▋ ▋▌▊▋ ▌▇▆▉▄ ▅ ▄▇▍▊█▇▇ ▄█▉▇ ▄█▄▇▅▅▉▆ ▄ ▉▍▆▉▄▉ ▍▅▌█▄▆ ▆▍ ▋▍▍▅▄▌▇▊▅ █▇▋▇▊█▋▆▋ ▆▄▊▅▅█ ▉▌█▆▆▍▉ ▅▌▉▆▇▅▄ ██ ▊▍▋ ▋▆ ▇▅▆▋▄▆▆▍ ▅▆▉▌▉▉▅ █▅█▆▍▆▌▌ ▇▄▊▆▇▌▇
Merge: from main
Tests: none, no conflicts
▅ ▊▇▇▌█▄▌▍▌ ▌▇█▋ ▊▋█▆▇█▊▄▇▅▍▄▉▋▉▊▉▍ ▄▌▄▇ ▄█▅▋▉▉▄▊ █▋▍▋▋▇▆█▉▉▄▄▆▆█▌ ▍▇▇▆▇▌▆▊▋▆ ▋▍▅▉ ▍▅▄▋▋▅▅▌ ▍▅█▄▇▉▋▍▄▌▍▇▌▅▆▋▆▉▉▆▄█▊▆▇▄▊ ▌▄▉█ ▆▋▅ █▅ ▌▆▉▋▌▋▆▌▄▋ ▊▋▍▆█▆▊▌▋█▉▅▋ ▇▌▌▌▉ ▇▋▊▋▋▄ ▌▄▄ ▋█▆▆▋▆ ▊▇▌▍▋▄▆▊▌▇▍
Clean: fixing various whitespace issues and unused "using" statements
Tests: compiles in editor
▆ ▉▋▍▇▅▊ ▇▇▅▇ ▍▄▌▍▊▉▆▋ ▇▍▍ ▌▌▌█▉▋▋▋▌█▊▇▋█▊▅▉▌█▋▄▆▇▆▋█▋▉▋▄▇▆▌▆ ▊▌▄▌▊ ▍▊▊▇▍▇▋ ▅█▍█▊▍
Merge: from main
Tests: ran unit tests
Update: add profiling scopes to search-component parts of GamePhysics.CheckSphere<T> and CheckCapsule<T>
This is a slow path if there are many terrain/water volumes being hit
Tests: none
▌ ▌▉▉▅▅▉ ▇▇▆▉█▄▉▋▊▌▇▇▅▋▍▅▆▇▆▋▋ ▇ ▌▍▆ ▅▍▅▋▇▆▌▋▅▆▌█▍▅ ▇▆▅█▍▌▋▄▊▌▊▆▅▍▇ ▋▍▉ ▇▇▆▅ █▍▆▊▉
Tests: GamePhysics tests now contain cases with both water and terrain ignore volumes
This is kind of a bug fix, since it wasn't testing both paths, but ah well
Tests: ran unit tests
▋ ▊▋▊▇▊▋ ▆▌▋▊▇▆█▍▅▅▌▆▉▆▄█▌▍▊▇▇ ▆ ▊█▅▉▌▋ ▉▄█▅█▄▅ ▉▍ ▋▊▍▅▋▍█ ▄▋▅▌▋▅ ▌▋▊▇█▄▆▇ █ ▋█▋ ▇▄▋▋ ▋▉▄██▄▆ ▊▅▉▆▅█▇▇▍▍▇▅▋ █▅▊▄
▅ ▅▆▉▄▆█▋ ▆▍▍█▌▌█▄▄▋▄▊▉▋▊▄██▄▆▌▉ ▉ ▌▉▊▍ ▇▍▄▆ ▊▆ ▋▋█▅▆ ▆▄▆▆▌ ▋▅▅▌▇▉▅▅▊▆▆ ▍▊▇▄▌▅ ▌▄▄▄███ ▌▄▅▍▅▅▍▍▉▊ ▌ ▊▇▌▊ ▋▋▍▊▇▍▋ ▄▄▄█ ▄▅▅▅▌▆▋ ▋▄▆▇ ▆▍█▆▇█▍▉ ██▇▆ ▆▆▄▌▄ █▄▍▅ ▌ ▋▄▋ ▋▇▌▉ ▍▊▌ ▇█▉▍ ▅▅▊▇▅ ▉▊▍ ▋▍▌▍▌ █▊▇▍▆ ▆▇ ▆▇█▉▄▅▍█▌▉▌▌ ▋▄▊▍▌ ▊▌▉▆▌▇▌ ▌█▍▄▆▆
▊ ▌▉▇▊█▄ ▆▅▉▅▊▅▇▋█▊▅▄▆█▉█▋▇▋▅▉▉ ▋ ▆▉▅ ▊▊▇ ▅▇ ▅▄██▅▇▊▇▍▄▅ ▅▋▇█▍▊▄█ ▋▄▌▆ █▋▇▇ ▊█ ▉▊ █▆▆▄▍▋▍▇▅▅ ▍▌▅██▄ ▍▅▅▄ ▉▌▇▇▆▌▄▋ ▌▍▄▍█▇▋▌▉▆█▅▊▊ ▆▊▄▍▅ ▄▇▇██▆█ ▅▉▍▌▋▅
▉ ▆▅▍▋▊▅ ▆▌▌▋▄▋▆▇▅▌▍▄█▅▄▅▄▅██▇▍ ▅ █▄▇ ▊▍▆ █▄ ▋▍▍▍▄▄▉▊▆▄▍▌▉█▍ ▉▆▉▅▅▋ ▆▆▋▆▊▇▊▋ ▅▇▅▊▋ ▅▄▉ ▆▄▄█▉▆ █▇▅▊ ▄▄ ▋▇ █▄▇▆▉▋▅▊▇▋ ▍▍▄▊▌▅ ▋▆▍▄ ▍█▅ ▊▆▍▋█▅▄▆▊▍▌▍▄ ▇▉▉▇█ ▊▋▆▉▊▆▋ ▉▍▌▋▅▋
Clean: remove unused NativeList
Tests: none, trivial change
▍ ▆▆█▉▉▄ ▋▍▆▉▊▍▊█▋▌▉▌▋▆▇▍▊█▍█▄▄▉▍▆▉ █ █▍▊▆▉▍▉ ▍▄▆▌█▌▍▆ ▍▋▆▌▅▌▉▇▊▍ ▉▅▍▋ █▇▇▄▉ ▅▉▅▊ ▍▌▆▆▇▊▋▍▅▉▋▅▌▊▇▇▉▍ ▊▄▆▄▌▉▆ ▉▍▉▇▇▋▋ ▌▅▆▄▍▉▆▊▍▍█▉▆▊▊▊▄ ▊▍ ▆▍▅▇▍▍▊▍▋▊▅▊▌▋▍▆▊▇▆█▄▊▍▄▆▉ ▆▆▊▌ ▆█▋▇▉
▌ ▊▌▄▊▌▅ ▋▋▉▄▄▉▊▄▉▄▇▋▍▍▌▉▍▆▋▋▋▉▍▅▊ ▋ ▇▌▌▄ ▍ ▆▌▄█▌ ▄▌▋▅▌▄▊█ ▇█▋█▄▄▍▋▍▄ ▇▆▌▇ █▇▆▌▆ ▉▅ ▄▍▍▉ ▍▉▄ ▉▉▌▊▌█▌▆▄▍▋▋▄▅▆▋ ▊▅▄ ▋█▇▍ ▄▌▅▇▆
▋ █▄▅▌▇▇ ▋▆▄▅▍▌▉▆▄▇▌▊██▌▍▉▌▅▆▆█▋▊▊▅ ▆ █▊▊▅▉ ▉▍▇▉▊▋▅▌▌▋ ▅▄▉▉▍▊▍▉▉▆▋▄▄ ▇▉▇▉▌ ▉▅ ▉▇▅ ▆▄█▅▆▇▋▊▇█▉▆▊▅▄▆ ▊█▄▅ ▌▌▉▍▍
▋ ▌▊▋▍▉█ ▋▄▆▊▇██▌▋▉▊▊▊▅▇▉▌▊▌▉▄▌▄▍▄▇ ▆ ▋▉▄▌▆██▋ █▇▊█ ▅▋▉▌▋▊▄▉▆▇▇▌▄▄▄▇▍▍▇ ▉▄▆▋ ▆▋▋▇▅
Clean: removing dead code
Tests: compiles
Update: add GamePhysics.TraceSphere and TraceSphereUnordered
- added GamePhysics.Sort(NativeArray...)
- replaced some inline code with TraceSphere call
Works the same as Trace(>0 radius) and TraceUnordered(>0 radius)
Tests: unit tests + staging demo playback
Update: add GamePhysics.TraceRays and TraceRaysUnordered
- works the same as Trace(0 radius) and TraceUnordered(0 radius)
- Replaced some inlined code with a call to TraceRays
Tests: ran unit tests
Optim: use Burst to generate commands in GamePhysics.OverlapSpheres
- It used to be there, but lost it during refactor
Tests: unit tests
Clean: minor changes to GamePhysics
- Renamed batch methods to be plural
- Split GamePhysics.CheckSphere<T> to separate OverlapSpheres
- added profiling scopes
Tests: unit tests
Update: move RemoveTerrainMask to GamePhysics
Tests: unit tests
Update: move GenerateCheckCapsuleQueries to GamePhyics and utilize
Tests: ran unit tests
Update: split GamePhysics.CheckCapsule<T>
- forbid CheckCapsule(batch) from returning ColliderHits - this is to better represent relationship to non-batched CheckCapsule
Tests: unit tests
▊ ██▌▋▉▌█ █▅▉▆▇▌█▅▄▋▊▅▄▋▌▆▌▋▄▆▉▉▋▅▅▊ ▅ ▊▆▋▄▄▊▅ ▆▋▋▅▆▍ ▋▌▊▊▌█▋ ▍▊▆▄▍█▉ ▌▍██▅▊▊ ▋▌▆▋▉ ▉▌█▄ ▉ ▊▉▅▉▋▌▅▇▋▌▆▄▄▋▄▊▄▇▇▇▆▄▉▆▍▍█▌▆ ▍▍ ▉▊▋▇█▆ ▄▅▅▆ ▄█▌ █▋▋▉▊▍█ █▅ ▊▆▊▄ ▌▉ ▋█▆▅▋▌ ▋▇ ▇▇▊▇▄▅▆ ▄▅▉▊▌▆▅▍▆▇▉█▇▍█ ▊▇▇█ ▇▊▄▍▊ ▍▋▇ █▅▄▉▇▆▌ ▊▄▅▇ ▄▇▉▉▄▌▆█