Inspiration
We wanted the fun of Wii Sports badminton without the console, using the phone already in your pocket as the racket. Plus, you can play from anywhere - with friends across cities, countries, and continents!!
What it does
Rally turns your laptop into a badminton court and your phone into a motion-controlled racket, so you can play 1v1 across two laptops or against the CPU.
How we built it
We built it with Three.js for the 3D court, phone motion sensors for swings and SpacetimeDB as the referee, which decides every shot, landing, point and CPU move on the server. SpacetimeDB is our reactive backend: database, game server, and real-time sync in one!
Challenges we ran into
The hardest part was keeping swing timing fair over a network, so the server checks every swing against its own clock and rejects faked "perfect" hits.
Accomplishments that we're proud of
We're proudest of fog of war, where the opponent's shot never reaches your laptop until it crosses the net, enforced by the database rather than hidden on screen.
What we learned
We learned how to use a database as a real-time game server, with private tables, views and scheduled reducers replacing a traditional game loop.
What's next for Rally
We’re scaling Rally into an enterprise. By combining the devices people already own—their laptop and phone—we eliminate the high hardware barrier of a $300 Nintendo Switch or $500 Meta Quest. No store trips, no complex setup, and no physical limits: just seamless, global multiplayer gaming accessible to anyone, anywhere.
Built With
- cloudflare-tunnel
- cloudlfare
- css
- devicemotion-api
- deviceorientation-api
- game-ai
- html5
- javascript
- localstorage
- mobile
- node.js
- npm
- qrcode
- real-time-multiplayer
- screen-wake-lock-api
- spacetimedb
- sql
- three.js
- typescript
- unreal-bloom
- vibration-api
- vite
- web-audio-api
- webgl
- websockets
Log in or sign up for Devpost to join the conversation.