Trail Brawl (prototype)

Local 2-player. First to 5 KOs wins. Click the canvas first so it has keyboard focus.

Player 1 (blue, left)

AD move   W/S aim up/down   Space jump
LMB hold = aim dash at cursor (slow-mo), release = dash
RMB punch at cursor   Shift punch (movement dir)
Rebind in Lobby → Controls. Gamepad supported.

Player 2 (red, right)

move   jump   aim down
Enter dash
/ punch

Mechanics (own trails only)

Touch (endpoints meet)
        -> trails CONNECT, live 3.5s
           (refreshes on each new connection
           across the whole component)

Overlay (retrace a line: near-parallel,
         close, sharing >=35% of length)
        -> SHIELD along the shared span
        -> overlaid pairs NEVER form
           V/T/X junk (anti dash-spam)

Cross (mid x mid, after dash ends)
        -> ALL connected lines DETONATE
           along their geometry

Arrow (3+ trails clustered at ONE point)
        -> ball flies in V's tip direction
        -> two OLDEST in cluster define angle
        -> ball size scales w/ component count
        -> PUNCH during 1.8s windup -> instant
           fire in punch direction (faster)

Triangle (3 trails in REAL closed cycle,
          each using BOTH endpoints)
        -> physics object falls, kills below

Polygon (4+ trails in REAL closed cycle,
         each using BOTH endpoints)
        -> AOE inside polygon (1.0s windup)
        -> kill zone gets bigger as the
           polygon gets bigger (4, 5, 6...)
        -> PUNCH any side during windup ->
           that side flashes; AOE is
           cancelled; at end of windup a
           rectangle beam fires perpendicular
           OUTWARD from the punched side,
           clipped to walls on all sides;
           shields cut the beam laterally
           (covered slice stops, uncovered
           slice slips past); only ONE side
           per polygon

Whip (H = |-|, crossbar's two endpoints
      T-strike two non-V-touching stems)
        -> twin lashes pivot at the
           contacts and sweep outward
           through opposite half-discs
        -> reach + thickness scale with
           consumed-trail count
        -> PUNCH a pivot during the
           animation -> that lash strikes
           a SECOND time, sweeping back

Spear (Bow = same as H but the two
       stems V-touch at one end)
        -> 2.2s windup, then a laser
           fires OUT THROUGH the bow tip
           edge-to-edge across the arena
           (~2.8s long-burn life)
        -> thickness scales with
           consumed-trail count
        -> SHIELDS reflect the laser; if
           a shield expires mid-fire the
           laser snaps back straight
        -> PUNCH during windup -> resets
           the windup AND arms a screen-
           splitting bidirectional fire

Tripwire (residue from cross-detonate)
        -> every T-stem in the explode
           set leaves a delayed tripwire
           after the explosion: ~3.5s, one
           kill on contact

Lightning (5-trail zigzag V-chain,
           alternating turn direction)
        -> caster buff ~4s: next punch
           that HITS stuns 2.4s w/ arcs

All patterns fire only when a dash ends. Multiple spells can fire from one dash (e.g., arrow + cross detonate).

Triangle: only its owner can punch it. Arrow ball + Bow + Whip pivots + Polygon sides can all be punched during their windup/animation.

Dashes refresh on landing — but every dash builds heat (bar above your head; punches you take add heat too). Overheat and, until you cool down, landings refill nothing and you can't punch: bursts and spell-casting are fine, endless dash spam starves. Punching into a nearby wall launches you off it (wall-punch recoil). Punch cooldown = the punch animation: fist gone, ready again.

Mobile / touch

Left half of canvas = follow-touch joystick (movement).
Right half (outside the buttons) = dash joystick.
Bottom-right corner button = PUNCH; the button left of it = JUMP.
Touch UI controls the local player.

System

14 movement preset (local play only; online locks to Current). Match restart goes through the post-match Replay vote.

prototype · R2 rollback · trail-brawl.pages.dev

Play Online

Pairs you with the next player who hits Quick Match.

private match

Quick Match

Searching for an opponent…

Local 2P

Pick a mode — both players share this keyboard.

How to Play

Dashing draws glowing trails. Trails that touch connect; connected shapes cast spells the moment a dash ends:

Arrow — 3+ trail ends meeting at one point fire a ball.
Triangle — 3 trails in a closed loop drop a bomb (punch it to launch!).
Polygon — 4+ in a loop = area blast; punch a side to fire a beam instead.
Whip / Spear — an H-shape sweeps lashes; a bow-shape fires a laser.
X-cross — crossing mid-over-mid detonates every connected line.
Shield — retrace a line (draw over it) to raise a reflector.
Lightning — a 5-stroke zigzag charges your next punch with a long stun.

Punch launches opponents (and redirects most spells mid-windup). Heat: every dash warms you up — overheat and landings stop refilling dashes until you cool off. First to 5 KOs wins.

Controls

Mouse: hold left click = aim dash at cursor (slow-mo), release = dash. Right click = punch at cursor.
Gamepad: left stick move · bottom button jump · left button punch · right button dash · right stick aim-dash (release to fire).

Private Match

Share this code with your friend:

----

Connecting to signaling…

Join Game

Enter your friend's 4-character code: