Reflex Royale
A multiplayer reaction-time game where the server runs the rooms, starts each round and times every reaction.
- Next.js
- Express
- Socket.IO
- MongoDB
- bcrypt
- Playwright
key results
- 109tests (51 Node, 58 Playwright layout checks), all passing
- 4 playersper room, joined with a 6-character code
- server-timedreactions, measured on the server with performance.now()
demo
> live democoming soonIt will run at reflex.makinchii.dev.
media
screenshot coming soon
screenshot coming soon
how it works
server-authoritative rounds
Rooms hold up to four players and are joined with a 6-character code from
crypto.randomInt. The server starts each round after a random 1–5 s delay and measures
reaction times itself, with performance.now(). False starts are rejected, and a round
times out after 2 s. A match runs 1–20 rounds.
accounts and sessions
Accounts use bcrypt, and sessions are stored in MongoDB (connect-mongo). A player who drops can reconnect, and if the host leaves, hosting moves to another player. A local mode lets players share one keyboard.
team
Three of us built it; I wrote 71 of its 89 commits. It isn’t hosted yet.
what i'd do next
- Require a session secret in every environment, with no fallback.
- Compute match stats on the server instead of taking them from the client.
- Document the rights to the music, or replace it, before hosting the game.
- Host it at reflex.makinchii.dev.