Tag Archives: impacts

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

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

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

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