Physics & Combat Systems Review
SystemFlare
Design Document
A soft-capped momentum model built for fluid, high-velocity gameplay. All systems derived from a single Terminal Velocity master value.
Built on a soft-capped momentum model. Velocity is never abruptly zeroed or hard-clamped mid-chain — every domain has a ceiling that acceleration asymptotically approaches.
Velocity Tiers
Soft Cap Behavior
| Speed Zone | Accel Scale | Feel |
|---|
| Below Chained | 100% | Responsive, snappy |
| Chained → High | ~40% | Building momentum |
| High → Terminal | ~10% | Pushing the limit |
| At Terminal | 0% | Maximum velocity locked |
Momentum Chaining
| Chain | Result | Velocity Behaviour |
|---|
| Dash → Slide | Horizontal thrust into extended slide | Carries magnitude, soft-capped at High |
| Slide → Jump | Max speed preserved mid-air | Carries magnitude, cannot exceed Terminal |
| Air-strafe | Minor directional correction | No magnitude gain — direction shift only |
✦Each transition must read the current velocity magnitude and carry it forward — never reset to base speed. Clamp against Terminal ceiling before applying to next state.
Mode A — Traversal
Anchoring to static geometry pulls the player forward. Swing arcs multiply velocity — capped at Terminal (60 AU/s) regardless of arc length.
Mode B — Object Whip
Anchoring to dynamic props locks it to the tether as a flail. Release launches it capped at Terminal × 1.5 = 90 AU/s.
| Mode | Target | Speed Cap | Pivot |
|---|
| A — Traversal | Static geometry | 60 AU/s | World-space anchor |
| B — Object Whip | Dynamic props | 90 AU/s | Player position each frame |
⚠Mode B angular velocity must be calculated relative to player's position each frame, not a world-space anchor.
Damage ∝ Velocity² — evaluated against Terminal ceiling (60 AU/s)
| Tier | Range | Damage | Knockback |
|---|
| Low / Medium | 0 – 24 AU/s | Low | Minor |
| High | 25 – 44 AU/s | Heavy | Massive |
| Terminal | 45 – 60 AU/s | Instant Kill | High-impact VFX |
Object Damage Matrix
| Object Type | Low Velocity | High Velocity |
|---|
| Blunt | Light stagger | Heavy damage + massive knockback |
| Sharp (flat) | Light stagger + minor blunt | Moderate blunt + high knockback |
| Sharp (tip first) | Minor piercing | Severe piercing / cleave |
Sharp vs. Flat — Dot Product
Vector A = shard tip direction (forward axis)
Vector B = shard velocity vector
dot(A, B) near 1.0 → tip leading → Sharp / Piercing
dot(A, B) near 0 or -1 → flat leading → Blunt + Knockback
✦Grapple-whip should naturally trail the shard so tip faces forward on a clean throw — making sharp damage the rewarding skilled outcome.
// Step 1 — Capture scalar magnitude
speed = clamp(totalBuiltUpSpeed, 0, ObjectMaxLaunchSpeed)
// Orbital direction DISCARDED
// Step 2 — Project along camera vector
launchVelocity = cameraLookVector * speed
| Scenario | Result | Why |
|---|
| Erratic wiggle | Weak throw | Low scalar magnitude — vectors cancel |
| Committed flick | Max-speed accurate throw | High scalar, fires down sights |
| Back-and-forth inputs | Near-zero magnitude | +X and −X cancel mathematically |
Option A — Kinetic Re-Route
RawLaunchVelocity = V_incoming + V_player
TotalLaunchVelocity = min(RawLaunchVelocity, 120) // Terminal × 2.0
Option B — Kinetic Skid
| Incoming Momentum | Result |
|---|
| Low / Medium | Clean catch — capsule dampens instantly |
| High / Terminal | Object stops relative to player; kinetic energy shoves capsule into auto backward skid |
⚠Define a clear catch window frame count. Skid duration proportional to incoming momentum — not a fixed timer.
| Impact Type | Physical Response | Input State |
|---|
| Blunt / Fall | Full ragdoll, auto-recovery | Inputs disabled during ragdoll only |
| Sharp penetration | Micro-stagger only | Inputs uninterrupted |
| High-vel kinetic stomp | Full ragdoll (if not death) | Inputs disabled |
✦Lock inputs during tumble only — not the stand-up transition. Over-extending the lock makes recovery feel sluggish.
- Velocity Priority: Higher kinetic energy player dictates the pull vector.
- Asymmetric LoS: Only initiator must maintain line-of-sight. Target cannot break link by looking away.
- Tether Break: Snaps if initiator loses LoS, or target dashes in exact opposite direction of pull.
- Ragdoll Restriction: Full physics-whipping only possible when target is already ragdolled.
- Tiebreaker: Equal velocity → initiator wins. Rewards the skill-shot of landing the grapple.
| Property | Value |
|---|
| Charge | Hold secondary — hovers shard in front of player |
| Release | High-velocity, near-zero drop projectile |
| Velocity Inheritance | Inherits player kinetic energy at release |
| Speed Cap | Terminal × 1.25 = 75 AU/s |
| Hit Behavior | Always tip-first — severe piercing + micro-stagger |
| Ragdoll Interaction | Bypasses ragdoll state entirely |
✦A stationary player's rail-shard is notably weaker — prevents camping. Near-instant-kill at terminal is via damage scaling, not arbitrary speed.
✦No weapon swap delays. Any equip latency would break movement chains. Non-negotiable.
A look-cone check scans for targets on release. If found, micro-delays release (sub-100ms) until trajectory aligns with target. If no target — instant free-throw with zero delay.
- Zero Frame Delay: Object released the exact millisecond the player lets go when no target is in cone.
- Pure Tangential Release: Flies in a straight line from exact orbital velocity at that frame.
- Skill Utility: Throw cover ahead, smash distant barriers, clear paths.
⚠Micro-delay must be sub-100ms and capped to one swing cycle. Never holds release unconditionally.
Projectiles below minimum kinetic threshold do not despawn. They fall nearby as active physics props — re-tetherable or launchable via shockwaves.
⚠Implement a despawn timer or count limit to prevent arena clutter in long matches.
Visual
- FOV Scaling: Base → no change, Terminal → max +15°. Capped at Terminal.
- Wind Streaks: Particles activate at High tier, intensify at Terminal.
- Crosshair Flare: Expands at Terminal velocity as kinetic stomp indicator.
- Stun Filter: Full monochrome on blunt knockdown, flashes back on recovery.
Audio
- Speed Threshold: Ambient ducks at max velocity → wind-rush soundscape.
- High-speed Impact: High-bass structural cue.
- Stun State: Ambient replaced by low-frequency muffled heartbeat.
- Kinetic Skid: Heartbeat pulse + mechanical dampening screech.
Destructible Geometry
⚠Post-launch feature. Requires Voronoi / pre-fractured mesh system. Use placeholder non-shattering barriers during development.
| Step | Event |
|---|
| 1 | Blunt knockdown — all combat UI suppressed instantly |
| 2 | Screen goes monochrome |
| 3 | Capsule enters physics tumbling — inputs locked |
| 4 | Stabilization meter appears (synced to heartbeat) |
| 5 | Window elapses — screen regains full colour |
| 6 | Audio returns to normal |
| 7 | Capsule forces upright — movement re-enabled immediately |
✦Fixed stun window — variable-length stuns feel unfair. A consistent window transforms it from punishment into a learnable skill mechanic.
Terminal Velocity is the master value. All other caps are multipliers of Terminal — changing one number rebalances everything.
| Cap Name | Value | Multiplier | Governs |
|---|
| Base Move Speed | 10 AU/s | — | Default grounded movement |
| Chained Speed | 25 AU/s | — | Sustained momentum chains |
| High Speed | 45 AU/s | — | Dash-slide sequences |
| Terminal Velocity ★ | 60 AU/s | T × 1.0 | Absolute player ceiling |
| Whip Launch Cap | 90 AU/s | T × 1.5 | Max thrown prop speed |
| Rail-Shard Cap | 75 AU/s | T × 1.25 | Max rail-shard flight speed |
| Counter-Throw Cap | 120 AU/s | T × 2.0 | Max re-routed catch speed |