Software architecture is about the big picture of development. It’s also about identifying and managing engineering risk. The development team is at the nexus of these two concepts. The team is your greatest asset, and the greatest contributor to the success of any software architecture. The big picture revolves around the development team and its ability to create the software for your game.
The post is a couple of years old, but I think the topics are still important. Sadly, the game was recently shut down. However, I think the article is still worth reading. It’s a nice summary of some high-level MMO server architecture concepts. It’s also a pretty good survey of some possible deployment architectures used by MMO projects.
This is definitely relevant to our topic here at Engines of Delight, so I thought I’d highlight it as a resource. Note that the post describes the Distributed Network Connections pattern in its mention of the Proxy Server. It also discusses some patterns that I will write about in the future. When I post those, I’ll update these notes with relevant links.
Anyway, it’s a good read, so enjoy. Cheers to Marko Dieckmann of the Face of Mankind dev team for writing it!
The Know what to Build articles discuss how to identify our multiplayer game’s server architecture early in the project. This reveals technical risks and key engineering questions before we’ve invested much development time.
In a recent post I described how to assess the impacts of our game’s key design features on the server architecture. In this post I’ll describe a way to develop a high level estimate of the amount of work our server will have to do, to help us know what to build.
The Server Loop as a Model
Developing the architecture for our game server requires making trade-offs. Knowing how to do this requires a general understanding of the operations the server will perform, and the amount of work required.