Skip to content

Work · Games infrastructure / Multiplayer platform

Matchdock

Matchmaking and dedicated game servers, without the ops team.

What it is

Matchdock pairs players, starts a dedicated game server for every match in an isolated container, and records the result only that server can report. Ratings, leagues, leaderboards and match history come with it; a Unity SDK and a plain HTTP API connect any engine.

Why it needed to exist

A real-time 1v1 game needs fair matchmaking, a dedicated server per match and results nobody can fake. After Unity retired Multiplay hosting, the choice was another vendor's roadmap or an ops team a small studio does not have.

What Idealink did

Idealink designed and built Matchdock for DoGoal, moved the game's matches onto it in place of Unity Multiplay, and opened it to other studios in early access with the EU region live.

Status
Live
Relationship
Idealink venture
Industry
Game infrastructure
Period
2026 — early access
Platform
Backend · Unity SDK · HTTP API · console
Idealink role
Product, platform engineering, SDKs, fleet operations

Thesis

When Unity retired Multiplay hosting, DoGoal needed a new home for its matches. Instead of moving to the next vendor, Idealink built the platform — and made it a product other studios can use.

01

Anatomy of a match

A ranked 1v1 in the EU region, from tap to result.

  1. 0.0 s · Two players tap Play

    The SDK signs the device in and joins the ranked queue.

  2. 0.6 s · Match found

    Same queue and region, ratings within ±100; the window widens the longer someone waits.

  3. 1.1 s · Dedicated server is up

    A fresh server in an isolated container, on its own UDP port.

  4. 1.3 s · Players admitted

    The server verifies each join token; only the players of this match get in.

  5. 3 min · Result accepted

    3–2, ratings +12 / −12, and the server is removed.

02

Measured

As published on matchdock.io, from the platform's own load test and fleet.

Queue to match
~1 s from two players queueing to a match
Match to server
~1 s more until the dedicated server is listening
Load test
200 players matched in under 5 seconds
Container privileges
0 Linux capabilities inside a game server container

03

Results nobody can fake

Every match gets its own container: no capabilities, a read-only filesystem, an unprivileged user, hard CPU and memory limits, only the match port exposed. A build cannot touch anything else, and nothing else can touch it.

Only the dedicated server can report a result, and reporting is idempotent. Quitters lose by forfeit, crashes cost nobody rating, and every match keeps a full timeline. Elo with placement matches, league tiers, leaderboards and match history are part of the platform.

04

A few lines on each side

The Unity SDK: the client signs in, queues and connects in one call; the dedicated server admits its players and reports the result. Unity 2021.3 and newer, an optional Mirror authenticator, a plain HTTP API underneath.

matchdock.io · Unity SDK
Matchdock Unity SDK code for the client (FindMatch.cs) and the dedicated server (MatchServer.cs)

05

Boring on purpose

Built to launch our own game on, so it had to handle the unglamorous parts.

  • Rolling builds: new matches start on the new build; matches in progress finish on the one they started with.
  • Fleet health: nodes report in every few seconds; unhealthy or draining nodes stop receiving matches, and lost nodes fail their sessions cleanly.
  • Region aware: matches land in the players' region when there is room, and fall back instead of failing.
  • Observable: Prometheus metrics for queues, waits, outcomes, fleet and API latency, with alerts for what matters at 3 a.m.

Outcome

Where it stands

DoGoal's matches run on Matchdock in place of Unity Multiplay. The platform is in early access for other studios, with the EU region live.

Stack and capabilities

Only what mattered

  • Isolated Linux containers
  • Unity SDK (2021.3+)
  • Mirror authenticator
  • HTTP API
  • Elo ratings
  • Prometheus