🎮 The Game Concept
The game is basically a cooperative Mini Metro: multiple players share the same transit map and have to keep it running as stations spawn across the city. Anyone can draw new train lines, extend existing ones, delete segments, or reroute an entire area if congestion hits.
It starts out peaceful.
Then new stations appear faster.
Then passengers start piling up.
Then someone accidentally deletes a key connection and everything collapses.
That mix of clarity and chaos is what makes it fun — and multiplayer turns it into a kind of friendly group puzzle where communication becomes the real mechanic.
⚙️ Why I Expected Multiplayer to Be Hard
Real-time syncing is normally the hardest part of a project like this. You’ve got:
stations spawning at random positions
multiple players editing the same network
passengers moving every second
timers that need to match on every device
reconnects that shouldn’t break everything
I assumed most of my weekend would go into networking.
Rune ended up handling almost all of it for me.
When a player dragged a line, everyone saw the update simultaneously. When a new station spawned, it appeared for every user at the same moment. Even refreshes and rejoins restored the full current state automatically.
Instead of debugging netcode, I spent my time actually designing the game.
🛠️ Building the Game Loop
The core of the game revolves around a single shared state: the list of stations, the train lines, the passenger queues, and the timers for new spawns. Every player action — adding a node, removing a segment, extending a connection — updates that state directly.
Passenger movement runs on a short timer. On each tick, passengers look for valid routes, move toward their destinations, and contribute to overcrowding if the network isn’t efficient enough.
When any station gets too full, the game ends.
Simple rule.
Guaranteed drama.
It’s fun watching players frantically coordinate, arguing about which line should get priority, or yelling when someone accidentally nukes the wrong segment.
đź§© What I Learned
Minimalist games are deceptively deep.
It took surprisingly careful tuning to make the rush of new stations feel fair but urgent.Real-time multiplayer isn’t always painful.
Having most of the networking handled freed me up to iterate on the gameplay loop instead of server logic.Chaos is a feature.
The best moments happen when players misunderstand each other and everything snowballs.
🎮 Try It Out
If you want to experience the multiplayer chaos yourself, you can try it here:
https://forge.rune.ai


Top comments (1)
Love how this feels like applying the “shared-nothing, single source of truth” idea from React/Redux to real-time multiplayer. One global state, lots of concurrent “actions,” and Rune as the state-sync engine. Also very Scrum-esque: Rune handles the plumbing so you can iterate on the gameplay loop instead of yak-shaving netcode.