Heads Up: Technical stuff ahead. Proceed with caution.
This is the first of an ongoing series of articles aimed at introducing you to the complex networking architecture of Destiny and how the new game hopes to change things up. At the end of this series, you will hopefully be more educated about networking within your favourite game.
Lag in Destiny Has Always Been an Issue
Destiny has always had a history of lag issues. These problems have continued throughout the 3-year lifetime of the game. More often than not, lag in PvP has led to rage-filled, controller-throwing fits for some players. Similarly, the same issue has been experienced in PvE. Year 2 players will remember the hell that was trying to detonate 16 bombs on Oryx’s Challenge Mode in the King’s Fall raid activity, only to fail at the very end. According to many people, the only way to fix this lag is to have dedicated servers to host all activities for all players on the cloud.
The Networking Architecture of Destiny 1
Bungie recently stated that Destiny 2 will not have dedicated servers. This had the entire playerbase up in arms. “Why not?!”, we yelled angrily. The general consensus was that the corporate machine had won out again. They were trying to save money.
The truth is, Destiny has always had dedicated hosts. Bungie just doesn’t like calling them dedicated servers because of the technical implications of the term. A dedicated server refers to a pure client-server networking model. Since the days of Halo, Bungie has always used a hybrid model – combining client-server networking and P2P networking.
In Destiny 1, the networking model was pretty complex. Let’s break it down. At its most basic level, there are two types of “Hosts”:
- Activity hosts
- Physics hosts
The Activity Host (AH) runs scripted activities within the game world. This includes enemy spawns, objective callouts, and other data that is critical to the state of a mission, whether the mission is a patrol or a strike.
A Physics Host (PH) stores all the other non-critical information within the world. In vanilla Destiny, the PH is a randomly selected player console.
No, these aren’t Wards of Dawn. “Bubbles” in Bungie’s language mean the zones you play in. On the Moon, for example, Archer’s Line (the starting area) is one Bubble, while the Hellmouth is another Bubble. These Bubbles are connected by “z-legs”. An example of a z-leg is the long empty corridor you run through to get from one zone to the other.
What’s On the Cloud?
All Activity Hosts in the game are stored on the cloud. AHs are extremely small in nature, with about 45MB of data necessary to store a full executable script. AHs in Destiny control highly specific events such as:
- Doors opening due to certain events occurring (activating a tomb husk, killing X amount of enemies, etc.)
- Mission end
- Objective changes
What’s On the Consoles?
To sum it up: everything else! Your console stores and calculates information related to just about everything else within your game state. This includes the health of individual enemies, the types of enemies, animation states, and more. This is called the Physics state. In any given Bubble at any time, there are both Physics Clients and Physics Hosts.
- Physics Clients – If there are six people within a Bubble, 5 of these people are Clients. The consoles of these players perform calculations for their respective player and the state of the game around that player individually.
- Physics Host – One random console of the 6 in the Bubble is selected to be the Physics Host. This is the authoritative Host of the 6.
All the physics clients within a Bubble communicate with the Physics Host in that Bubble. If the state of the game on a Client’s console doesn’t match that of the Host, the Client game state will then “reconcile” with the Host state. This means that, for example, if your console sees that there are only 23 enemies alive within the Bubble at a certain point in time, but the Physics Host console sees 20 alive, 3 enemies in your instance of the game will die without warning. This is to “reconcile” with the state of the game on the Host console.
So far, you’ve seen the definitions of the networking elements within Destiny. These will come in handy later on in this series. Next time, we will talk about how Host migration works in the Destiny Universe, and why you never see a “Host Migration in Progress” message during play.