Overview
Problem
Party games work best when everyone understands them in five seconds, but most multiplayer games need accounts, installs or long waits for an opponent. I wanted a one-rule game (stay in the ring) that is fair online, playable on any device, and never leaves a player waiting for a match.
Solution
Built Mini Sumo as a monorepo with a React Three Fiber client and a Colyseus server that decides every push, ring-out and winner, so clients only send input. The same game session also runs inside the client, which gives a fully playable offline mode against bots when no server is reachable. Added quick match with bot fill-in after 30 seconds, private rooms with invite links, touch and keyboard controls, a wardrobe for hair, face and outfit, and a server-side virtual coin economy with arenas, an append-only ledger and a cosmetic shop. Releases for web, Windows, macOS, Linux and Android are built and published automatically with GitHub Actions.
Team
SoloTechnologies
- React
- React Three Fiber
- Three.js
- TypeScript
- Colyseus
- Node.js
- Vite
- Electron
- Capacitor
- Multiplayer Networking
- GitHub Actions
Feature Highlights
Fair authoritative multiplayer
The Colyseus server decides every push, ring-out and winner; clients only send input. Quick match and private rooms with invite links support 2–4 players.
Offline practice mode
The same game session runs locally in the app, so the game is fully playable against bots with no server and falls back automatically when the server is unreachable.
Wardrobe and Sumo Coins
Dress your wrestler with hair, face and outfit options, and earn or spend virtual coins across arenas. Looks never affect gameplay.
Play anywhere, released automatically
Web, Windows, macOS, Linux and Android builds with keyboard and touch controls, published as GitHub Releases by a CI pipeline.
Gallery
Lessons Learned
Keeping a single authoritative game session and reusing it on both the server and the client made offline mode almost free and kept every rule in one tested place. Building the economy server-side from the start, with idempotency keys and refunds, was far easier than retrofitting fairness later.

