I've been quietly building a browser-based multiplayer space game called Universe Defence. This is the first post in a series where I'll talk about what it is, why I built it, and what I've learned along the way.
What is it?
Universe Defence is a real-time MMO set in a scaled-down solar system. Players pilot spaceships, fight bot enemies, navigate asteroid fields, and exist alongside planets and moons that are physically orbiting in real time. The solar system is always moving - it doesn't wait for you.
The goal was simple: make something that feels alive. Most browser games have static backgrounds. I wanted a world where the environment itself is dynamic, where the sun actually rises (relative to your ship), where planets drift across your radar while you're in a dogfight.
Why build it?
Mostly because it seemed hard.
I wanted a project that would force me to think about distributed systems, real-time communication, physics simulation, and game feel — all at once. A space MMO touches all of those things. It's also just a genuinely fun domain to work in.
How it works (roughly)
The game runs in the browser using WebGL for rendering. The backend is a set of independent services that each handle a slice of the simulation — one for physics, one for spawning enemies, one for managing player connections, and so on. They all share a common state and communicate in real time.
The result is that everything you see in the game — a planet moving across the screen, a bot turning to chase you, a laser hitting an asteroid — is driven by the server. The client is just a window into a world that exists independently of whether you're watching it or not.
What's been interesting
The hardest problems have been the subtle ones. Not the big algorithmic challenges, but the quiet failures — things that almost work. A shot that fires but doesn't register. A planet that's moving on the server but appears frozen on screen. Bugs that only surface when multiple systems interact in a specific order, under real conditions.
Debugging those has taught me more than any of the "hard" parts. You can understand a system deeply and still be surprised by how it behaves in practice.
What's next
The game is playable but far from finished. Things I'm actively working on:
- A persistent universe that survives server restarts
- Player-vs-player combat
- Resource extraction and ship upgrades from mining asteroids
I'll write more as each of these comes together. If you want to follow along or try the game, stay tuned.