![Page 1: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/1.jpg)
![Page 2: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/2.jpg)
Networking, Traffic Jams, and Schrödinger's Cat
Shawn HargreavesSoftware Development EngineerXNA Community Game PlatformMicrosoft
![Page 3: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/3.jpg)
XNA Framework NetworkingI spoke about networking at Gamefest 2007
What the framework does for you
Finding and joining sessions
Synchronizing the list of players
Lobby transitions
Reliable UDP protocol
Voice ‘just works’ ™
![Page 4: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/4.jpg)
ConfessionMy 2007 networking demo made some simplifying assumptions
Computer programs are deterministic
Bandwidth is infinite
Speed of light is fast enough to be irrelevant
![Page 5: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/5.jpg)
The Inconvenient TruthNetworked programs are only deterministic if you ignore time
Bandwidth is far from infinite
The speed of light is actually pretty slow!
![Page 6: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/6.jpg)
The Five Stages of NetworkingDenial
Anger
Bargaining
Depression
Acceptance
![Page 7: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/7.jpg)
DENIAL
![Page 8: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/8.jpg)
The Ostrich TechniqueMy game is small and simple
8 players
30 fps
Each frame I send
Position : Vector3
Velocity : Vector3
IsFiring : bool
7 x
30 x
(
12 +
12 +
1
)
= 5.1 k
![Page 9: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/9.jpg)
Packet Header BandwidthIP header: 20 bytes
UDP header: 8 bytes
LIVE: 16 bytes
XNA Framework: ~7 bytes
= ~51 bytes
![Page 10: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/10.jpg)
Game Data + Headers8 players
30 fps
Each frame I send
Position : Vector3
Velocity : Vector3
IsFiring : bool
Packet header
7 x
30 x
(
12 +
12 +
1 +
51
)
= 15.6 k
![Page 11: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/11.jpg)
Voice BandwidthVoice data is ~500 bytes per second
By default, all players can talk to everyone
![Page 12: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/12.jpg)
Game Data + Headers + Voice8 players
30 fps
Each frame I send
Position : Vector3
Velocity : Vector3
IsFiring : bool
Packet header
Voice data
Recommended limit is 8 kilobytes per second
7 x
( 30 x
(
12 +
12 +
1 +
51
) + 500 )
= 19 k
![Page 13: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/13.jpg)
ANGER
![Page 14: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/14.jpg)
WTF?Why so little bandwidth?
My service provider claims way more
Other apps report way more
![Page 15: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/15.jpg)
Games Are UnforgivingThe Internet is highly variable
Service providers advertise their best case
Web browsers care about the average
Occasional spikes are no problem
Games are limited by the worst case
A 30 second glitch is enough to ruin gameplay
![Page 16: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/16.jpg)
BARGAINING
![Page 17: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/17.jpg)
My Morning Commute
![Page 18: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/18.jpg)
Xbox LIVE Console Bandwidth% of consoles with this
bandwidth or lessDownstream
bandwidth (*)
Upstream
bandwidth (*)
0.1% 2.5 3
0.5% 5 5.51% 8 82% 9 10
5% 13 15
10% 18 2230% 25 3250% 42 (median) 44 (median)
70% 113 11590% 648 693
Thanks to Bungie Studios for data collected during Halo 3 beta, 2007
* Bandwidth in kilobytes per second
![Page 19: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/19.jpg)
LatencySpeed of light = 186,282 miles per second
Nothing can travel faster than this
Seattle to L.A.
960 miles = 5 milliseconds
Seattle to England
4,799 miles = 26 milliseconds
Speed of light in fiber or copper slows to 60%
Each router adds 5 to 50 ms
DSL or cable modem adds 10 ms
![Page 20: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/20.jpg)
Xbox LIVE Console Latency% of consoles with this
latency or lessRound-trip latency
between consoles (ms)
10% 32
30% 57
50% 84 (median)
70% 130
90% 250
95% 320
97% 380
98% 430
99% 540
99.9% 770
Thanks to Bungie Studios for data collected during Halo 3 beta, 2007
![Page 21: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/21.jpg)
DEPRESSION
![Page 22: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/22.jpg)
Packet LossSendDataOptions.None
Packets may never arrive, or may get jumbled
SendDataOptions.InOrder
Cheap
SendDataOptions.Reliable
Costs bandwidth
Reliable + InOrder
Costs bandwidth and latency
![Page 23: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/23.jpg)
ACCEPTANCE
![Page 24: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/24.jpg)
Know Your LimitsBandwidth (kilobytes per second)
Typical: 12 to 250
Worst case: 8
Latency (one-way)
Typical: 25 to 250 ms
Worst case: 270 ms
Packet loss
Typical: 2%
Worst case: 10%
![Page 25: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/25.jpg)
Live Within Your MeansNetworkSession properties
BytesPerSecondSent
BytesPerSecondReceived
SimulatedLatency
SimulatedPacketLoss
![Page 26: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/26.jpg)
Send Fewer PacketsTrade bandwidth for latency
Send data less often
Typically 10 to 20 times per second
Prefer few big packets to many small ones
Automatic packet merging
Multiple sends before NetworkSession.Update
Combines into a single wire packet
![Page 27: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/27.jpg)
Send Smaller PacketsGeneralized compression algorithms are not much use
Send smaller data types
int -> byte
Bitfields
Microsoft.Xna.Framework.Graphics.PackedVector
Matrix -> Quaternion + Vector3
Spawn position -> spawn point index
Avoid strings!
![Page 28: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/28.jpg)
Send Less Voice DataLocalNetworkGamer.EnableSendVoice
Only talk to players on your team
Only talk to people near you in the world
But avoid changing this too often
![Page 29: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/29.jpg)
Know What MattersSome things matter a lot
Am I dead?
Who picked up the Pan Galactic Gargle Blaster?
Who won?
Some things only matter a little bit
Where am I?
What direction am I moving?
Some things don’t matter at all
Which way did the dust particle bounce?
![Page 30: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/30.jpg)
Distribute Your WorkloadPC games are usually client/server
Reduces cheating
Concentrates bandwidth load on one machine
Xbox LIVE is more secure
Peer-to-peer is a viable option
Avoids round-trip latency
Harder to maintain consistency
![Page 31: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/31.jpg)
Hybrid TopologiesServer makes important decisions
Peers control most object movement
Multiple specialized authorities
One machine controls powerups
Another tracks the score
![Page 32: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/32.jpg)
Living With LatencyEmbrace quantum uncertainty
You can never know where an object is
Only where it used to be
... and how fast it was moving
The current state is a probability field
Is the cat alive or dead?
Each player has their own parallel universe
Our goal is to keep the universes similar
No red pill
![Page 33: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/33.jpg)
Prediction
http://creators.xna.com/en-us/sample/networkprediction
![Page 34: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/34.jpg)
Prediction RelativityRemember the parallel universes
Send information relative to the recipient
‘Fired toward position (x, y, z)’
What if players are in different places?
‘Shot at Shawn, missed 10° to the left’
Robust even if player positions differ
![Page 35: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/35.jpg)
Prediction ParadoxLarger packets = less bandwidth
Position + velocity + controller input
More data makes prediction work better
Allows lower packet send rate
Fewer packet headers
![Page 36: Networking, Traffic Jams, and Schrödinger's Cat€¦ · Networking, Traffic Jams, ... The Inconvenient Truth Networked programs are only deterministic if you ignore time Bandwidth](https://reader034.vdocuments.site/reader034/viewer/2022042418/5f34b2b1891bec5a387c1fad/html5/thumbnails/36.jpg)
www.xnagamefest.com
© 2008 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only.
Microsoft makes no warranties, express or implied, in this summary.