11. NAT
• Network
Address
Transla-on
• Connec-on
Problem
with
NAT
Box
– Server
Listening
on
Port
– Client
changing
port
• NAT
Punch-‐through
with
Facilitator
Server
37. Client-‐side
Predic-on
• Fix
Client
State
if
different
• State
History
on
Client
• Useful
for
player
state
• Can
be
used
for
other
objects
(extrapola-on)
40. Input
Latency
• Input
marked
for
future
• 50-‐100ms
• Client
will
interpolate
41. Input
Latency
Client
Server
Move
Forward
T
=
+100ms
Move
Forward
Find
posi-on
for:
+100
Pos:
+100ms
Current
t:
+70ms
Interpolate
between
previous
pos
and
pos
at
+100ms
for
+70ms
67. Conclusion
• Networking
is
a
tradeoff
between:
– Consistency
– Responsiveness
– Bandwidth
– Latency
68. References
1
• Robust
Efficient
Networking,
Ben
Garney,
GDC
2008
• Torque
Networking
Library
(opentnl.org)
• Video
Game
Op-miza-on,
Ben
Garney
• “I
Shot
You
First”,
Halo
Reach
Networking,
David
Aldridge,
GDC
2011
69. References
2
• QuakeWorld
hap://en.wikipedia.org/wiki/QuakeWorld
• Network
Systems
in
Insomniac
Games’
Overstrike
(FUSE),
Game
Developer
Magazine,
Feb
2012
• 1500
Archers
on
a
28.8,
hap://www.gamasutra.com/view/feature/
131503/1500_archers_on_a_288_network_.php?page=1
70. References
3
• “The
TRIBES
Engine
Networking
Model”,
Frohnmayer
and
Gis,
GDC
1999
• Understanding
Figh-ng
Game
Networking,
hap://mauve.mizuumi.net/2012/07/05/understanding-‐figh-ng-‐game-‐
networking/
• GGOP
Networking
Library,
hap://ggpo.net/
• The
Doom
III
Network
Architecture
hap://mrelusive.com/publica-ons/papers/The-‐DOOM-‐III-‐Network-‐
Architecture.pdf
71. References
4
• The
Quake
3
Networking
Model,
Brian
Hook,
hap://trac.bookouook.com/bookouook/trac.cgi/wiki/
Quake3Networking
• What
Every
Programmer
Needs
To
Know
About
Game
Networking,
Glenn
Fiedler,
hap://gafferongames.com/networking-‐for-‐game-‐programmers/what-‐
every-‐programmer-‐needs-‐to-‐know-‐about-‐game-‐networking/
• Unreal
Networking
Architectures
hap://udn.epicgames.com/Three/NetworkingOverview.html
72. References
5
• “Latency
Compensa-ng
Methods
in
Client/Server
in-‐game
Protocol
Design”,
Yahn
Bernier,
Valve
haps://developer.valvesosware.com/wiki/
Latency_Compensa-ng_Methods_in_Client/Server_In-‐
game_Protocol_Design_and_Op-miza-on#Lag_Compensa-on
• Believable
Dead
Reckoning
for
Networked
Games,
Cur-ss
Murphy,
Game
Engine
Gems
2
• Choosing
a
Game
Network
Library,
Patrick
Wyaa,
hap://www.codeouonor.com/blog/choosing-‐a-‐game-‐network-‐lib
73. References
6
• Dead
Reckoning:
Latency
Hiding
for
Networked
games
hap://www.gamasutra.com/view/feature/3230/
dead_reckoning_latency_hiding_for_.php