42 lines
1.6 KiB
Markdown
42 lines
1.6 KiB
Markdown
# Aetheria Cutover Notes
|
|
|
|
## First Slice
|
|
|
|
Cut over projectile travel and impact discovery before trying to replace every
|
|
Unity physics use.
|
|
|
|
1. Spawn a Ymir body for each projectile and relevant target hull/contact shape.
|
|
2. Step Ymir on the same fixed tick used by Aetheria gameplay.
|
|
3. Render Unity projectile GameObjects from Ymir snapshots.
|
|
4. Convert Ymir contacts into Aetheria hit/splash policy.
|
|
5. Keep Unity colliders as visual/debug witnesses only during the transition.
|
|
6. 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 `OnCollisionEnter` callback 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
|