Inspiration

We wanted a party game that feels loud and funny in a room — not another solo phone game. The idea was simple: four friends, one laptop on the table, and each person only controls half of a car. People have to shout, trust each other, and laugh when someone shakes at the wrong time.

What it does

CarFasto (Split Steering) is a 4-player racing game.

  • Two teams: Blue and Orange
  • Each team shares one car
  • One player shakes left, their teammate shakes right
  • The laptop shows both roads side by side
  • Traffic is the same for both teams (fair race)
  • First team to crash loses
  • After a crash, the screen plays a short slow-motion replay, then shows the winner

Phones can use real shake controls (on HTTPS) or big touch buttons as a fallback.

How we built it

  • Frontend: React + TypeScript + HTML Canvas
  • Backend: Node.js + Express + Socket.IO (one live server that runs the game)
  • The server is the boss: car positions, traffic, crashes, and scores
  • Rooms live in memory (no database, no accounts)
  • Deployed on Render with HTTPS so phones can join from anywhere

We used Cursor throughout the build. We described the game we wanted, worked through the implementation with it, and kept testing and adjusting. It also helped us fix deployment problems, broken QR links, and add the crash replay.

Challenges we ran into

  1. Real-time multiplayer — keeping four phones + one laptop in sync without lag
  2. Fair traffic — both teams must see the same obstacles, and those obstacles must be avoidable
  3. Shake controls — one real shake should send one move, not ten
  4. Deploy on Render — production installs skipped build tools, so the server file was missing until we fixed the build command
  5. QR join links — a bad PUBLIC_ORIGIN value broke the QR code; we fixed origin handling so phones open the right join URL

What we learned

  • Authoritative servers make multiplayer games much more trustworthy
  • Motion controls need careful tuning (cooldown, sensitivity, touch fallback)
  • Small party-game moments (shouting, slow-mo replay) matter as much as the core mechanics
  • Cursor + Grok Bot work well as a team: Cursor writes the code, Grok Bot helps run the workflow around it

Built With

Share this project:

Updates

Submission history