Tag Archives: patterns

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 each other in a single huge virtual world. Continue reading Pattern: Seamless World Game Server

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 with each other in a shared virtual world. Continue reading Pattern: Responsibility-Oriented Game Server

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 shared virtual world. Continue reading Pattern: Map-Centric Game Server

[Discussion] A Journey Into MMO Server Architecture

Face of Mankind Screen Shot
Face of Mankind Screen Shot from http://www.faceofmankind.com/ © 2014 Face of Mankind

I discovered this post today while doing some research for another post I’m writing. It’s about the server architecture of the sci-fi MMO sandbox game, Face of Mankind: Fall of the Dominion, published by Nexeon Technologies.

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!

Source: A Journey Into MMO Server Architecture – MMORPG.com Blogs

Network cables - mess :D

Know what to Build: The Server Loop

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.

We’ll use the server loop as a conceptual model for this. The server loop is a variant of the classic game loop pattern, applied to server-side functionality. Because this is just a model, we’ll ignore implementation details such as fixed or variable step sizes. Also, for now we’ll assume our server is single-threaded and runs on a single core machine. Continue reading Know what to Build: The Server Loop

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 to the same virtual world. Continue reading Pattern: Client Side Load Balancing

Vodafone Innovation Park Labs

Pattern: Distributed Network Connections

Problem

How do we support the greatest number of concurrent client connections to our multiplayer game server?

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 to the same virtual world. Continue reading Pattern: Distributed Network Connections

Mysterious Monoliths by John Picken

Pattern: Monolithic Architecture

Problem

What is the game server’s deployment architecture?

Context

We are developing the server for a multiplayer online game with a client-server architecture.

The game design seeks to create engaging game play within fixed technical and resource constraints. It trades game play features against number of concurrent players, player immersion, and size or complexity of the game world to simplify implementation, deployment, and maintenance. Continue reading Pattern: Monolithic Architecture

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: 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

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

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.

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!