Avatar

kotaku: Destiny 2 for PC, won't carry over year 1 characters (Destiny)

by dogcow @, Hiding from Bob, in the vent core., Thursday, September 29, 2016, 13:25 (2765 days ago) @ Kahzgul

For clarity: Similar to a token ring in the sense that there is no true host, and that all systems pass information to the others that is automatically trusted by the others. Not at all like a token ring in the sense that there's no ring and systems can pass tokens as often as their network speeds permit.

My understanding is that they pretty much used Reach's PvP networking and expanded it to work for PvE. AFAIK there is always a console acting as physics host and host migration happens (often in PvE, less often in PvP), just like in Reach.

From Justin Truman's "Shared World Shooter" presentation:

“Kickass Action Game” means we needed Halo Parity. FPS genre parity. We needed to make a highly responsive, low latency action game, that’s instantly familiar and competitive with all the other great FPSes out there.
The internal bar we used to great effect was “it needs to feel like a single player shooter”.
This was important to us because the online experience is not opt-in. We force you to matchmake with other players, even if all you want to do is play a solo campaign. Therefore we need to make sure that our matchmaking and networking goals never hurt that solo campaign experience.
So this means we started with the Halo codebase and networking model.
David Aldridge did a GDC talk 4 years ago about the Halo Reach Networking Model, which describes it in detail, I’m going to skip over most of that. You should really watch his talk, though, if you’re interested in the details of our action game networking.
But I will quickly touch on some Halo Networking terminology, which I’ll be relying on later in this talk.
The most important thing to know about Halo: Reach was that it had 2 networking models – one for PvP and one for PvE.
PvP used standard Peer-to-peer Host/Client networking. One Xbox was the Host of a game (let’s call that the “Physics Host” for reasons that are useful later), the other Xbox’s were all clients communicating with that host, but the Host arbitrated all state changes.
For PvE we used Lockstep Networking – [snip] but ultimately you have to pay full RTT networking time between when you pull the trigger and when your gun fires.
So that meant that while we had a networking model in Halo: Reach for campaign/PvE games (you could play through the whole Halo: Reach campaign with 4 players), it was a noticably more latent experience than our PvP game.
So, going back to the original design goals – this lockstep networking latency was unacceptable for the “Feels like a single-player shooter” goal I mentioned earlier.
So that meant that we chose to instead start with our Halo-era ...
PvP Networking model, but had to extend it to support the full story campaign.

This is why I believe they still use an authoritative physics host. The "peer-to-peer" makes me wonder if each console broadcasts "top priority" information to all others (as a peer) with confirmation of the game state to be communicated by the authoritative physics host. I suspect lower priority information to only be sent by the physics host (which in theory has the lowest latency & most upstream bandwidth in order to handle transmitting more data.

I should note that I have no idea how the "damage referee" works. My understanding of the code is that there is no one single host who can dictate whether or not a shot landed, so I would lean towards the damage referee being more of a poll of all systems as to whether or not they saw the shot land? Even so, that seems horribly inefficient as far as network usage, so I'd be surprised if that was what they used as well. Some sort of dedicated server monitor would make sense, but then why not have dedicated servers, period?

I would LOVE to hear more about how damage referee works. Bungie Please! I suspect you're correct in that it uses a consensus based on the physics simulations on each console, but that that the authoritative physics host can be overridden/vetoed by a (super?) majority of clients.

Also, in the interest of transparency, I have noticed a distinct reduction in lag since the update to PoE, so they may have figured out a better way to handle their network mesh. Even so, I believe it is not up to E-Sports standards for accuracy and reliability, and thus not worthy of the nuance and precision that the Destiny PvP game is capable of. I hold firm that a more traditional dedicated server host to client architecture would greatly improve the Destiny PvP experience.

Hopefully it's getting better.


Complete thread:

 RSS Feed of thread