Skip to content

Instantly share code, notes, and snippets.

@nessus42
nessus42 / destiny-networking.md
Last active May 31, 2024 10:41
How Networking Works in Destiny 1 and How It Will Differ in Destiny 2 (According to Bungie)

(NOTE: This is the original version of my Reddit post. Since I have made a major revision to the post in order to clarify issues that were left somewhat unclear in the original version, and to address some complaints about minor factual errors, I am preserving the original here just so that no one thinks that I'm trying to pull the wool over anyone's eyes. The updated version is available here. It can probably be left unsaid that this parenthetical comment was not in the original post, but I've learned the hard way that unless you spell everything out in explicit detail and accuracy, someone or another will post a complaint.)

TLDR: In Destiny 1, there are three types of servers: mission servers, zone servers, and physics servers. The first two run in Bungie's server cloud, but the physics server runs on a player's console. The physics server runs on a console in order to save mone

@nessus42
nessus42 / footnotes.md
Last active July 14, 2017 23:04
Footnotes for "How Networking Works in Destiny 1 and How It Will Differ in Destiny 2 (According to Bungie)"

Footnotes

Footnote 1: Your console communicates with the Activity Hosts ten times per second. When you are in an instanced Bubble—e.g., when in a Darkness Zone or in a non-public raid checkpoint—I believe that Bungie merges the Bubble Activity Host and the Mission Activity Host into just a single Mission Activity Host. My reason for believing this is that Bungie states that "Mission Hosts fully control Private Bubbles".

Footnote 2: The typical seamlessness of Physics Host migration in Destiny is in stark contrast to many other multiplayer games of the past. For instance, I have not-so-fond memories of host players quitting in Modern Warfare 2 (even though I loved Modern Warfare 2 PvP). The game would stop for a while, locking up with a message about "host migration", and then eventually the game would continue. Until the next time the host player quit, and then the game would lock up for a while again.

In contrast, Destiny was architected so that the vast majority of the t

@nessus42
nessus42 / past-present-and-destiny.md
Last active August 8, 2017 19:09
The Past, The Present, and Destiny

The Past, The Present, and Destiny

Let's take a little break from the current day to discuss some of the history of FPS networking.

In the early days of FPS PvP games (i.e., back in the days of Quake), they were sometimes implemented using a pure client/server networking model. In a pure client/server model, all of the calculations about the game are done on the dedicated server and your console is relegated to being mostly a 3D rendering engine.

This is not how things work in either Destiny 1 or 2. In both games, every console is calculating all of the physics for an entire Bubble all of the time. The reason for this is that you want a first-person shooter to be very snappy. You want the bullets that you shoot from your gun to hit the target now and not half-a-second from now. When you cancel your jump, you want it cancelled now and not half-a-second from now. This is very important for an FPS game to feel visceral, real, and snappy. I.e., for it to feel the same w

@nessus42
nessus42 / faq.md
Last active November 6, 2021 01:35
Destiny Networking Article FAQ

Q. Bungie says that there will be no more host migrations, ever, in Destiny 2. Is that right?

A. Yes, it's true that that's what they've said. I'm not sure that I believe it, however. I certainly believe that what Bungie said will be true for PvP matches and for raids. For both of these cases, the console-hosted Physics Hosts of D1 did not always prove reliable-enough for a seamless experience.

On the other hand, the console-hosted Physics Hosts, in my experience, worked flawlessly in almost all other situations. Why fix something that's not broken? While at the same time spinning up expensive servers for no good reason?

Consider too the situation where you are playing the story campaign by yourself in an instanced Bubble. You don't need a remote Physics Host for this. Clearly, the entire game (except for the Mission Host) can run on your console. Why spin up a Physics Host in the cloud for solo play?

So let's assume for the moment, that when playing missions solo, there is no Physics Host,

@nessus42
nessus42 / destiny-networking-revised.md
Last active April 19, 2024 21:39
How Networking Works in Destiny 1 and How It Will Differ in Destiny 2 (According to Bungie, Redux)
@nessus42
nessus42 / destiny-networking-primer1.md
Last active May 12, 2018 21:12
Destiny Networking Primer: Why are things like kill "trading" and being killed by someone who is already dead so common in Destiny PvP?
@nessus42
nessus42 / destiny-networking-primer3.md
Created January 18, 2018 22:37
Destiny Networking Primer: Why does Destiny 1 do P2P mesh networking?

Destiny Networking Primer: Why does Destiny 1 do P2P mesh networking?

Executive Summary

Destiny 1 maintains a P2P mesh so that other players won't appear frozen in place during a host migration.

Or at least that's my educated guess.