Tag Archives: architecture

[Discussion] Ultima Online Server Architecture

Ultima Online: Charter Edition: Hildebrandt Print
Ultima Online: Charter Edition: Hildebrandt Print shared by UO Journal under a Creative Commons ( BY ) license

I recently ran across a Quora discussion from a few years ago about the technology stack of Ultima Online’s original servers. In it, a few of the game’s developers recall some of the game’s early server architecture decisions and their outcomes. It’s an interesting read with some good real-life insights.

Source: What was the technology stack driving the original Ultima Online servers? – Quora

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.

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

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

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] SE Radio: Software Architecture Sketches with Simon Brown

Podcast Summary

Simon Brown, author of Software Architecture for Developers, talks with Sven Johann about using Software Architecture Sketches to visualize, communicate and document software architecture. Continue reading [Podcast] SE Radio: Software Architecture Sketches with Simon Brown

[Podcast] SE Radio: Stefan Tilkov on Architecture and Micro Services

Podcast Summary

Micro services is an emerging trend in software architecture that focuses on small, lightweight applications as a means to avoid large, unmaintainable, monolithic systems. Continue reading [Podcast] SE Radio: Stefan Tilkov on Architecture and Micro Services

[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

New Feature: Podcast Summaries

As an occasional feature of Engines of Delight, I’ve decided to post links to podcast episodes that are relevant in some way to multiplayer game server architecture. Continue reading New Feature: Podcast Summaries

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

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