Skip to main content

Matchmaker Integration

Common call-flow (no game server registration)#

The following diagram shows one of the potential integration between a matchmaker and Arbitrium. If you’ve integrated your matchmaker with Agones (like this) to request an instance from a fleet, the flow remains the same.

img

Our services' nature makes it so that game components (servers, relays) are only started once they are needed. There is no need to register, pre-start, warm-up or things like that your game servers. You can remove this portion of your matchmaker and simplify your rules mechanism. You can also remove the rules around latency and enforce region since Arbitrium will pick the best location based on match context.

Web sequence#

You can edit the call-flow using the web sequence website and the following info (cut & paste in the web page).

https://www.websequencediagrams.com/

title Matchmaker | Edgegap - Relay Flow
Players->StudioMatchMaker: Let's play
StudioMatchMaker-->StudioMatchMaker: Searching for players that match requester profile
StudioMatchMaker->Arbitrium: POST /v1/deploy (players IP list, game version, webhook)
Arbitrium->DNS: Create Temporary FQDN
Arbitrium->StudioMatchMaker: Return MatchID, FQDN
StudioMatchMaker->Players: Return Match info
Arbitrium->GeoIP service: Request players locations
GeoIP service-->Arbitrium: Players Longitude and Latitude
Arbitrium->Arbitrium: List potential edges for this match
Arbitrium->Edge (Telemetry Probes): Request live telemetry from selected sites
loop Probe Agent API
Waiting for Probe reply or Timeout (GeoIP based telemetry)
Edge (Telemetry Probes)->Players: Live tests on Ping, Jitter, Drop...
Edge (Telemetry Probes)-->Arbitrium: Return telemetry measurement
end
Arbitrium-->+Edge (gameserver): Deploy game server (public ip, port)
Arbitrium->Edge (gameserver): Validate the server is up and running
Arbitrium->DNS: Update IP on FQDN
alt
Edge (gameserver)<->Players: Crypto Key Discovery
end
Players->Players: Create socket
alt
Edge (gameserver)<->Players: Secure connection establishment
end