Aetheria/Assets
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 22a54ccbaf Cut 1: belts are evaluated when asked, not simulated every tick
Zone.Update no longer threads a per-belt Task.Run over a double-buffered
Transforms/OrbitPosition pair. AsteroidBelt.Pose/Size are the one place a
chunk pose is computed, a pure function of zone time; Zone.ChunkPose and
Zone.EvaluateBelt read them at the zone's own time. MiningTool,
ResourceScanner and ZoneRenderer (belt matrices and AsteroidBeltUI) all read
through Zone instead of the deleted per-tick buffers; the renderer owns its
own float4[] buffer, filled fresh every frame.

Deleted: System.Threading/.Tasks usings, BeltUpdates, the wait loop, the
per-belt copy+Task.Run, NearestAsteroid (dead/broken reader), the private
UpdateAsteroidTransforms, and AsteroidBelt's four pose fields plus their
allocations. ~65 lines, matching the cut map's estimate.

miningprobe, densest zone of the operator's save (EAC-2265, 809 asteroids,
8 belts), rebuilt against this cut and rerun 10x each side:

before (branch point, 8bd25f6f/e729e6d6):
  Zone.Update wall 541-3654 us/tick, CPU 120-391 us/tick (7 clean runs)
  3/10 runs crashed: InvalidOperationException from Zone.GetOrbitPosition,
  the documented _updatedOrbits/Orbits data race between the main thread's
  Clear() and a belt Task.Run

after (this commit):
  Zone.Update wall 95-185 us/tick, CPU 99-152 us/tick, in line with the
  31-39 us "no belt work" baseline the map recorded -- belts are free per
  tick
  0/10 races
  ChunkPose has no buffer to go stale: ~0.12 u of parent+asteroid motion is
  visible across one 17 ms tick instead of being one tick behind

tests/Aetheria.Shared.Tests/MiningCut1Tests.cs (new, 260/260 suite green):
  ChunkPoseIsTheOrbitAtZoneTime, ChunkPoseDoesNotDependOnUpdateCadence,
  DamagedChunkShrinksAndABrokenOneHasNoSize -- each expected value is the
  closed-form orbit/size rule reimplemented in the test, never a call to
  AsteroidBelt.Pose/Size.

Negative grep (Zone.cs, "Zone Display", ServerShared/Behaviors) for
Task\.Run|System\.Threading|NewTransforms|\.Transforms\b|BeltUpdates|
NearestAsteroid|\.OrbitPosition\b|NewOrbitPosition: one hit, the commented
line in MineAsteroid that Cut 2 deletes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 01:27:16 +02:00
..
AddressableAssetsData Add Addressables as a direct dependency and settings, Content group entry 2026-09-18 04:31:28 +02:00
Audio Combat & Visibility & Collisions 2021-02-26 19:01:47 +00:00
Content Switch engine asset references from Resources paths to Addressables GUIDs 2026-09-18 05:04:50 +02:00
Editor Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
Fonts Action Bar (WIP) 2021-04-18 05:13:20 +01:00
Images Upgrade to Unity 6000.3.24f1 2026-09-11 22:04:28 +02:00
Materials Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
Models Shields 2025-01-30 01:58:05 +00:00
Plugins Delete the in-tree cache, JsonKnownTypes and vendored MessagePack 2026-09-14 18:42:09 +02:00
Prefabs Upgrade to Unity 6000.3.24f1 2026-09-11 22:04:28 +02:00
Resources Wire subsystem selection and reveal into player input and the HUD 2026-09-19 13:02:54 +02:00
Scenes Drive the field shield test scene by publishing capability events 2026-09-17 14:36:54 +02:00
Scripts Cut 1: belts are evaluated when asked, not simulated every tick 2026-09-25 01:27:16 +02:00
Shaders Shield panel: gate reuse and Hit on the panel's own radius 2026-09-18 21:02:18 +02:00
StreamingAssets Unified Volumetric Flow 2021-06-18 12:32:03 +01:00
TextMesh Pro Bugfixes & Reactive Refactor 2025-07-18 00:21:33 +01:00
Textures Upgrade to Unity 6000.3.24f1 2026-09-11 22:04:28 +02:00
AddressableAssetsData.meta Add Addressables as a direct dependency and settings, Content group entry 2026-09-18 04:31:28 +02:00
Audio.meta Combat & Visibility & Collisions 2021-02-26 19:01:47 +00:00
Content.meta Add Addressables as a direct dependency and settings, Content group entry 2026-09-18 04:31:28 +02:00
Editor.meta Add Epiphany Unity editor bridge 2026-04-30 15:03:15 +01:00
Fonts.meta Menu Prototype 2020-03-23 14:36:59 +00:00
HoverCursorChange.cs Playability 2022-08-08 22:43:55 +01:00
HoverCursorChange.cs.meta Trade Menu Spreadsheet 2021-01-14 03:20:27 +00:00
Images.meta Menu Prototype 2020-03-23 14:36:59 +00:00
MainMenuMusic.cs NEW CLOUDS NEW CLOUDS NEW CLOUDS WHOOO 2022-07-10 02:53:09 +01:00
MainMenuMusic.cs.meta Music & SFX 2021-04-30 11:19:25 +01:00
Materials.meta Old Aetheria Code 2020-03-09 01:28:55 +00:00
Models.meta Initial ARPG Port 2020-11-27 22:47:33 +00:00
MouseRotate.cs Move the remaining Assets scripts off Unity.Mathematics 2026-09-14 18:01:54 +02:00
MouseRotate.cs.meta Playability 2022-08-08 22:43:55 +01:00
Plugins.meta Initial Client/Server Communication 2020-02-26 17:48:40 +00:00
Prefabs.meta Smooth AF Tab Menu 2020-03-24 21:51:38 +00:00
Resources.meta Old Aetheria Code 2020-03-09 01:28:55 +00:00
Scenes.meta Created Unity Project 2020-02-19 15:09:31 +00:00
Scripts.meta Initial Client/Server Communication 2020-02-26 17:48:40 +00:00
Shaders.meta Copy Aetheria Code 2020-02-27 18:51:07 +00:00
Steel.mat Combat & Visibility & Collisions 2021-02-26 19:01:47 +00:00
Steel.mat.meta Combat & Visibility & Collisions 2021-02-26 19:01:47 +00:00
StreamingAssets.meta Initial Wwise Integration 2021-02-27 20:53:36 +00:00
TextMesh Pro.meta Smooth AF Tab Menu 2020-03-24 21:51:38 +00:00
Textures.meta Initial ARPG Port 2020-11-27 22:47:33 +00:00