MatchMaker Module
Last updated
Was this helpful?
Last updated
Was this helpful?
Diarkis MatchMaker extensively covers matchmaking for users in online multiplayer games. The design of Diarkis MatchMaker is highly unique. Instead of having a centralized data storage, it uses multiple servers within the Diarkis server cluster as a shared storage.
Diarkis MatchMaker is fast, robust, and scalable.
The decentralized design of Diarkis MatchMaker offers characteristics of being fault-tolerant and scalable.
For more details and documentation on Diarkis MatchMaker, please refer to this Server API Documentation.
Here, we will compare conventional common implementations of matchmaking with the matchmaking implementation by Diarkis MatchMaker.
In the database method, matchmaking data is stored, and matches are made using database queries.
The scale limit is determined by the performance limit of the database.
The speed of the matchmaking process largely depends on the intervals of background processes that run at fixed intervals.
Users in different databases are not matched.
In the in-memory method, a front server (a server that directly communicates with users) is used to store matchmaking data and perform matchmaking operations.
The scale limit is defined by the limitations of the front server, which acts as both the storage and executor of matchmaking operations.
Users on different front servers are not matched.
Compared to traditional matchmaking methods, Diarkis MatchMaker can scale indefinitely.
Since data is stored in memory shared across all servers in the cluster (including redundancy), matchmaking operations are conducted extremely quickly, and each server in the cluster can perform multiple operations concurrently. This enables very fast matchmaking and robust fault tolerance (as there is no single point of failure).
There are no limitations to scaling. You can scale in/out matchmaking by simply adding or removing server nodes.
All users, even if they are on different servers, can be matched. This is because all servers within the Diarkis cluster share matchmaking data.
Diarkis MatchMaker can execute multiple matchmaking operations concurrently upon request (there are no background operations), resulting in matchmaking results being provided very quickly (within seconds or even milliseconds).
Since there is no single point of failure in Diarkis MatchMaker, server failures do not affect the overall matchmaking.
Diarkis MatchMaker features a unique capability that allows 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 others while changing their equipment or costumes. Diarkis MatchMaker enables users to synchronize such changes in real-time and exchange messages.
Diarkis MatchMaker supports backfill. Imagine a scenario where you need to add additional users to a multiplayer game session once it has started while others are playing. Here, backfill is useful. It allows the "doors to remain open" so that other users can be matched and join the game session, even when participants have already started playing.
Diarkis MatchMaker can execute multiple matchmaking operations in parallel. This allows teams to be formed and opponents to be found through Diarkis MatchMaker.