Guide

Game on-the-ground attack systems explained

Harbor Brawl's grappler mains kept reporting “my sweep whiffed on a downed opponent” while rushdown players complained the opposite: standing normals clipped through bodies on the floor. Root cause: OTG eligibility lived on individual move scripts, knockdown hurtboxes shrank inconsistently during fall animations, and no shared clock defined when floor attacks were legal. After introducing a unified OTG window tied to knockdown state, standardized grounded hurtboxes, and a three-class OTG move taxonomy, legitimate OTG confirm rate in ranked duels rose from 23% to 41% and rollback desync tickets tagged “floor hit” dropped to zero in a 12,000-match soak test.

On-the-ground (OTG) attacks let the attacker strike a defender who has not yet completed getup — typically during soft knockdown floor time or after a juggle lands the opponent in a grounded state. OTG extends combos, layers okizeme before wake-up meaties, and creates mixups between sweeps, delayed jumps, and throw attempts. This guide covers OTG move classes, knockdown window math, hurtbox contracts, oki sequencing, the Harbor Brawl refactor, a technique decision table versus meaty-only knockdown pressure, pitfalls, and a production checklist.

What OTG attacks are

An OTG attack is any offensive move whose hitbox is allowed to connect with a defender in a grounded knockdown state — lying, crumpling, or sliding on the floor before standing animation begins. Without OTG rules, downed hurtboxes are often invulnerable to standing normals by design; OTG moves opt into a separate collision channel or flag that overrides the default “cannot hit prone target” rule.

OTG solves three design problems:

  • Combo extension — convert a knockdown into extra damage or a reposition before the defender rises.
  • Oki layering — force a block, hit, or throw read before wake-up reversal windows open.
  • Route differentiation — reward characters with sweeps and OTG tools without giving every normal floor coverage.
Term Meaning
OTG window Frame range during knockdown when grounded hurtbox is hittable by OTG-flagged moves
OTG move Attack with can_hit_grounded (or equivalent) enabled for eligible knockdown types
Meaty oki Timed attack that hits on the first wake-up frame — orthogonal to OTG but often sequenced after it
Hard knockdown Knockdown type that closes OTG window early or denies OTG entirely
Ground bounce Secondary state where OTG may re-open after initial knockdown — common in anime fighters

OTG move taxonomy

Not every low attack is OTG. Classify offensive tools by how they interact with the floor state machine:

Class Examples Typical use
OTG sweep Crouching heavy kick, slide kick Reliable floor coverage; often slow recovery, high reward on hit
OTG special Dedicated ground stomp, drill, fireball on downed body Character identity; may consume meter or have longer startup
OTG launcher OTG into aerial juggle (e.g. ground bounce ender) Extends combo route; must respect juggle budget and scaling
OTG throw / command grab OTG throw, ground throw Beats fuzzy jump and delayed mash; often slower than sweeps
OTG projectile Low beam, mine on downed hurtbox Sets up delayed oki; watch for projectile invuln on wake
Non-OTG low Standing low that whiffs on prone targets Intentional gap — defender learns which lows are true oki tools

Harbor Brawl tagged every move with otg_class (none, sweep, special, launcher, throw) instead of a single boolean. Designers could allow sweeps on soft knockdown only while launcher OTG required a juggle-eligible grounded state — eliminating the old pattern where one global is_otg flag made launchers hit during hard knockdown by accident.

Knockdown window math

OTG feel is almost entirely timing. Define these frames on the defender state machine:

  1. Knockdown onset — frame the defender enters grounded state; hurtbox switches to prone capsule.
  2. OTG open — first frame OTG-flagged attacks can connect (may lag onset by 2–6 frames for fall animation clarity).
  3. OTG close — last frame before getup animation begins; after this, only meaty wake-up timing applies.
  4. Quick-rise branch — if the defender can tech roll early, OTG close may shorten dynamically.

A practical formula for sweep coverage:

otg_connect_frames = otg_close - max(otg_open, attacker_move_startup - travel_frames)

If otg_connect_frames < 0, the sweep cannot reach the downed hurtbox before getup — players perceive this as “OTG doesn't work.” Harbor Brawl exposed OTG open/close in the training overlay and tinted the prone hurtbox green only during the legal window, cutting “broken OTG” reports 78%.

Tie OTG close to knockdown advantage consistently: soft knockdowns should leave at least one OTG attempt window for mid-speed sweeps (startup 12–18f); hard knockdowns close OTG before any grounded attack recovers.

Grounded hurtbox contract

OTG bugs often come from hurtbox animation, not move flags. Standardize:

  • One prone capsule per knockdown type — avoid per-frame mesh shrink that lets sweeps whiff on late fall frames.
  • Head vs body zones — some games allow OTG lows only on legs; document which zones each OTG class checks.
  • Pushback on OTG hit — slide the defender along the floor or leave them in place; inconsistent pushback breaks combo resets.
  • Invuln tail — brief post-OTG invuln prevents infinite re-OTG loops unless juggle budget allows.

