Inspiration
We had never built a multiplayer game before, so this project was a chance to challenge ourselves, learn new technologies, and experiment with real-time systems.
What it does
Royal Wars: Web Edition is a browser-based multiplayer grid game. Players join, move around, collect fruits, and battle for the highest score within timed rounds.
How we built it
We used SpacetimeDB for real-time state synchronization and subscriptions, along with modern web technologies for the front-end. The backend logic was defined using table/type definitions and module bindings (similar to gRPC). We refreshed our C# knowledge while implementing server-side logic, and designed the grid UI for smooth player interaction.
Challenges we ran into
- Managing real-time connections with SpacetimeDB and the development server.
- Handling UI adjustments and making the grid responsive for desktop.
- Debugging edge cases in collisions and score synchronization.
Accomplishments that we're proud of
- Built a fully working multiplayer web game in under 20 hours.
- Successfully tested the system with 10+ simultaneous players.
- Learned to use SpacetimeDB beyond ORM—as a real-time database and event system.
What we learned
- How to use SpacetimeDB’s real-time subscription model effectively.
- The importance of handling edge cases in multiplayer interactions.
- Core concepts of web game design, from grid-based movement to score tracking.
- That rapid prototyping is possible when we focus on essentials.
What's next for Royal Wars on Web
- Introducing team formations instead of just solo play.
- Adding new types of fruits with different effects.
- Allowing players to define their own emojis/avatars.
- Supporting different grid sizes and game modes for variety.
Built With
- c#
- spacetimedb
- typescript
- vercel
- vite.js

Log in or sign up for Devpost to join the conversation.