Gamelift FlexMatch Backfill is stopped for the existing session when a player from the session enters queue again.

0

Hi, I have a queue which do matchmaking and after successful matchmaking, it creates an automatic backfill request to fill remaining player slot. The backfill works fine until a player who was part of the recent matchmaking is entering the queue again. I have noticed that at this point, The queue is no longer trying to backfill to existing server. Instead it is trying to create a new session for the players in the queue. This is affecting user experience significantly because there are people with incompatible specs trying to play the game and after matchmaking, they gets "TIMED OUT" trying to connect to the server due to their machines. These people try again clicking play button and enters queue. As a result, the players who are in queue whom were supposed to be backfilled to the ongoing session is also dragged away from backfill and at times when the player liquidity is low, this cause huge delay creating match for players whom were supposed to backfill because of these TIMED OUT players. Is their anyway I can solve this issue?

2 Answers
0

You can try to address this matchmaking and backfilling issue by adding a cooldown period for players who recently timed out before allowing them to reenter the queue. This will prevent them from interfering with the backfill process.

Also, prioritize backfilling existing sessions over creating new ones whenever there are open slots. Use separate queues or logic flows to achieve this. When a new matchmaking request comes in from a recently timed out player, check if they can be backfilled first before starting a new session. Set a timeout limit after which unmatched players will be removed from the queue and required to requeue. This avoids dragging down players who could have been backfilled.

The key is to prioritize backfilling where possible, isolate players who frequently timeout to avoid interference, and build in checks to match compatible players/hardware more intelligently.

AWS
Srinath
answered 2 months ago
profile picture
EXPERT
reviewed a month ago
0

Hey IndieGameDeveloperFromParallelWorld,

Matchmaking restricts you from having two requests in flight at once with the same player. If you send a new matchmaking request, any other in-flight requests with that same player will be canceled. Auto-backfill uses the current match results to create the backfill ticket, so if that player left the match and re-entered matchmaking, it would cancel the backfill request.

The common solution is to call the StartMatchBackfill api via the server SDK with an accurate list of players currently connected. The previous backfill ticket will be canceled, and the new ticket won't have the previous player and be affected when that player tries to resume matchmaking. It also means the backfill ticket will have an accurate number of players needed for backfill.

AWS
answered 2 months ago
profile picture
EXPERT
reviewed a month ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions