aether-shards/specs/BridgeCreation.spec.md

58 lines
2.9 KiB
Markdown
Raw Normal View History

# **Crystal Spires: Light Bridge Specification**
This document details the generation logic for "Light Bridges" (ID 20) connecting floating islands in the Crystal Spires biome.
## **1. Visual & Gameplay Goals**
- **Visuals:** Translucent, glowing blue pathways projected between solid structures.
- **Gameplay:** Must be strictly walkable.
- **Max Step Height:** 1 Voxel (Units cannot jump 2 blocks up).
- **Width:** 1 voxel (Standard) or 2 voxels (Main thoroughfares).
- **Material:** "Hard Light" (ID 20). Unlike stone, it has no "thickness" below it (floating).
- **Trajectory:** Organic curves or arcs, not strict straight lines. Can defy gravity slightly (arcing up/down).
## **2. Generation Logic: Additive Bezier Arcs**
Bridges are constructed using **Quadratic Bezier Curves** that strictly adhere to an **Additive-Only** rule.
**Algorithm:**
1. **Anchor Selection (Edge-to-Edge):**
- Do not connect centers. Find the voxel on the _perimeter_ of Island A that is closest to Island B.
- Find the corresponding perimeter voxel on Island B (or the surface of a Spire).
2. **Control Point Calculation:**
- Calculate the midpoint between Start and End.
- Apply a randomized **Vertical Offset** (Arch) and **Lateral Offset** (Curve) to the midpoint to create the Bezier Control Point ($P_1$).
3. **Voxelization (Non-Destructive):**
- Interpolate the curve.
- **Collision Scan:** Before placing a voxel, verify that the target coordinate is Air (ID 0) AND the two voxels above it (Headroom) are Air (ID 0).
- **Placement:** If and ONLY if the scan is clear, set the target coordinate to Bridge (ID 20).
- **Abort:** If the scan finds any solid block in the path (Floor or Headroom), the bridge segment stops or the entire connection is recalculated.
## **3. Conditions of Acceptance (CoA)**
**CoA 1: Walkability (Gradient)**
- Between any two adjacent voxels on the bridge path, the Y-difference must be <= 1.
**CoA 2: Strictly Additive (No Destruction)**
- The generator must **never** set a Voxel ID to 0 (Air) if it was previously non-zero.
- The generator must **never** set a Voxel ID to 20 (Bridge) if it was previously non-zero.
- Bridges must weave around existing geometry or fail; they cannot tunnel.
**CoA 3: Headroom Validation**
- Instead of _carving_ headroom, the generator must _validate_ headroom.
- A bridge voxel is only valid if Grid[y+1] and Grid[y+2] are already 0.
**CoA 4: Connectivity**
- The bridge must connect the edge of the start platform to the edge of the end platform without leaving a gap.
**CoA 5: Global Reachability (No Orphans)**
- After all bridges are generated, a **Flood Fill** check from the player spawn zone is mandatory.
- Any platform that is not reached by this fill is considered an "Orphan."
- **Resolution:** Orphans must be explicitly connected via a fallback teleport node. The Orphan will have one teleport node randomly placed on it, and the other will be randomly on a non-Orphan platform