[SMITE] How Smite Matchmaking Works

Discussion in 'Archives' started by Geoff, Sep 11, 2013.

  1. Geoff

    Geoff Sir "Let's Play"

    To read it easier:


    http://www.reddit.com/r/Smite/comments/1m6zfi/how_smite_matchmaking_works/


    Matchmaking and Ranking Algorithms for Smite

    Goal The goal of the matchmaking algorithms for Smite is to produce matches with sides evenly matched by both Elo skill and also by player level (1..30).

    Elo / Skill ranking Internally, the system keeps different Elo skill numbers for casual queues Conquest, Arena, Joust, ARAM, and MOD. There are also separate Elos for each different competitive (ranked) queue. Only ranked queues display the skill value.

    The Elo skill ranking is based on the TrueSkill / Elo algorithms from Microsoft Research (http://research.microsoft.com/en-us/projects/trueskill/details.aspx). For the Smite game, we have made the following modifications:

    We only keep a skill on the player (not by god) since matchmaking does not know ahead of time what god will be selected.

    Players at level 10 or below have their “official” Elo reduced for matchmaking in proportion to their newness to the game.

    If after a match is finished, the system analyzes the players KDA, gold, and in game level reached (1..20). If a players metrics are extremely different than the rest of the team (good or bad), then his Elo is changed accordingly. This allows adjustment up for a player who carries a team, or down for one who provides no contribution.

    If a player drops out or does not pick a god in the lobby, Elo is calculated as if that player caused the loss. If players on both sides drop out, both of them get Elo loss.

    Matchmaking Smite queues are timer based. The following algorithm describes a 5 v 5 match (10 total players), but similar logic applies to 3v3 and 1v1:

    The timer goes off and invitations are issued.

    The system makes a pool of eligible players based on accepted invitations. If players must be not included due to match sizes, the system will drop the last players to join. For example, if 214 people are ready for Conquest, then 4 will not get matches and the system will try to make it the 4 people who queued at the last second.

    Party requests are enforced.
    The Elo and level for party members is averaged into one number for matchmaking. We have no restrictions, so an extremely good player can party with a very bad one. This happens frequently.

    New players (level 1 to 6) are processed separately wherever possible to form noob only matches.
    After noobs are done, if there are enough people in the queue the group is split into 2 or 3 sub-groups by player level. A typical split would have levels 7..19 in one group and 20..30 in another group.

    For each sub-group, the players are sorted by Elo.
    The system then deals with parties by always trying to match like parties against each other. This also minimizes the number of solos who have to play in a match with parties.
    It then prioritizes the following party configurations:
    3 and 2 vs 3 and 2
    2, 2, and 1 vs 2, 2, and 1
    2, 1, 1, 1 vs 2, 1, 1
    All solos

    At the present time more than half of matches have at least one party. Our data shows that mismatched party members is the number one cause of a steamroll or frustrating match.

    To fill in slots for a match, the system descends the Elo ranking, taking the highest ranked members available to make a full set of 10 players.

    Once the full match set of 10 is picked, the system exhaustively searches all possible combinations of who is on which side to find the combination where the sums of the Elos on each side match the closest. This match is then kicked off.

    There are some other subtleties and edge cases that happen, but are too complex to cover in an overview.
    The two biggest issues for a bad match are the following:
    1. A party that has a very good and very bad player grouped together, this happens a lot when players invite their friends to play Smite
    2. A player picks a god they have played infrequently (or are bad with)
    These two issues are difficult to solve for casual matches since we want to allow friend to play together and since we allow you to pick any god you want to play

    EDIT: I noticed several posts about the size of the user base and how that would improve match quality. This would be true for some game modes like ranked conquest which currently has a small player base, but normal conquest has more then enough players at this point for good matchmaking.
    In addition we are going to try some more methods to improve the matchmaking, but every method requires placing some restrictions on players (for example, only allowing players to play certain Gods or going into a party with a friend of similar skill level, etc)
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice