I'm trying to figure out if it's feasible to manage and scale traditional MMO game servers using Kubernetes. The challenge is that, unlike web servers, these games typically have long-lived and stateful connections with their servers. Additionally, traditional MMOs often require players to choose their server types, like "Main Servers" versus "World Servers," followed by "Sub-Servers" or "Channels." Players can only interact with others on the same Sub-Servers or Channels, which complicates things since I can't modify the game client's source code. Has anyone had experience in this area? I'm looking for any feedback, thoughts, or insights you might have!
4 Answers
Managing traditional game servers without modifying the server code is tricky since you'd likely need to build a proxy yourself. However, if you can reverse-engineer the original client and server, you'll get a better grasp of what's going on. Traditional MMOs often shard their traffic clearly by world servers and channels. Finding a solid way to scale with Kubernetes can be a challenge, but I believe it can be done!
I’m skeptical about this—it's like trying to run databases on Kubernetes. Sure, you can do it, but it’s often more complicated and error-prone. I’d go for a simpler setup with something like Ansible and VMs if I were you. It’s just good enough for these kinds of servers.
This sounds like a cool challenge! Stateful sets in Kubernetes should work well for your channels, plus sticky sessions can help with player connections. I’ve done real-time streaming in a Kubernetes environment and found that long sessions can work just fine. Definitely look into stateful sets when you get the chance!
Jumping an existing monolithic server into Kubernetes might not give you the benefits you're hoping for. If your game server is already set up in components, that's where Kubernetes can really shine, allowing horizontal scaling. Just be wary—using Kubernetes can add latency, so you'd need to handle data storage and transfers carefully. I suggest a setup with a gateway to handle connections for your server/channel setup, using replicas for state management. If you can create smaller instances for dungeons or zones, that might help with load too!
Related Questions
Interactive Wheel Spinner Tool – Add Choices and Randomly Pick a Winner
Raffle Ticket Generator
Instant Online Dice Roller
Sudoku Solver
Tambola Number Generator
Tambola Ticket Generator