1.6 KiB
1.6 KiB
Aetheria Cutover Notes
First Slice
Cut over projectile travel and impact discovery before trying to replace every Unity physics use.
- Spawn a Ymir body for each projectile and relevant target hull/contact shape.
- Step Ymir on the same fixed tick used by Aetheria gameplay.
- Render Unity projectile GameObjects from Ymir snapshots.
- Convert Ymir contacts into Aetheria hit/splash policy.
- Keep Unity colliders as visual/debug witnesses only during the transition.
- Delete or neuter collider callbacks once the Ymir path owns hit truth.
Negative Checks
- A projectile with a Unity collider disabled still travels and hits through Ymir.
- A Unity
OnCollisionEntercallback cannot apply damage independently. - Replaying from the same canonical creation order and command stream under the accepted Box3D build produces the same ordered Ymir facts.
- Restarting from a checkpoint matches named numeric state tolerances. It emits no authoritative gameplay contact facts until canonical history has replayed through the checkpoint tick and restored exact contact lifecycle identity.
- Mid-flight visible projectile position matches the Ymir snapshot within a named tolerance.
Adapter Boundary
Unity adapter code may:
- submit spawn/despawn/field/body commands
- receive snapshots and contacts
- render GameObjects from snapshots
- publish diagnostics
Unity adapter code may not:
- alter positions as a hidden repair loop
- apply gameplay damage from Unity collisions
- maintain a parallel physics cache that can override Ymir
- treat scene hierarchy as the source of simulation truth