MatchMaker Module

Overview

Diarkis MatchMaker broadly covers the matchmaking for users in online multiplayer games. The design of Diarkis MatchMaker is very unique. Instead of having centralized data storage, it uses multiple servers within the Diarkis server cluster as shared storage.

Diarkis MatchMaker is fast, robust, and scalable.

Due to its distributed design, Diarkis MatchMaker possesses fault-tolerant and scalable characteristics.

For more details and documentation on Diarkis MatchMaker, please refer to this Server API documentation.

Traditional Matchmaking Methods

Here, we will compare the conventional implementation methods of matchmaking with the matchmaking implementation by Diarkis MatchMaker.

Database Method

In the database method, matchmaking data is saved, and matches are created using database queries.

Characteristics of the Database Method

  • The scale limit is defined by the performance limit of the database.

  • The speed of the matchmaking process heavily depends on the intervals of background processes that run at fixed intervals.

  • Users in different databases are not matched.

In-Memory Method

In the in-memory method, the matchmaking data is stored using front servers (servers that directly communicate with users), and matchmaking operations are performed.

Characteristics of the In-Memory Method

  • The scale limit is defined by the limit of the front server, which functions as both storage and executor for matchmaking.

  • Users on different front servers are not matched.

Diarkis Matchmaking Method

Compared to traditional matchmaking methods, Diarkis MatchMaker can scale indefinitely.

Since data is stored in memory shared by all servers within the cluster (including redundancy), matchmaking operations are performed very quickly, and each server in the cluster can execute multiple operations concurrently. This results in very fast matchmaking and robust fault tolerance (as there is no single point of failure).

Characteristics of Diarkis MatchMaker

  • There are no limits to scaling. You can scale in/out matchmaking simply by adding or removing server nodes.

  • All users can be matched, even if they are on different servers. This is because all servers within the Diarkis cluster share matchmaking data.

  • Diarkis MatchMaker can execute multiple matchmaking operations concurrently on demand (there are no background operations), resulting in very fast matchmaking results (in seconds or even milliseconds).

  • Diarkis MatchMaker has no single point of failure, so a server failure does not impact the overall matchmaking.

Communication During Matchmaking

Diarkis MatchMaker features a unique capability that allows matched users to communicate freely. This is ideal for integrating lobby features into games.

For instance, consider a scenario where users are waiting to be matched with other users and want to change their equipment or costumes. Diarkis MatchMaker enables users to synchronize such changes in real-time and exchange messages.

Backfill Matchmaking

Diarkis MatchMaker supports backfill. Imagine a scenario where you need to add additional users to a multiplayer game session after it has started. Here, backfill becomes useful. Backfill allows other users to be matched and join the game session while already matched users are playing, effectively keeping the "door open."

Team Matchmaking

Diarkis MatchMaker can execute multiple matchmaking processes concurrently. This allows you to form teams and find opposing teams through Diarkis MatchMaker.

Last updated