harnessing the power of data in real-time multiplayer games
TRANSCRIPT
![Page 1: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/1.jpg)
1
![Page 2: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/2.jpg)
Time for Real-Time: Harnessing the power of data for real-time multiplayer
games
![Page 3: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/3.jpg)
![Page 4: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/4.jpg)
1. INTRO
Who am I?
Talk Structure
3. SOLVING PING
What is ping and why is it Important?
What did our data tell us?
What am I talking about?
4. EVOLVING MATCHMAKING
How has matchmaking evolved in our
games?
Ghosts!
2. OUR REAL-TIME STACK
Our Stack
Learning to love APIs
![Page 5: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/5.jpg)
Why Real-Time Multiplayer?
![Page 6: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/6.jpg)
![Page 7: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/7.jpg)
![Page 8: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/8.jpg)
![Page 9: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/9.jpg)
![Page 10: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/10.jpg)
![Page 11: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/11.jpg)
Out Real-Time Analytics Stack
![Page 12: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/12.jpg)
Our Real-time stack
Data Analysis
Analytics API
Real-Time Dashboards
Slice-and-Dice
Every 10 Minutes
Daily
![Page 13: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/13.jpg)
Learning to love APIs
![Page 14: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/14.jpg)
A Look to the Future
![Page 15: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/15.jpg)
1. INTRO
Who am I?
Talk Structure
3. SOLVING PING
What is ping and why is it Important?
What did our data tell us?
What am I talking about?
4. EVOLVING MATCHMAKING
How has matchmaking evolved in our
games?
Ghosts!
2. OUR REAL-TIME STACK
Our Stack
Learning to love APIs
![Page 16: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/16.jpg)
1. What is ping and why is it important?2. What did we learn from our data?3. How did we design around high ping?
![Page 17: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/17.jpg)
What is Ping?
![Page 18: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/18.jpg)
What is Ping?
A Server Somewhere
50ms
![Page 19: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/19.jpg)
A Server Somewhere
50ms 50ms
What is Ping?
![Page 20: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/20.jpg)
What is Ping?
A Server Somewhere
50ms 50ms50ms + 50 ms = 100ms ping
![Page 21: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/21.jpg)
A Server Somewhere
What does ping mean in multiplayer games?
50ms 50ms100ms before another player sees my input
![Page 22: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/22.jpg)
Me
You
Me
My Phone Your Phone
500 ms delay
You You
![Page 23: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/23.jpg)
Me Me
My Phone Your Phone
500 ms delay
You You
![Page 24: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/24.jpg)
Me Me
My Phone Your Phone
500 ms delay
You You
![Page 25: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/25.jpg)
Me Me
My Phone Your Phone
500 ms delay
You
You
![Page 26: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/26.jpg)
Me Me
My Phone Your Phone
500 ms delay
You
You
![Page 27: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/27.jpg)
Multiplayer Ping
A Server Somewhere
50ms 50ms 500ms 500ms
![Page 28: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/28.jpg)
A Server Somewhere
Multiplayer Ping
50ms 50ms 500ms 500ms
500ms + 50 ms = 550ms ping!
![Page 29: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/29.jpg)
A Server Somewhere
Multiplayer Ping
50ms 50ms 500ms 500ms
500ms + 50 ms = 550ms ping!
![Page 30: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/30.jpg)
Me Me
My Phone Your Phone
500 ms delay
You
You
![Page 31: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/31.jpg)
Me Me
My Phone Your Phone
500 ms delay
You
You
![Page 32: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/32.jpg)
What did our data tell us?
![Page 33: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/33.jpg)
Network Usages For Rival Kingdoms Players
![Page 34: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/34.jpg)
Network Usages For Rival Kingdoms Players
* China not shown - not enough data points (metrics captured from Android only)
![Page 35: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/35.jpg)
Region Breakdown
![Page 36: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/36.jpg)
3G RTT Distribution (All Regions)
*Probabilities done based on cumulative counts of response times within a time window. Bucketing counts mean tcp / udp variations are less visible
![Page 37: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/37.jpg)
3G RTT Distribution (All Regions)
99% that RTT <= 2 seconds95% RTT <= 1 second
![Page 38: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/38.jpg)
3G Usage Geo Heatmap
*Probabilities done based on cumulative counts of response times within a time window. Bucketing counts mean tcp / udp variations are less visible
![Page 39: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/39.jpg)
4G Usage Geo Heatmap
![Page 40: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/40.jpg)
Wifi Usage Geo Heatmap
![Page 41: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/41.jpg)
WiFi vs 4G
WiFi 4G99% that RTT <= 900 millis 99% that RTT <= 600 millis
![Page 42: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/42.jpg)
What did our data tell us?
No-one uses 2G (although self-selecting sample)But we don’t really care about 2G players anyway!
US is almost full 4G/WiFi CoverageAsia still has a lot of 3G usersPseudo Real-time on 3G would have some issues, but is possible4G is actually better than WiFi, but both are good enough to support real-time multiplayer
![Page 43: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/43.jpg)
Designing around high ping
![Page 44: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/44.jpg)
Latency Sensitive
Turn based RealtimePseudo realtime
![Page 45: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/45.jpg)
Turn Based Games
![Page 46: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/46.jpg)
Shuffle Cats
15 seconds long turn
Turn timer starts Turn timer ends
1 second RTT (my phone -> server -> opponent’s phone)
I play my card Opponent sees my card
![Page 47: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/47.jpg)
15 seconds long turn
Turn timer ends
1 second RTT
I play a card Opponent sees my card
Shuffle Cats
![Page 48: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/48.jpg)
“Pseudo”-Realtime
![Page 49: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/49.jpg)
Clash Royale
2 Second Move DelayWe both see my troop appear
1 second RTT
I drop a troop Opponent’s phone receives the troop position
![Page 50: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/50.jpg)
![Page 51: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/51.jpg)
![Page 52: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/52.jpg)
Orca Rocket Collision
2 Second Rocket Delay
We both see my rocket hit.
1 second RTT
I fire a rocket Opponent’s phone finds out about the rocket
![Page 53: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/53.jpg)
Orca Rocket Collision
2 Second Rocket Delay
We both see my rocket hit.
1 second RTT
I fire a rocket Opponent’s phone finds out about the rocket
![Page 54: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/54.jpg)
Orca Finish Line Cam
Time slooooooows down
We all see the same result.
1 second RTT
All of our last inputs
1 second RTT
1 second RTT
![Page 55: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/55.jpg)
How has matchmaking evolved in our games?
![Page 56: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/56.jpg)
Gen 1 -> Samurai Siege: Nexting
![Page 57: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/57.jpg)
Gen 2 -> Rival Kingdoms: Match-Making
![Page 58: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/58.jpg)
Gen 2 -> Rival Kingdoms: Match-Making
![Page 59: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/59.jpg)
Gen 2 -> Rival Kingdoms: Match-Making
![Page 60: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/60.jpg)
Gen 3 -> Transformers “Battlezones”
![Page 61: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/61.jpg)
Ghosts!
![Page 62: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/62.jpg)
Liquidity by Battlezone
![Page 63: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/63.jpg)
Avg Battles per Day by Battlezone
![Page 64: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/64.jpg)
Clash of Clouds
![Page 65: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/65.jpg)
Send in the Ghosts
![Page 66: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/66.jpg)
Questions?
![Page 67: Harnessing the power of data in real-time multiplayer games](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58f9a8d01a28abf8298b4583/html5/thumbnails/67.jpg)
THANKS!!