How do we distribute core game play load across multiple processes in a way that supports flexible scaling and efficient allocation of computing resources?
We are developing the server for a massively multiplayer online game with a distributed architecture. The game design seeks to create an immersive play experience by enabling thousands of players to interact with each other in a shared virtual world. Continue reading Pattern: Responsibility-Oriented Game Server
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 team’s development environment is a cornerstone of its ability to deliver. A team with inadequate tools or support to do the work required is at least inefficient, if not ineffective. A team with an inferior development environment is a likely source of engineering risk. Continue reading Invest in your Development Environment
The concept of evolutionary architecture is a good fit for game server development. Game servers are complex enough to warrant a disciplined focus on building a good architecture. Yet, game development is very subjective, and making a great game is an exercise in evolution. The five principles of evolutionary architecture discussed in this podcast can help us in evolving a solid game server architecture. Continue reading [Podcast] SE-Radio: Rebecca Parsons on Evolutionary Architecture
In an earlier post I described some multiplayer game types and identified several clues about the server architecture required to build each type. Now I want to take a closer look at some of those clues to see how they can help us know what to build. Continue reading Know what to Build: Assessing Impacts
Software is a solution to some problem. As I’ve already said, software architecture is the foundation on which we build our software. It’s at the core of the solution we offer in any software we build. Continue reading Know what to Build: Multiplayer Game Types