More Related Content Similar to Game network programming (20) More from Willian Molinari (16) Game network programming13. Player1 Player2 Player3
tick 0ms
tick 100ms
tick 200ms
tick 300ms
tick 400ms
14. Player1 Player2 Player3
tick 0ms
tick 100ms
tick 200ms
tick 300ms
tick 400ms
15. Player1 Player2 Player3
tick 0ms
tick 100ms
tick 200ms
tick 300ms
tick 400ms
16. Player1 Player2 Player3
tick 0ms
tick 100ms
tick 200ms
tick 300ms
tick 400ms
19. Player1 Player2 Player3
tick 0ms
tick 100ms
tick 200ms
tick 300ms
tick 400ms
20. Player1 Player2 Player3
tick 0ms
tick 100ms
UI OK!
tick 200ms
tick 300ms
tick 400ms
26. Client Server
pos (0,0)
pos (0,0)
27. Client Server
pos (0,0)
pos (0,0)
move
pos (1,0)
28. Client Server
pos (0,0)
pos (0,0)
move
pos (1,0)
pos (1,0)
31. Client Server
pos (0,0)
pos (0,0)
32. Client Server
pos (0,0)
pos (0,0)
move
pos (100,200)
33. Client Server
pos (0,0)
pos (0,0)
move
pos (100,200)
pos (100,200)
36. Client Server
pos (0,0)
pos (0,0)
37. Client Server
pos (0,0)
pos (0,0)
move right
pos (1,0)
38. Client Server
pos (0,0)
pos (0,0)
move right
pos (1,0)
pos (1,0)
42. Client Server
pos (0,0)
pos (0,0)
43. Client Server
pos (0,0)
pos (0,0)
move right
pos (1,0)
44. Client Server
pos (0,0)
pos (0,0)
move right
pos (1,0)
pos (1,0)
45. Client Server
pos (0,0)
pos (0,0)
move right
Latency pos (1,0)
pos (1,0)
46. Client Server
pos (0,0)
pos (0,0)
move right
Animation pos (1,0)
pos (1,0)
Predicting
47. Client Server
pos (0,0)
pos (0,0)
move right
Animation pos (1,0)
pos (1,0)
Predicting
48. Client Server
pos (0,0)
pos (0,0)
move right
Animation pos (2,0)
pos (1,0)
49. Client Server
pos (0,0)
pos (0,0)
move right
Animation pos (2,0)
pos (1,0)
Correction
pos (2,0)
58. All credits to Fabien Sanglard: http://fabiensanglard.net/quakeSource/quakeSourceNetWork.php
Code: https://github.com/id-Software/Quake/blob/master/QW/client/net_chan.c
61. All credits to Fabien Sanglard: http://fabiensanglard.net/quake3/network.php
62. All credits to Fabien Sanglard: http://fabiensanglard.net/quake3/network.php
63. All credits to Fabien Sanglard: http://fabiensanglard.net/quake3/network.php
64. All credits to Fabien Sanglard: http://fabiensanglard.net/quake3/network.php
65. All credits to Fabien Sanglard: http://fabiensanglard.net/quake3/network.php
66. All credits to Fabien Sanglard: http://fabiensanglard.net/quake3/network.php
70. Long story short: use auto-tune
You probably just need to tune the maximum values
(system wide)
73. 10Mbs x 1ms = 1.22 KB
10Mbs x 200ms = 244 KB
rfc1323: huge buffers
83. No TCP
No UDP
No peer to peer
88. Blackberry
browser
Chrome
Opera
Mobile safari
Browsers
IE
Android browser
Firefox
Opera mini
Safari
92. References
■ [1] Age of empires paper
■ Synchronous RTS engines
■ Client / server tricks
■ Quake code reviews
■ Improving bandwidth for websockets
■ Unreal networking architecture
■ http://tools.ietf.org/html/rfc1323