greglab
GamesLive

Thrasher

Skate, inline, and BMX trick battles.

A two-to-eight-player extreme-sports score attack where skateboard, inline, and BMX riders chain tricks across a procedural park and settle collisions through server-owned rules.

Players
2–8 riders
Session
3 minutes
Ride types
Skateboard, inline, BMX
First commit
2026-08-21

What it is

Thrasher puts two to eight riders into a compact procedural skatepark for a three-minute score attack. Players build speed, find a line, chain tricks, grinds, and transfers, then land cleanly to bank the combo.

Skateboard, inline skates, and BMX each have distinct movement tuning. Rapier drives responsive local motion across ramps, bowls, stairs, ledges, rails, and long linked transfers while remote riders interpolate shared snapshots.

Trick variety, rotation, grind distance, transfers, and clean landings grow a combo; repetition loses value and a bail wipes out the unbanked line. Punches and kicks can knock down rivals or disturb a grind.

The browser reports movement and scoring facts rather than point totals. The Node, Express, and Socket.IO server owns the timer, scores, combo state, combat, respawns, and spawn protection.

Highlights

  • ●Three distinct ride types
  • ●Procedural skatepark lines
  • ●Server-owned scoring and knockdowns

Captured features

Inside the project

Three ride stylesThe session entry screen introduces Thrasher's three ride styles before riders join the park.

Capabilities

Key features

Three ride styles

Agile skateboards, fast inline skates, and heavy high-air BMX bikes create different approaches to the same park.

Procedural skatepark

Ramps, bowls, banks, stairs, ledges, and linked rail lines create intersecting routes for short and long combos.

Combo score attack

Tricks, rotations, grinds, transfers, and variety build a line that must be landed to bank its score.

Multiplayer brawling

Server-checked punches and kicks create knockdowns and grind disruption during the three-minute session.

Canonical match results

The server accepts bounded gameplay facts and calculates scores, timers, combat, and results itself.

Under the hood

How it works

  1. 1React Three Fiber and Three.js render the park, riders, camera, HUD, and effects around a Rapier local simulation.
  2. 2The client sends bounded movement reports and facts such as trick names, rotation, and grind duration over Socket.IO.
  3. 3Shared TypeScript configuration and a pure scoring reducer define ride tuning, combo rules, limits, and combat values.
  4. 4The Express server validates reports and owns room phase, score, combat, respawns, protection, and the match clock.

Recent changes

Full changelog →
  1. Rebuilt arcade skating and multiplayer brawling

    Reworked the ride feel, trick flow, knockdowns, and competitive multiplayer loop.

  2. Added a long-distance rail transfer

    Expanded the park in two directions and linked the new route with a long transfer line.

  3. Expanded the linked rail line

    Added a connected rail route to create longer combo opportunities across the park.