reliving the history of multi player games
play

Reliving the history of multi player games @phuesler @rirei At - PowerPoint PPT Presentation

Reliving the history of multi player games @phuesler @rirei At Wooga Evolution is driven by teams Technologies Architecture Platforms User interaction Level 1: Read-only interaction High score Pacman read-only access Client Client


  1. Reliving the history of multi player games @phuesler @rirei

  2. At Wooga Evolution is driven by teams

  3. Technologies

  4. Architecture

  5. Platforms

  6. User interaction

  7. Level 1: Read-only interaction

  8. High score Pacman

  9. read-only access Client Client DB Score

  10. Level 2: Inbox interaction

  11. Turn based Empire Civilization

  12. inbox Client Client DB Inbox

  13. Inbox interaction Client Client App Inbox

  14. woo.ga/backend

  15. Level 3: Real interaction

  16. Real interaction MUD World of Warcraft

  17. Real interaction Client Client Usr Usr App Loc

  18. Handling conflicts Client Client Usr Usr Log Log App Loc

  19. woo.ga/backend

  20. Level 4: Real time interaction

  21. Real time interaction Super Mario Kart Starcraft

  22. Player 1 Player 2 Server

  23. Player 1 Player 2 Server

  24. Player 1 Player 2 Server

  25. Sources of inspiration

  26. We depend on • good throughput • low latency • low packet loss • no jitter

  27. Level 4: Real time interaction on mobile

  28. 3G Internet

  29. Bandwidth 0.73 Mbps 3G 1.2 Mbps https://de.wikipedia.org/wiki/High_Speed_Uplink_Packet_Access https://de.wikipedia.org/wiki/High_Speed_Downlink_Packet_Access

  30. Added Latency (RTT) * 3G 70 - 180 ms * HSDPA/HSUPA http://202.194.20.8/proc/VTC09Spring/DATA/09-18-19.PDF

  31. Packet loss

  32. Latency Jitter 300 225 150 75 0 RTT ms

  33. Let’s do Bomberman

  34. Real Time Interpolation Lag Compensation Lockstep Packet Loss Quality of Service TCP UDP Client Prediction Peer-To-Peer Latency Object Replication Synchronization Protocol Physics Extrapolation Match Making Collision Detection

  35. 1

  36. Architecture C1 Server C2 move :up c1 moved :up c2 placed bomb place bomb bomb exploded bomb exploded game over game over

  37. TCP JSON EASY!!!

  38. Works on Wi fi : )

  39. game doesn’t work on 3G : (

  40. Jitter

  41. Dropped packets

  42. TCP Packet Ordering and Resend

  43. TCP Flow and Congestion Control

  44. no update no update Warping no update 4 updates at once

  45. or WORSE : (

  46. 2

  47. Architecture C1 Server C2 move :up c1 moved :up c2 placed bomb place bomb bomb exploded bomb exploded game over game over

  48. 3G UDP Will it work?

  49. Poor man’s TCP User Id Local Seq No Remote Seq No Ack bit fi eld JSON P N Payload ad • http://ga ff erongames.com/networking-for-game-programmers/reliability-and- fl ow-control/

  50. Poor man’s TCP Ordering ✔ Acknowledge Packets ✔ X Resending Packets X Flow Control X Congestion Control

  51. 3G UDP ✔ Tested with a few providers in Germany, Switzerland and Netherlands

  52. game barely works on Wi fi : |

  53. game doesn’t work at all on 3G!!! : (

  54. Packet Loss

  55. No synchronization

  56. 3

  57. UDP JSON State updates

  58. Full State Full State Full State Full State Send full state

  59. MTU Ethernet 1500 bytes PPPoE 1492 bytes Edge 1440 bytes https://en.wikipedia.org/wiki/Maximum_transmission_unit http://ipixcel.org/EDGE_Capabilities,_Technology,_and_Applications_PDF.pdf

  60. Architecture C1 Server C2 move :up move :down state update state update state update state update game over game over

  61. 10 msg/second

  62. 100 ms walking speed

  63. Game works on 3G : )

  64. Highscores and Matchmaking are BROKEN! : (

  65. 4

  66. Architecture C1 Server C2 move :up move :down state update state update state update state update game over game over

  67. Different Concerns Matchmaking Highscores Game Play Login/Logout User Data Reliable Unreliable

  68. Different Concerns Matchmaking Highscores Game Play Login/Logout User Data HTTP UDP

  69. Server architecture Game Server Lobby Server UDP Service HTTP Service RPC Matchmaking Game Logic Logic User Registry User Registry Database

  70. UDP Binary

  71. Binary protocol 64 bit 32bit 32bit 8bit 8bit Rest User Id SeqNr Ack Bit fi eld Command Payload 144 bits 944 bits 18 bytes 118 bytes

  72. 2 Player State update ~ 136 bytes

  73. 1.420 KBps ✔ 10 msg/second 56K Modem 7 KBps

  74. Improved Gameplay : )

  75. 5

  76. FIFO with timers

  77. Casual Matchmaking 4 Players Match Skill Time

  78. Hierarchical Clustering

  79. Better Matchmaking = 10 =1 =1 1 1 2 10 2 2 3 10 3 3 4 10 4 4 6 10 5 5 10 6 6 10 7 7 Queueing Find Matches Reschedule Start Game

  80. Better Matchmaking : )

  81. Geo Matching

  82. Play Locally : )

  83. Debugging

  84. Terminal Client

  85. Bots

  86. Network Link Conditioner

Recommend


More recommend