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

Share this project:

Updates