Tag Archives: build process

Game Server Architecture Patterns

Game Server Architecture Patterns

This page presents a collection of multiplayer game server architecture patterns that describe solutions to common problems in multiplayer game server development. Over time, I hope to build a library of patterns based on real-world experience, research and experimentation by game server developers.

Pattern: Seamless World Game Server

Problem How do we create a game server that permits unlimited freedom of movement and game play on an expansive map with no apparent boundaries? Context We are developing the server for a massively multiplayer online game with a client-server architecture. The game design seeks to create an immersive play experience by enabling thousands of players to interact with … Continue reading Pattern: Seamless World Game Server

4 comments
Mysterious Monoliths by John Picken

Pattern: Monolithic Architecture

A description of the Monolithic Architecture pattern as it applies to multiplayer game server architecture.

0 comments
Vodafone Innovation Park Labs

Pattern: Distributed Network Connections

Use the Distributed Network Connections pattern to maximize the number of connected clients with minimal impact on game server performance.

0 comments
Me balance cookeys

Pattern: Client Side Load Balancing

Problem How do we ensure a balanced distribution of client connections across a set of connection servers in a distributed game server architecture? Context We are developing the server for a massively multiplayer online game with a client-server architecture. The game design seeks to create an immersive play experience by enabling thousands of players to connect simultaneously … Continue reading Pattern: Client Side Load Balancing

0 comments

Pattern: Map-Centric Game Server

Problem How do we distribute the load of running core game play functionality across multiple processes to support thousands of concurrent players? Context We are developing the server for a massively multiplayer online game with a client-server architecture. The game design seeks to create an immersive play experience by enabling thousands of players to interact with each other in a … Continue reading Pattern: Map-Centric Game Server

0 comments

Pattern: Responsibility-Oriented Game Server

Problem How do we distribute core game play load across multiple processes in a way that supports flexible scaling and efficient allocation of computing resources? Context 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 … Continue reading Pattern: Responsibility-Oriented Game Server

13 comments

If you have feedback, corrections, or questions about any of the patterns you see at Engines of Delight, please leave a comment on this page, or any of the specific pattern posts.

[Podcast] DotNetRocks: Marc Mercuri and Mark Simms Build Resilient Cloud Applications

Podcast Summary

Carl and Richard talk to Marc Mercuri and Mark Simms about resilient cloud architecture. The conversation starts out focused on the white paper called ‘FailSafe’ and the guidance it provides for building resilient cloud applications – but the information is applicable to any large scale system running on any sort of infrastructure. Continue reading [Podcast] DotNetRocks: Marc Mercuri and Mark Simms Build Resilient Cloud Applications

Homefront - Multiplayer Screenshot

Know what to Build: Assessing Impacts

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

Know what to Build: Assessing Impacts for MMORPG

Assumptions for MMORPG Feature Impact Assessment

The feature impact assessment for the MMORPG game design requires a number of assumptions that aren't documented in the main posts or in the "reference problem statement" for the game. I've provided them here to serve as a rationale for impact rankings that I chose.

 
FeatureSizeComplexityImportance
Persistent item state
Rank: 5
Rank: 5
Rank: 5
Large shared world
Rank: 5
Rank: 5
Rank: 5
"Items are important
and ubiquitous"
Rank: 4
Rank: 5

Rank: 5
Unique character visuals
Rank: 4
Rank: 5
Rank: 3
Large number of players
Rank: 5
Rank: 3
Rank: 4
Persistent mission state
Rank: 3
Rank: 4
Rank: 4
Persistent character state
Rank: 3
Rank: 3
Rank: 5
Text and voice chat features
Rank: 3
Rank: 2
Rank: 4
Persistent alliances
Rank: 2
Rank: 3

Rank: 3

Return to Know what to Build: Assessing Impacts.

Bruce Lee title screen utilizing the Apple II's rarely used 16-color Double High Res mode

Consistency FTW!

I have a Seiko analog watch that needs repair. When I pull out the crown to set the time, the movement stops. This is normal. But when I push the crown back in, the movement doesn’t resume right away. It sometimes takes several minutes for it to start ticking again.

I love this watch. My wife gave it to me for our anniversary years ago, and I’ve worn it daily ever since. I’m definitely going to have it repaired. Administrivia isn’t my strong suit, though, so I haven’t gotten around to it yet.

Meanwhile, I keep wearing it. I’ve learned that if I just stop messing with it, I can still rely on it to keep time. Now, I just remember the offset between the actual time and my watch’s time and do the head math. This works because the watch is consistent, and I’ve become consistent in using it this way. Continue reading Consistency FTW!

Collage of multiplayer game types.

Know what to Build: Multiplayer Game Types

Software is a solution to some problem. As I’ve already saidsoftware 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

Words are hard. Game servers are nontrivial.

Engines of Delight is a blog about multiplayer game server architecture. Continue reading Words are hard. Game servers are nontrivial.

About Engines of Delight

Engines of Delight Logo
flickr photo shared by hugh llewelyn under a Creative Commons ( BY-SA ) license

Engines of Delight is a blog about multiplayer game server architecture created and maintained by Matthew Walker.

Online game development is a school of hard knocks. Over the years I’ve made many mistakes, shared some successes, and learned a hell of a lot. I love collaborating and sharing knowledge with my teammates. Yet, the transient nature of game development often dilutes our shared wisdom when projects end and teams split up. I’ve often wished for a venue where I could share in a larger pool of wisdom from like-minded game server developers. This venue would give us with a way to not only capture our shared experience, but refine it, build upon it, and most important, make use of it in future work. I’m not sure I can describe clearly what I have in mind yet, but I hope to explore it through Engines of Delight.

My mission for Engines of Delight is to enrich the online game development community by advancing our shared understanding of software architecture as it applies to multiplayer game server development. I hope to do this through a blend of shared real-world experience, professional discussion and feedback, and curated references to external works.

This is a tall order: the term “architecture” is broad, complex, and ill-defined. It’s certainly bigger than me, and I can’t do it alone. With Engines of Delight I also hope to offer an environment where other server developers can teach as well as learn, share their failures and successes, and apply their unique insights to common problems and solutions.

Some features that I hope to explore with Engines of Delight include:

  • Regular blog posts on a variety of topics relevant to multiplayer game server architecture. Standard blog fare, so to speak.
  • A catalog of known patterns and architectural “styles” found in the industry.
  • A catalog of common multiplayer game types.
  • A cross-reference between known patterns and game types, identifying combinations that work well and those not so much.
  • Postmortem articles that document architectural decisions from real projects, their outcome, and lessons learned.
  • Curated references to recommended third-party sources, including blogs, podcasts, books, and other works.
  • A vehicle to encourage contributions from community members in all the above areas.

Please join Engines of Delight in this mission!