Rollback netcode requires deterministic hurtbox keys: serialize knockdown type, OTG open/close, and prone capsule dimensions — not just animation time.

Oki sequencing: OTG before meaty

Strong knockdown pressure stacks layers in time order:

  1. Immediate OTG — sweep or special on first OTG-open frame; catches delayed tech and fuzzy jump late.
  2. Delayed OTG — empty jump or walk forward then sweep; beats early mash and quick-rise.
  3. Meaty — attack active as defender stands; frame traps reversal buttons.
  4. Shimmy / throw — after respect is conditioned.

Each layer needs distinct frame data. If OTG sweep and meaty share the same startup, defenders cannot distinguish block-low from block-mid on wake. Harbor Brawl gave OTG sweeps +4f advantage on block into a safe jump option while meaties remained throw-loop threats — oki damage share rose without lengthening infinite throw loops.

Harbor Brawl refactor (worked example)

Before refactor:

  • 47 moves had ad-hoc hits_grounded booleans; 12 conflicted with knockdown type tables.
  • Prone hurtbox height varied ±18% across knockdown animations.
  • OTG window was animation-length-based — desynced under hitstop.

After refactor:

  • Central KnockdownProfile per type: OTG open/close offsets from state entry, independent of clip length.
  • Single prone hurtbox asset per profile; animation only visuals.
  • otg_class matrix: which classes legal per knockdown type and juggle state.
  • Training overlay: OTG window bar + hitbox tint.

Metrics after two balance patches: OTG confirm rate 23% → 41%; average oki damage per round +6.2%; hard-knockdown routes unchanged (no OTG creep on HKD).

Technique decision table

Scenario Prefer Avoid
Soft knockdown combo routes OTG sweeps + launcher OTG with juggle budget Meaty-only oki with no floor layer
Hard knockdown neutral reset Close OTG window; meaty or spacing oki only Global OTG flag on all lows
Grappler knockdown pressure OTG throw plus sweep triangle OTG throw with faster startup than sweep (removes sweep purpose)
Anime juggle enders Ground bounce re-opens OTG with separate budget Infinite OTG loop without scaling or juggle cap
Rollback fighters State-entry OTG clocks + fixed prone capsule Animation-normalized OTG timing
Teaching new players Training overlay with OTG window visualization Hidden per-move OTG flags with no UI feedback
Competitive balance OTG reward tied to slow recovery or meter cost Fast OTG special with full combo conversion every knockdown

Pitfalls

  • Boolean OTG on every low — removes knockdown type meaning; hard knockdowns feel identical to soft.
  • Animation-based OTG windows — desync under hitstop, rollback, and slow-motion effects.
  • Shrinking prone hurtboxes — sweeps whiff arbitrarily on late fall frames.
  • OTG without oki follow-up — floor hit that leaves attacker minus on wake gives no payoff for learning OTG.
  • OTG launcher without juggle cap — infinite aerial loops break damage scaling intent.
  • Overlapping OTG and meaty active frames — defenders cannot parse low vs mid on wake.
  • Inconsistent HKD enforcement — one move bypasses hard knockdown OTG denial and invalidates defensive routes.
  • No debug visualization — OTG bugs become player superstition instead of fixable timing tickets.

Production checklist

  • Define knockdown profiles with OTG open/close offsets from state entry, not clip length.
  • Tag moves with OTG class (sweep, special, launcher, throw) and legal knockdown matrix.
  • Standardize prone hurtbox per profile; decouple collision from visual animation.
  • Verify sweep startup fits OTG connect window for each soft knockdown type.
  • Enforce hard knockdown OTG denial in one central gate, not per-move exceptions.
  • Stack oki layers: OTG, delayed OTG, meaty, throw/shimmy with distinct timings.
  • Pair OTG hits with block advantage or juggle route so floor pressure has payoff.
  • Expose OTG window in training mode; log OTG whiff reason (closed, wrong class, miss).
  • Rollback test: serialize knockdown state, OTG clocks, and prone capsule each frame.
  • Balance patch: track OTG confirm rate and oki damage share separately from neutral hits.

Key takeaways

  • OTG attacks hit defenders in grounded knockdown before getup completes.
  • OTG windows must be state-clock based, not animation-length based, for rollback safety.
  • Classify OTG moves (sweep, special, launcher, throw) and tie each to knockdown type rules.
  • Harbor Brawl OTG confirms rose from 23% to 41% after unified windows and hurtboxes.
  • Layer OTG before meaty oki so knockdown pressure has multiple timed reads.

Related reading