How Matchmaking Works

 4th Nov, 2021
Share this article

As gamers we spend so much time searching for games online, but have you ever wondered what is really happening whilst you stare at the screen waiting for the next game? This blog will give you some insight as to what is happening behind the scenes during the matchmaking process.

If you’d rather watch than read, we have put together a video on this topic:

What Is Matchmaking?

Matchmaking is the process of grouping players together for online play sessions. You are no doubt already familiar with this. But there are factors that determine what players you are matched with. The priority of these factors can vary game to game, which is why your gameplay experience differs.

Matchmaking Factors

When the game looks to match you with other players, it focuses on these three main factors:

By comparing these factors to other players, the game tries to find a balance between all three, so all players have an enjoyable and fair experience. Let’s look how each factor affects the matchmaking process.

Location

Being connected to a server or players in a different region isn’t ideal for online gaming. For example, if a player in the US connects to an EU server, the data being sent between them travels a large distance. This takes time, causing a lot of delay and high ping, the last thing you want when gaming.

Ensuring you are playing on local and close servers for the best connection is crucial – you can learn more about how to do this using the Geo-Filter in DumaOS here.

Skill Level

SBMM (‘Skill Based Matchmaking’) has always been a hot topic amongst serious gamers. SBMM works by trying to match players together who are a similar skill level to keep games fair and competitive.

But the way skill level is determined differs by game. Games like COD, CS:GO, Valorant and League of Legends all have ranked queues, with a clear skill rank. However, in casual queues players have a level, which isn’t necessarily a depiction of their skill but rather how much time they have invested into the game. Player skill is then decided using metrics like their kill/death and win/lose ratios.

Wait Time

The game will also factor in how long players have been searching for a game. Matchmaking will try and get players into a game as fast as possible to minimise player frustration with the game.

As you’re probably aware, its not always possible for all three factors to have equal priority. For example, if you have been waiting longer than what the game deems reasonable, the other two factors (location and skill level) get less priority. This means you may play on lobbies outside of your skill level or on a distant server which will cause you to lag.

Matchmaking Code

Ok, time to get pretty technical. Below we’ll be breaking down some code which is from one of our matchmaking research tests and explain what it means for you guys, the players!

Here is a matchmaking network packet from Halo MCC:

Even though it looks intimidating, we can break down some specific lines of code into simple explanations:

"giveUpDuration": 120,

This piece of code refers to how long the players have been looking for a game. The game will attempt to search for a suitable lobby for 120 seconds before giving up and trying again.

"AllowedGameModes": [
      "\"reach_brSlayer\"",
      "\"reach_flagBomb\""

These are the playlists in which we searched for games.

"AverageGroupSkillLevel": 1,
"AverageGroupSkillPercentile": 0.4463690221309662,

Another matchmaking factor is mentioned here, skill level. The game has given us a skill level of 1 as we were searching for a game solo. When playing in a party an average will be generated from all players in the party.

The second line is our skill level in relation to other players, although we are unsure if this means the whole player base or just players allocated with a skill level of 1. As a new player we appear within the 44.6 percentile i.e. just below average. Our performance in the first few games will alter this value, so we can continue to be placed with players of a similar skill level to us.

"MaxGroupSkillLevel": 1,
    "MaxGroupSkillPercentile": 0.4463690221309662,
    "MaxRecommendedMatchmakingSetPoint": 1,
    "MinGroupSkillLevel": 1,
    "MinGroupSkillPercentile": 0.4463690221309662,

More on skill level with these lines of code. This time focusing more on the party we are searching with. As we are searching soloing these values do not change, although its very important these values are considering with searching as a party. Depending on the skill gap between players in a party, better players may be able to get into easier lobbies than if they searched solo.

By establishing the maximum and minimum skill level within the group it makes manipulating lobbies a lot harder for people trying to get easier lobbies as we have seen issues with this in other games recently.

Thanks For Reading

Hopefully now you know a bit more about what’s going on behind the scenes when you are searching for a game, and why the quality of lobbies can differ between games.

If you are interested in eliminating your location affecting the matchmaking process, then check the Geo-Filter feature, part of DumaOS. It allows you to always guarantee local servers every game, so now all you need to worry about is the skill level of the enemy team and not your ping!