branchrust_reboot/main/projectile_jobscancel

123 Commits over 30 Days - 0.17cph!

3 Days Ago
Update: forgot to save BaseRaidBenchmark scene with the changes Tests: none, trivial change
3 Days Ago
Update: BaseRaidBench - add support for spawning a random base from a list Tests: ran the scene
3 Days Ago
Update: DemoBuildingsViewer - add ability to export as a merged base Tests: exported 3 bases from staging demo as 1
3 Days Ago
Update: DemoBuildingsViewer - can load multiple bases in a scene Exports them separately, for now. Tests: loaded top 20 bases from staging demo
3 Days Ago
Bugfix: DemoBuildingsViewer - spawn TOD prefab to allow digital clock to work Otherwise it NREed Tests: loaded base 3839 from staging demo
3 Days Ago
Bugfix: DemoBuildingsViewer - prevent attribute accumulation that leads to skin duplication Tests: loaded up the largest base from staging demo
3 Days Ago
Bugfix: DemoBuildingViewer - fix building block skin spawning in the wrong location Discovered that there's a new bug with duplicating skins on succesful scene opens Tests: spawned the largest base from staging
3 Days Ago
clarified water trace setup
3 Days Ago
Gather trace commands in a job, requires copying some data into a native container first but it's still twice as fast overall Test: projectile tests all still passing
3 Days Ago
Bugfix: BaseRaidBench - ensure weapons fire right projectiles - Also reset cooldowns between runs Tests: ran the scene
3 Days Ago
Update: BaseRaidBench - add support for multiple run configurations - Also remote players now have id in their game object names for easier debug - Fixed a bug with accumulating frame counter (:ops: #2) - Updated subtitle display to see what's running There's a burst-related NRE that gets picked up, but it's not directly related to benchmark. Tests: ran the scene
3 Days Ago
fix server compile
3 Days Ago
Update: BaseRaidBench - record run name in results Next up to setup variable-player runs. Tests: ran the scene
4 Days Ago
Update: BaseRaidBench - output avg projectiles per frame Helps us track changes to timers(bases made the benchmark faster as there's less projectiles on average) Tests: ran the scene
4 Days Ago
Update: BaseRaidBench - support skins for spawned bases Tests: ran the scene in editor
4 Days Ago
Bugfix: BaseRaidBenchmark - walls now appear on spawned bases - Export the model bitmask for building blocks - Updated the base json Tests: ran the scene
4 Days Ago
Bugfix: unblock use of DemoBuildingsViewer after running benchmark/playing in editor - Done via temporarily shutting down steam connection Tests: opened the scen from the demo after running the benchmark
4 Days Ago
Update: move building hierarchy sorting to export - also fixed the bug with using Append instead of Enqueue Tests: ran BaseRaidBench scene
4 Days Ago
Update: BaseRaidBench - spawn bases around the firing circle - added the largest base from my demo Walls are borked, same issue as editor, gonna fix next. Tests: ran the scene
4 Days Ago
Update: export parent IDs for entities in buildings Tests: exported largest base from demo - confirmed expected entity had ID
4 Days Ago
Update: Move Building to it's own file Makes it accessible for benchmarking Tests: compiles in editor
4 Days Ago
clear benchmark timers after recording results, stops accumulating time between runs
4 Days Ago
Update: DemoBuildingsViewer - export base as a json file Going to see if it's enough to rebuild the base for the benchmark Tests: exported largest base from my demo
5 Days Ago
Bugfix: conditionally start bootstrap timer since it can be null Tests: none, trivial change
5 Days Ago
Buildfix: remove dead burst code and move job to namespace Avoids name mangling shenanigans Tests: build client locally
5 Days Ago
cleanup profile region
5 Days Ago
jobified transform readback for effect updating, still slow to update scaled renderers though
5 Days Ago
pooling HitInfo for Projectile DoHit and don't string concat for every ricochet fx fire
5 Days Ago
Update: enable batched projectiles and water checks by default in the BaseRaidBenchmark scene Tests: ran the scene
5 Days Ago
Update: add benchmark timer to SoundManager - replace magic values for timers with named consts It's chonky, so tracking it as well. Tests: ran the scene
5 Days Ago
Update: add benchmark timers to Projectile.Update and BatchUpdate Tests: ran the scene in editor, saw output
5 Days Ago
Update: Rewrite BenchmarkTimer to allow for accumulating time - Renamed API to make it clearer Tests: measured against a stopwatch in bootstrap loading
5 Days Ago
moved most of HitTest generation to a transform job
5 Days Ago
Update: BaseRaidBenchmark - lay down basic benchmark timer collection logic Will contribute to benchmark results, but right now don't have any relevant timers + need to rework how they are implemented. Tests: ran the scene in editor
5 Days Ago
Bugfix: DemoBuildingsViewer - fix missing walls - Manually pre-process prefabs to get around editor skipping preprocessing - Add an editor-only override for Facepunch.Instantiate to not treat gameobjects as prefabs - Gather building entities from all keyframes Tests: loaded biggest base from my cleint demo - matches how demo renders it
5 Days Ago
further batched projectile improvemenets - jobified position/rotation writeback, 10x faster - adjusted HitTest to only populate some fields once for a projectile's lifetime (based on flag reset when it is pooled), some improvements Tests: all projectile tests passing
5 Days Ago
merge from main
6 Days Ago
New: DemoBuildingsViewer(Tools/Demo Buildings Viewer) - utility to extract buildings from a demo and create a scene of them - Fixed VisualFoodSetting.PreProcess to nominate for deletion, instead of destroying directly Currently only looks at keyframe 0 to detect building entities, which doesn't seem like enough Tests: used a client demo from a release server to spawn a bunch of building scenes
6 Days Ago
cleanup
6 Days Ago
server compile fix
6 Days Ago
reworked PlayerCache into a generic StableObjectCache to re-use it for batched Projectiles, making use of it for reading batches of projectile transform data which speeds it up by roughly 8x-10x compared to going through managed properties (cached or otherwise) Tests: re-ran all projectile and PlayerCache tests, adjusted to new interface
10 Days Ago
Hack: BaseRaidBench - avoid flooding audio manager During benchmark, we create too many audio sources and don't clean them up with default budgets - so we up them abit. Tests: ran the benchmark - no longer grinds at 3fps
10 Days Ago
missing return
10 Days Ago
added batched water tracing and various supporting features - GamePhysics.UseBatchedWaterRays convar to disable for perf comparison, will remove eventually - NativeArray/NativeList expansion can optionally use power of two expansion - Added native-friendly query structures for TerrainHeightMap and ShoreVectors, can add more querying functionality as needed but keeping it lean for now - Modified test cases to be more lenient on float comparisons as Burst compilation introduces variance of around 1e-8 in position results on waves which is more than acceptable
10 Days Ago
Bugfix: BaseRaidBench - audio no longer missing This aligns it with running from game menu, so standalone editor runs now also struggle under AudioManager lag. Tests: ran scene + ran `benchmark BaseRaidBenchmark` from game menu
10 Days Ago
Update: editor benchmarking runs now consistently set benchmarking flag Tests: ran RaidBenchScene in isolation and all bench scenes in series - no exceptions
10 Days Ago
Update: add BaseRaidBench to the benchmark scene list Tests: ran the benchmark command - it did execute my scene, but also started lagging as heck
10 Days Ago
Update: BaseRaidBench - set batched mode as default for scene
10 Days Ago
Update: BaseRaidBench - restore global state at the end of the benchmark Tests: ran the scen
11 Days Ago
Update: BaseRaidBench - emulate timed explosive fuse Not really important for now, but later once rockets fly upwards and have a chance to miss, this should make it match reality closer Tests: ran the scene