Guide

Game crossup and side-switch combat systems explained

Harbor Brawl's neutral looked healthy on paper — pokes, projectiles, and high/low mixups all existed — but matches devolved into walk-forward jab wars. Jump attacks always landed on the same side; rolls passed through without changing facing; defenders held back once and solved every jump-in. Crossup damage sat at 4% of round damage. Players called neutral “flat” because left-right ambiguity never entered the decision tree.

The refactor added explicit crossup and side-switch mechanics: hurtboxes that can overlap the defender's centerline, facing rules that flip block direction at the right moment, empty jumps that bait reversal inputs, and corner-carry routes that reward successful side switches with okizeme. Crossup damage share rose to 22% without higher single-hit damage or longer combos. This guide covers crossup taxonomy, defender facing and block-direction math, crossup protection policies, implementation details grounded in frame data, the Harbor Brawl neutral refactor, a technique decision table versus high/low-only mixups, pitfalls, and a production checklist.

What a crossup is

A crossup is an attack that hits the defender from the side opposite where they are holding block. In most fighting games, holding away from the attacker blocks high and mid attacks. When the attacker's hurtbox passes over or through the defender's centerline before the active frames land, the defender must block toward the other direction — or eat the hit.

Crossups create left-right ambiguity, a mixup axis orthogonal to high/low. A defender who correctly blocks low against a jump attack still fails if they held block toward the wrong horizontal side. Crossups are not inherently unfair: they reward spacing, timing, and reading defensive habits. They become oppressive only when ambiguous on every jump, unreadable offline, or paired with safe recovery that removes guess consequences.

A side switch is any mechanic that places the attacker on the defender's opposite flank — crossup attacks, rolls behind, teleports, command grabs that swap positions, or wall-bounce routes that flip corner advantage. Not every side switch is a crossup: landing behind someone with a slow overhead may give time to turn and block. The design question is whether the switch creates a forced guess within the defender's reaction window.

Crossup taxonomy

Crossups differ by approach vector, active-frame geometry, and whether the attacker becomes actionable before the defender can reorient.

Airborne crossups

Jump normals or specials whose horizontal velocity carries the attacker past the defender's axis during startup or active frames. Classic examples: forward-jump kick that drifts backward on descent, divekick that lands behind, air dash that clips through. Tuning knobs: jump arc, horizontal drift per frame, active-frame box offset, and landing recovery.

Empty jump crossups

The attacker jumps over the defender but does not press an attack, landing behind to bait a reversal or anti-air input in the wrong direction. Empty jumps condition defenders to hesitate on block direction — setting up real crossup attacks later. Empty jumps must risk something (throw range, low meaty on landing) or they become free mental damage.

Ground slide and roll crossups

Low-profile movement that passes under or through the opponent: slides, rolls, crawls, certain command dashes. These crossups often beat standing block but lose to crouching lows or invulnerable reversals. Invincibility frames on rolls must be shorter than the defender's fastest check or rolls dominate neutral.

Teleport and set-play crossups

Instant or fast position swaps from neutral tools, traps, or assists. Readable startup and distinct VFX/audio telegraphs are mandatory — otherwise teleports feel like unblockable side switches. Cooldown or meter cost caps repetition.

Projectile and assist crossups

Slow projectiles that reach the defender from behind while the attacker approaches from the front, or tag-team assists that attack from off-screen. These layer with zoning rather than replacing it.

Defender facing and block-direction rules

Crossup feel is determined less by hurtbox art and more by when the engine flips defender facing and which direction counts as “back” for block input.

Common facing policies

  • Face nearest opponent — defender auto-turn each frame toward the closest hurtbox center. Crossups work when active frames land before the turn completes, or when two hurtboxes straddle the axis simultaneously.
  • Face last attacker position — facing updates on hit/block or when the attacker crosses a depth threshold. Predictable for players; easier to implement deterministically in rollback netcode.
  • Hold facing until actionable — defender keeps prior facing during hitstun and blockstun; crossups during blockstrings require explicit side-switch moves. Reduces accidental crossups from pushback alone.
  • Manual turn — rare in fighters; defender must press toward opponent to face. Crossups become about catching backward walk.

Block direction resolution

On each frame, compare defender block input vector to attacker position relative to defender facing. If hurtbox center X is behind defender facing, block-hold toward screen edge may block the wrong way. Document this in your combat design bible — QA bugs where crossups randomly fail are usually facing-threshold errors, not hitbox typos.

Pair facing rules with blockstun pushback: if pushback always returns the attacker to the same side, crossups need explicit side-switch moves rather than incidental drift.

Crossup protection and defensive counterplay

Many modern fighters add crossup protection (auto-block toward the last blocked side for one frame after a ambiguous jump) to reduce pixel-perfect unreadable crossups online. Policies vary:

  • No protection — pure reaction and prediction; highest skill ceiling, harshest online experience if hurtboxes are tight.
  • One-shot protection — first ambiguous hit auto-blocks; second crossup in a string must be read. Common compromise.
  • Protection after hitstun only — neutral crossups stay sharp; oki crossups softened to reduce wake-up frustration.
  • Hit crossup vs block crossup split — landing behind always hits if defender held block forward; only ambiguous block crossups get protection.

Defensive tools beyond block: universal crossup anti-airs with upward hitboxes, reversals with omnidirectional invulnerability, throw techs that work behind, and fuzzy guard (delay block input) borrowed from wake-up defense. If every answer is a guess, lower crossup damage or add longer telegraphs.

Implementation checklist for engineers

