Scott Hanselman talks with Next Games‘ CTO, Kalle Hiitola, about the server architecture of their newest game, The Walking Dead: No Man’s Land. This is a great opportunity for those of us interested in game server development to learn from others’ real-world experience.
I listen to Hanselminutes regularly. Scott Hanselman is a great interviewer who hosts shows on an excellent variety of programming and tech topics. He occasionally even has a guests on who talk about game development. However, it’s a rare treat, even on Hanselminutes, to hear a guest share their insights and lessons learned from developing a successful MMO game.
Here are some points that caught my attention:
- The Next Games server architecture is cloud-based, using primarily Microsoft Azure, with a bit of Amazon and Google cloud tech thrown in.
- They use a NoSQL database for persistence. Kalle said that they “didn’t even consider” SQL for this project. They use Azure Table Storage primarily for game data, with redundant storage in Azure Document DB for fast searches.
- Player data resides in memory on front end servers, and persists only when the player logs out. Caching is a simple in-memory dictionary.
- Player models and client commands are represented as JSON. Serializing and deserializing JSON data is the most CPU costly thing they do. Storing this data as in-memory objects greatly reduces this overhead.
- The game is server authoritative and deterministic. The server never trusts the client. This minimizes cheating and provides players with continuity of their experience across different mobile devices.
- The server’s performance goals focused on achieving a specific target number of players per node. The architecture leverages their cloud provider’s services to scale out and not scale up. Scaling decisions are made via a combination of the cloud provider’s “auto-scaling” based on continuous performance monitoring, plus human decision making.
- The developers relied heavily on load testing to help them meet their performance goals.
- The server architecture that Next Games used for The Walking Dead: No Man’s Land builds on the one they used for an earlier game. They have built their architecture to be able to host any of their future games.
This podcast gives us a peek at the architecture of a modern mobile MMO and shares some insights about how to become “massive”.