11 KiB
11 KiB
Original Game To Perfect Machine Matrix
Status dimensions:
reference: behavior exists only in the fossil/reference implementation;owner-exists: target subsystem implements the primitive in isolation;wired: production Aetheria paths invoke that owner;exclusive: obsolete writers cannot decide or repair the result;projected: authoritative state reaches Eve;lowered: a generic runtime presents or controls it;proven: live parity and negative-authority checks pass.
Dimensions are cumulative claims only when evidence proves each one. Fixture validation proves contract shape, not wiring, exclusivity, lowering, or parity.
| Organ | Original authority/evidence | Target owner | Eve contract | Runtime lowering | Current status | Required proof |
|---|---|---|---|---|---|---|
| Run/session state | ServerShared, ActionGameManager |
Aetheria daemon/CultCache | provider/session advertisement | all clients | owner-exists; wired; projected; not proven | restart and multi-client convergence |
| Entity identity/loadout | ServerShared/Entity* |
daemon | typed entity and inventory surfaces | EveUnity/Electron | owner-exists; wired; projected; not proven | loadout round trip and reconnect |
| Flight intent | Ship, Thruster, AetherDrive, input paths |
daemon intent + Ymir physics | analog movement/look/tractor | EveUnity input driver | simplified daemon path wired; Ymir not wired | thrust allocation, torque, energy, heat, drag and gravity |
| Collision | Unity physics and entity handlers | Ymir | collision/result facts | visual interpolation only | owner-exists; not wired; not exclusive | link Aetheria to Ymir.Core/service, share one world, and fail old-writer negative checks |
| Targeting/contacts | sensors + ActionGameManager |
daemon | contact/target semantics | target HUD and indicators | simplified owner wired/projected; not parity | visibility/nearest/explicit/lock cases |
| Projectile flight | weapon/projectile classes | Ymir | projectile entity/event projection | native projectile visual | local substitutes only | remove both Aetheria-local steppers; prove spawn/travel/hit/despawn through one Ymir world |
| Shield/hull damage | energy-funded shield, armor cells, equipment and hull | daemon | entity status + damage events | meters, impacts, damage VFX | synthetic scalar owner wired; not parity | typed absorption, penetration, item damage and death causes |
| Thermal/energy | cell conduction and capacitor/reactor/radiator network | daemon | ship/equipment status and warnings | schematic/post effects | reference | cell heat, shared energy and medical thresholds |
| Weapons | ServerShared behaviors + Unity effects | daemon + Ymir where spatial | action capability, weapon state, attack events | effects/audio/HUD | one synthetic weapon wired; original engine reference-only | each weapon family |
| Destruction/drops | entity death and pickup paths | daemon | death/drop events and world entities | effects and pickups | fragments wired; chronology and original drop transaction absent | exactly-once drops and cleanup |
| Tractor/scoop | analog tractor and physical timed pickups | daemon + Ymir | tractor intent, pickup entity and receipt | beam/interaction feedback | command wired; spatial/original pickup semantics absent | ramp, range, failed capacity, lifetime and pickup once |
| Dock/undock | wormhole-first interact; first eligible bay; component prerequisites | daemon + Ymir placement | dock commands/context | camera/UI transition | daemon path wired/projected; Ymir placement and parity unproven | priority, eligibility, placement and reconnect |
| Inventory/equipment | inventory panels + ServerShared | daemon | inventory/equipment surfaces | generic UI | owner-exists; wired/projected in fragments; not proven | all transfer directions and rejection |
| Trade | trade UI/economy | daemon | stock, quote, purchase commands | generic UI | purchase owner wired/projected; not proven | atomic purchase and capacity |
| Action bar/input | input shell and rebinding UI | daemon advertises actions; client owns bindings | input capability and action descriptors | universal binding UI | contracts wired; dynamic original behavior source absent | dynamic equipment/cargo actions |
| Pilot camera | ARPG follow/dock cameras | Eve view semantics + runtime | camera rig and semantic view id | EveUnity camera rig | basic follow lowered; dock/view parity absent | authored framing and dock transition |
| Render channels | Unity layers/culling masks | provider variant + runtime | semantic view id | native layer policy | specification work; incomplete uncommitted prototype | no map glyphs in pilot view |
| Minimap/tactical map | ZoneRenderer, map cameras |
daemon world facts | explicit map projections | Unity and Electron | facts fragmented; generic lowerers absent | same state in both runtimes |
| Fields/fog/gravity | zone renderer and shaders | daemon/plugin semantics | Fields plugin documents | EveUnity fields lowerer | owner-exists; basic lowering; composition parity absent | visual parity captures |
| HUD/schematic | ARPG HUD and SchematicDisplay |
Eve composition from daemon facts | semantic status/components | EveUnity UI | reference | source-fact and timing matrix |
| Hit/lock/warnings | ActionGameManager feedback |
daemon event facts | transient feedback stream | VFX/UI/audio | reference | event identity and duration |
| Assets | Assets/Resources |
Aetheria provider | asset catalog + CultMesh CDN | runtime cache/load | wired; basic lowering; not live-proven remotely | cold/warm remote-only live load and cache proof |
| Save/resume | original persistence paths | daemon/CultCache | published current state | clients rehydrate | owner-exists; not parity-proven | mid-loop restart |
| Terminus loop | original game composition | daemon/Ymir/Eve | pilot surface | Aetheria.Unity | incomplete; no scenario proof | fly/fire/loot/dock/trade |
| Starbridge | original/shared architecture intent | one daemon session | pilot + commander surfaces | Unity + Electron | incomplete; split-target proof missing | commander plus four pilots |
| Behavior engine | ServerShared/Behaviors composition |
daemon | executable action/status projection | action bar and feedback | reference | every behavior family and modifier lifecycle |
| Sensors/visibility | decaying sources and observer information thresholds | daemon | contacts and ping events | indicators/maps | reference | threshold, decay, ping and classification timelines |
| AI/tasks | agent state/task framework | daemon | observable intent/state only | no decision authority | reference | combat range control and civilian tasks |
| Consumables | cargo-backed timed behavior containers | daemon | dynamic actions and active effects | action bar/schematic | reference | consume, stacking, duration and cleanup |
Ownership Invariants
- Unity objects never decide durable game state.
- Target invariant: Ymir will own spatial truth; the daemon owns game meaning and persistence. Current state: Aetheria still owns multiple local spatial implementations.
- Eve publishes semantic facts and commands, not Aetheria implementation objects or runtime-specific layer numbers.
- Runtime-specific asset metadata may map semantic view channels to native mechanisms such as Unity layers.
- Provider assets own authored visuals; EveUnity owns generic projection and native hosting; Aetheria.Unity owns only provider client configuration.
- Transient feedback has authoritative event identity so reconnect and refresh cannot duplicate hits, drops, purchases, or deaths.
- RTS, minimap, and pilot views are projections of one world state.
Migration Order
- Finish archaeology and replace every
referencerow with exact behavior, source anchors, state inputs, outputs, timing, and proof cases. - Establish complete daemon/Ymir simulation parity before polishing clients.
- Publish combat, thermal, contact, equipment, docking, trade, and feedback facts through Eve without runtime-specific leakage.
- Implement generic EveUnity presentation primitives and plugin lowering.
- Reconstruct Aetheria's authored composition in
Aetheria.Unityusing those generic primitives and provider assets. - Run scenario parity against the fossil and preserve captures, receipts, and state timelines in conformance packs.
Current P0 Faults
These are source-confirmed ownership failures, not feature backlog:
- Split combat writers. Normal daemon simulation and the optional abstract combat kernel can both mutate combat state in one tick. Select one combat owner and delete the other's write path.
- Physics is not actually delegated. Aetheria's local
AetheriaRuntimeYmirProjectilePhysicsreimplements projectile stepping; it does not use standaloneYmir.Core. Ship flight, tractor, gravity, docking placement, and most collision remain outside Ymir. - Persisted behavior is not executable behavior. Snapshot schemas preserve broad equipment/behavior state while active simulation executes one synthetic projectile weapon and simplified raider pursuit.
- Client feedback lacks authoritative chronology. Hits, lock transitions, damage topology, weapon transitions, death causes, effects, and drops have no complete deduplicated event stream.
- View composition is implicit. Provider prefabs contain pilot and map subviews, but portable render channels, entity presentation graphs, effects, attachment sockets, and map products are not yet first-class contracts.
- The game loop has no single daemon owner. Exploration, discovery, encounter, loot, docking, trade, refit, narrative, boss progression, completion, failure, and continue exist as pieces rather than one explicit run-state machine.
- Two Aetheria-local spatial owners. Daemon projectile stepping and the Unity bridge/query path independently implement Ymir-shaped behavior and can disagree while standalone Ymir remains unwired.
- Live conformance has no complete owner. Static provider packs can pass while daemon, runtime, or split-target dependencies are absent. The current Eve consumer smoke fails because its expected EveElectron proof is missing.
- Normative native presentation has no implemented owner. Render channels, presentation graphs, map products, attachment/effect lifecycles, material profiles, and source-version diagnostics are assigned in specification but lack complete Eve contracts and EveUnity lowerers.
- Original-game acceptance lacks an evidence ledger. No current owner records fossil baseline, target state timeline, commands/receipts, rendered captures, and negative-writer checks as one scenario result.
Evidence Rules
- Static fixtures and provider packs prove schema/contract shape only.
wired,exclusive,lowered, andprovenrequire live executable witnesses at the claimed layer.- A negative ownership claim must verify the obsolete path cannot produce, override, or repair the result.
- The current
verify-aetheria-ymir-cutover.ps1proves selected Unity callback removal and static routing into an Aetheria bridge. It is not Ymir integration proof until it verifies an actual Ymir.Core/service dependency and rejects Aetheria-local spatial implementations. - Conformance scenarios must preserve source baseline, authoritative state timeline, Ymir timeline, command/receipt chronology, rendered capture, runtime/package versions, and negative-authority results together.