MatchMaker Module
Last updated
Last updated
Diarkis MatchMaker extensively covers matchmaking for users in online multiplayer games. The design of Diarkis MatchMaker is highly unique. Instead of having centralized data storage, it utilizes multiple servers within the Diarkis server cluster as shared storage.
Diarkis MatchMaker is fast, robust, and scalable.
Thanks to the decentralized design of Diarkis MatchMaker, it possesses characteristics of being fault-tolerant and scalable.
For more details and documentation on Diarkis MatchMaker, please refer to the Server API Documentation here.
This section compares the traditional general implementation methods of matchmaking with the implementation methods using Diarkis MatchMaker.
In the database method, matchmaking data is stored, and matches are created using database queries.
The limitations of scale are constrained by the performance limits of the database.
The speed of the matchmaking process heavily depends on the intervals of background processes executed at fixed intervals.
Users in different databases cannot be matched.
In the in-memory method, front servers (servers that communicate directly with users) are used to store matchmaking data, and matchmaking operations are executed.
The limitations of scale are constrained by the limits of the front server, which functions as both storage and executor of matchmaking.
Users on different front servers cannot be matched.
Compared to traditional matchmaking methods, Diarkis MatchMaker is capable of scaling without limits.
Since data is stored in memory shared by all servers in the cluster (including redundancy), matchmaking operations are performed extremely quickly, and each server in the cluster can execute multiple operations concurrently. This brings about extremely fast matchmaking and robust fault tolerance (as there is no single point of failure).
There are no limits to scaling. The matchmaking scale can be scaled in/out simply by adding or removing server nodes.
All users can be matched even if they are on different servers. This is because all servers in the Diarkis cluster share matchmaking data.
Diarkis MatchMaker can execute multiple matchmaking operations in parallel on demand (no background operations), allowing matchmaking results to be obtained very quickly (in seconds or even milliseconds).
There is no single point of failure in Diarkis MatchMaker, so server failures do not impact the overall matchmaking process.
Diarkis MatchMaker is equipped with unique features that allow matched users to communicate freely. This is ideal for incorporating lobby functions into games.
For example, consider a scenario where users are waiting to be matched with other users while changing equipment or costumes. Diarkis MatchMaker allows users to sync such changes in real-time and exchange messages.
Diarkis MatchMaker supports backfilling. Consider a scenario where you need to add additional users to a game session while other users are already playing during the launch of a multiplayer game session. This is where backfill is useful. Backfill allows "opening the door" so that other users can be matched and join the game session while already matched users are playing.
Diarkis MatchMaker can execute multiple matchmakings simultaneously. This allows for assembling teams and finding opposing teams through Diarkis MatchMaker.