Skip to main content
Matchmaking is how a player presses Play and ends up in a match with other people, without anyone sharing an address or invite code. You describe your game modes as queues. Summer groups the players who are searching and starts a server for each match. Then it sends every player in that match to it.

Games like this

League of Legends, Dota 2

Ranked 5v5. Everyone must accept the match before it starts.

Counter-Strike, Valorant

Competitive 5v5, matched by skill.

Rocket League

1v1, 2v2 and 3v3 queues side by side. Friends queue together.

Chess.com, Hearthstone

1v1, matched by rating.
If your game has a Play or Find match button, this is the page for you. If your players join one shared world that keeps running, such as a Minecraft server, matchmaking can still place them, but that world needs to be a persistent World rather than a match.

What your players get

Three steps: a player searches, Summer groups four players into a match, and all four join the same World on one server. Three steps: a player searches, Summer groups four players into a match, and all four join the same World on one server.
1

Search

The player picks a mode and presses Play. Your game shows the search progress, and the player can cancel at any time.
2

Match found

Summer has grouped enough players. If the queue requires accepting, the match starts once every player has accepted. Your game can show an Accept / Decline prompt, or accept automatically the moment a match is found.
3

Into the match

Summer starts a server for the match, and every player joins that same World. On a team queue, your server already knows who is on which team.
Your game decides what each step looks like: the search screen, the prompt and any countdown. Summer handles grouping players, reserving the server and getting everyone into it.

Pick your setup

Each setup below is one queue. A game can declare several, for example a casual queue and a ranked queue. Copy a prompt into your coding agent; it reads your project and makes the change for you.

Quick play: first come, first served

Players are matched in the order they started searching, with no skill check. Good for casual modes, party games, and any game that’s starting out with few players. The first four players to start searching are grouped into a match; later players keep searching. The first four players to start searching are grouped into a match; later players keep searching.

Add quick play. A Play button, a searching screen with Cancel, and joining the match.

Ranked: match players of similar skill

Summer keeps a rating for every player in the queue and matches players with similar ratings first. If a player waits a while, the range of ratings they can be matched with widens. You can use Summer’s Elo rating for two-sided matches, or let your server decide how much each player’s rating moves. See Ratings and leaderboards. On a rating line, a player at 1400 is first matched with players close to 1400; after waiting, the range widens to include players further away. On a rating line, a player at 1400 is first matched with players close to 1400; after waiting, the range widens to include players further away.

Add a ranked queue. Skill-based matching with a rating that moves after every match.

Fixed teams: 2v2, 3v3, 5v5

Every match holds exactly the number of players needed to fill every team. Summer splits them into teams, and friends who queued together as a party always land on the same team. In a ranked queue, Summer picks the most even split of ratings it can find. Your server reads each player’s team when they join. A party of two and four solo players are split into two teams of three; the party lands on the same team. A party of two and four solo players are split into two teams of three; the party lands on the same team.

Add a team queue. Fixed teams, parties kept together, teams known to the server.

Accept prompt: confirm before the match starts

Before Summer starts the server, every player has to accept. Use this when a match is a commitment, such as a 30-minute ranked game, and you don’t want one AFK player to ruin it for nine others. Add it to any of the queues above. A player who declines leaves the queue, and everyone else goes back to searching without losing their place in line. If the timer runs out, the match doesn’t start. Your game can also skip the prompt and accept for the player as soon as a match is found. If all four players accept, the match starts. If one declines, that player leaves the queue and the other three go back to searching in the same place in line. If all four players accept, the match starts. If one declines, that player leaves the queue and the other three go back to searching in the same place in line.

Add an Accept / Decline prompt when a match is found, with a timer.

Not sure which fits?

Plan matchmaking for my game. Your agent reads your project and proposes queues. No code.

Testing it on your machine

Local Play runs your server and several game windows on one computer, so you can test a queue without hosting anything. Local Play differs from hosted matchmaking in three ways:
  • Players are placed straight away, with no real search.
  • The Accept / Decline prompt never appears.
  • Players aren’t grouped by rating. Teams are handed out in turn: first player, team 0; second player, team 1; and so on.
Searching, matching by skill, and the accept prompt all need a hosted game.
Does this not help you? Reach out on Discord!