Ship crossups as data-driven systems, not one-off move hacks.

  • Centerline probe — each frame, flag when attacker root X crosses defender root X; log for debug overlays.
  • Crossup flag on hitbox — boolean or enum on moves that are allowed to hit from behind; prevents unintended crossups from pushback clips.
  • Facing hysteresis — small dead zone so facing does not oscillate when sprites overlap.
  • Block vector test — unit test: defender holding back-left must block crossup from right and fail against same-side hit.
  • Rollback determinism — facing updates must be identical on client prediction and server confirm; desyncs here look like random crossup failures.
  • Corner clamp — after side switch, verify both bodies fit within stage bounds without z-fighting collision pops.

Visual clarity: silhouette overlap at jump apex should communicate ambiguity before active frames. Audio panning that follows attacker position helps offline play; avoid relying on stereo alone for competitive readability.

Corner carry and crossup payoff

Crossups matter most when they convert neutral wins into sustained advantage. A successful side switch near midscreen should threaten corner push via combo routes, not only single-hit damage. Design loops:

  • Crossup into combo that ends in knockdown with attacker still crossup-side for meaty oki.
  • Side switch that wallsplats or increases wall bounce meter for corner carry.
  • Roll behind into throw or shimmy walk-throw when defender respects crossup block.

Without payoff, crossups are stylish but economically irrelevant — players return to safest pokes. Track crossup damage share and corner-conversion rate after side switches when balancing patches.

Harbor Brawl neutral refactor

Problem. Jump attacks used symmetric hurtboxes centered on the attacker. Defender facing flipped on landing, so holding back always worked. Rolls had no behind-throw or crossup follow-up. Corner carry required three clean reads with no side-switch shortcuts.

Changes.

  • Forward jump heavy drifted 12 pixels backward during active frames — first real airborne crossup for half the roster.
  • Defender facing updated on first active frame of jump attacks, not on landing — empty jumps became viable.
  • One-shot crossup protection after blockstun only; neutral crossups stayed sharp.
  • Roll behind added 8-frame throw whiff punish window; roll without follow-up became negative on block.
  • Corner trigger: second crossup in one combo added wall-splat meter +20%.

Results. Crossup damage 4% to 22%; neutral round length unchanged; low-block guess rate up 15% (players layered high/low with left/right). Tournament VOD review showed fewer walk-forward jab openings after patch 0.9.4.

Technique decision table

Design goalPreferOverWhy
Left-right mixup layerCrossup + side-switch routesHigh/low onlyOrthogonal guess axis; breaks single-direction block habits.
Readable online neutralTelegraphed drift crossups + one-shot protectionPixel-perfect ambiguous jumps every timeReduces feel-bad random blocks on rollback.
Corner conversionSide switch into wall carry / okiMidscreen damage-only crossupsRewards positioning, not just touch damage.
Conditioning defendersEmpty jumps and shimmy throwsAlways attacking crossupsCreates mental stack before real hits land.
Anti-zoning toolRoll/teleport crossup with cooldownFull-screen invincible teleportAnswers keepaway without deleting zoning identity.
Wake-up pressureMeaty crossup with fuzzy-guard respectUniversal crossup jump every knockdownPair with oki guide; avoid solved wake-up loops.
Deterministic netcodeThreshold-based facing flipPhysics-style overlap chaosRollback-safe; fewer desync reports.

Common pitfalls

  • Crossup every jump — defenders stop jumping; neutral stagnates. Reserve ambiguity for meter, cooldown, or spacing commitment.
  • Facing flips on landing only — empty jumps never work; players solve all jump-ins with one block direction.
  • No crossup protection online — tight hurtboxes plus rollback feel random; casual churn rises.
  • Protection that never expires — crossup characters become unviable; roster imbalance.
  • Safe crossup into plus frames — defender has no turn to guess; infinite block pressure.
  • Ignoring throw after crossup — players hold block forever; add throw or shimmy walk to complete the mixup.
  • Asymmetric hurtboxes hidden in art — competitive players demand debug overlays; ship them internally at minimum.
  • Side switch without corner payoff — stylish but economically irrelevant; track conversion metrics.

Production checklist

  • Document defender facing policy and block-direction test per character state.
  • Tag moves with explicit crossup-allowed flag; audit unintended crossups from pushback.
  • Implement centerline crossing debug visualization for designers.
  • Unit-test block direction for same-side hit, crossup hit, and empty jump land-behind.
  • Choose crossup protection scope (neutral vs oki vs none) and ship in patch notes.
  • Tune empty jump risk (throw range, low meaty) so baits are not free.
  • Verify rollback determinism on facing updates across 100+ simulated frames.
  • Link side switches to corner carry or oki payoff routes.
  • Track crossup damage share and post-crossup corner conversion in telemetry.
  • Playtest with both fightstick and keyboard; diagonal block inputs affect crossup reads.
  • Balance roll/teleport crossups with cooldown or negative recovery on whiff.
  • Review tournament VODs for solved crossup loops after each balance patch.

Key takeaways

  • A crossup forces the defender to block toward the attacker's landing side, not the approach side — left-right ambiguity is a mixup axis separate from high/low.
  • Defender facing rules and block-direction resolution determine crossup feel more than raw hurtbox size — document and test them explicitly.
  • Crossup protection trades pure reaction skill for online fairness; scope it to blockstun or one-shot policies rather than disabling crossups entirely.
  • Side switches need corner carry or oki payoff — Harbor Brawl's refactor raised crossup damage share from 4% to 22% without buffing damage numbers.
  • Empty jumps, throws, and shimmy walks complete the mixup tree — crossup attacks alone become blockable once conditioned.

Related reading