SeaTyrants GameServer — MMORPG infrastructure
High-frequency UDP game server on Kubernetes
An MMORPG infra that holds 128 Hz, map per map, behind a UDP proxy.
The client need
Context
SeaTyrants is a real-time MMORPG that must serve thousands of players with low latency and a high server tick rate.
Problem
No infra capable of splitting maps, holding 128 Hz per tick and routing UDP traffic in a scalable way.
Goal
Build a Kubernetes infrastructure able to scale per map and hold real time on the UDP network.
What’s at stake
Hold a 128-tick-per-second cadence on the server side
Scale horizontally map by map
Route UDP traffic reliably and efficiently
Manage concurrency (mutex, multi-threading) without breaking the tick rate
The proposed solution
What was built
A Kubernetes infrastructure where each game map maps to a dedicated pod, powered by a UDP server forked from ENET, an event-driven NATS bus and a Quilkin UDP proxy at the edge.
Why this choice
Splitting per map allows independent scaling, Quilkin handles UDP routing, NATS decouples services, and ENET remains one of the most solid UDP protocols for real-time games.
How it answers the need
One pod per map, multi-threading and mutexes on the game process side, NATS for cross-service events, Quilkin for UDP routing, infra-side load balancers to absorb load.
Key features
One Kubernetes pod per game map
UDP server based on a fork of ENET
128 Hz tick rate on the server side
NATS event bus for inter-service communication
Quilkin UDP proxy and infra-side load balancers
Synchronisation via mutex and multi-threading
Results
Infra capable of holding real time for an MMORPG
Per-map scalability without breaking server tick rate
Event-driven architecture ready to evolve
Tech stack
Technical choices used on this project.
Do you have a similar need?
Let’s talk about your project. I help you adapt this approach to your context.