Portal Kombat : extension du réseau de propagande russe
MIGS18 Transforming from peer-to-peer to dedicated servers on a live game
1. Transforming from Peer-to-
Peer to Dedicated Servers
on a Live game
How connectivity was
fixed on For Honor
Laurent Chouinard
Online Project Lead – For Honor
Talk given at MIGS18, Tuesday, November 13th 2018
https://www.linkedin.com/in/laurentchouinard/
https://twitter.com/LaurentPointCa
2. /
Creating a fight game
Betas and launch
Root cause
Let’s make servers!
Open test results
Deploying a server infra
Then what?
INTRO
6. /
Most fighting games use peer-to-peer
A server or host would increase latency
Replication: positional updates, conflicts difficult to resolve
Gameplay simulation: synchronicity guaranteed, ideal for
duels, complex for melee
In the end, latency was key
SOME ASSUMPTIONS
15. /
#1 complaint of the
community:
“Disconnections!”
LAUNCH
https://commons.wikimedia.org/wiki/User:Jacklee
https://commons.wikimedia.org/wiki/User:Stefan-Xp
Dashboards
are all green?
16. /
Extreme parameters make the gameplay
simulation system unable to correct and keep up.
“That’s gotta be performance related.”
Performance-focused update with hundreds of
fixes: no change.
POST-LAUNCH ANALYSIS
30. / SERVER DESIGN
We need low latency!
• Super lightweight to run as fast as possible
(150-200 fps)
• Server does not need to run simulation
• Aware of the game state, handles session
joining and leaving
• Performance Monitor to isolate "the weakest
link" and protect other players
33. / A LESSON IN LATENCY
73 ms
ISP 1 ISP 2
36 ms 36 ms
6 ms
AB via server
78 ms
Console player:
AB via P2P
73 ms (best, direct)
150 ms (worst, routed)
All values are averages of the single trip (time going from player A to player B)
+5 ms ?!?
34. / A LESSON IN LATENCY
ISP 1 ISP 2
Big Cloud Providers
• Goggles
• Tropical Forest
• IndigoVery large pipes
Super optimized
Well maintained
Peering exchanges
No strong incentive
35. / SERVER: MULTIPLEX AND MERGE
Player A Player C
Input:
Attack
A: Attack
B: Dodge
Merge
Player B
Input:
Dodge
36. / SERVER: INPUT CANCEL
Player A Player C
Input:
Attack
A: Attack
Cancel
Player B
LATE
Input:
Dodge
37. / PERFORMANCE MONITOR: KICK
Goal: remove the cause of game degradation
• Major framedrop: self-eject
• Lag with everyone: self-eject
• Contribution to advance the simulation is low:
self-kick or vote-kick
39. /
Connectivity errors
1 resync every 4 matches
10% pauses
Weakest link impact
RESULTS FOR STABILITY
Reduced by 75%
GONE, no resync
GONE, no migrations
GONE, no ripple effect
40. / BONUS
No NAT management
Players IP hidden
42% reduction in match creation errors
43. / AMAZON GAMELIFT
MatchMaking
Gamelift Queue
Region 1
Fleet of instances
Region 1
Fleet of instances
Region 2
Gamelift Queue
Region 2
Gamelift Queue
Region 3
Gamelift Queue
Region 3
Fleet of instances
Region 3
Fleet of instances
Region 4
44. /
Server-side switch that allows us to activate per
game mode, per platform.
• PvP modes: Move to DS
• PvAI modes: Keep P2P for now
Phase 1: February 2018 - PC only
Phase 2: March 2018 - Consoles
Phase 3: May 2018 - Move PvAI to DS as well
PROGRESSIVE ROLL-OUT
46. /
Start with Windows to simplify development
Multi-tenancy up to the limit
Optimize threading and logging to bring it higher
Switch to Linux
More multi-tenancy
Future tenancy and scaling optimizations
OPTIMIZATION PATH
47. /
1. Don’t ignore the small things!
2. Monitoring player experience is better than servers
and services.
3. Cost-driven design is a double-edged sword. Focus
on the right tech for the problem, then see its
optimization potential.
4. Deliver small increments often, and measure.
OUR KEY LEARNINGS