I am using Unreal Engine with Flex Match and wanted to get Back Fill up to work.
- In our matchmaking configuration I set the backfill mode to automatic.
- Also, every time a player disconnects from our server, I call RemovePlayer. So now every time a player is leaving his session is set to completed.
- When I start matchmaking again, with the disconnected player, I only get the MatchmakingSearching event but never MatchmakingSucceeded.
So I though maybe this has to do with Unreal Gamelift module not having OnUpdateGameSession implemented. So I extended the UnrealGamelift module to support this callback. But still no luck.
EDIT: My assumption is “If the backfill mode is set to automatic, gamelift will find new players for all player session which are in timed out and/or completed” automatically. Maybe I misunderstood smth here.
Im scratching my head here right now. The fleet id is:
fleet-95d88887-3dc0-42a5-af4c-ff4127a2c705 and the matchmaking config is DEVELOPMENT-ONEVSONE.
Maybe some dev would give me some hint on what I am doing wrong here.
GameLift should automatically backfill players into existing gamesessions (one or more empty player slots) when using automatic backfill, if:
- There is space in the session
- There are new player requests and
- The player requests match up to the game session ie player attributes match etc
I will see if I can get a FlexMatch expert to look at your current config.
In the meantime can you describe what “No luck” looks like? Do you get players placed in different sessions? Tickets moving to timeout or staying in searching? Do you see any calls to onUpdateGameSession?
- There is space in the session -> A player did leave the session and remove player was called so there should be space
- There are new player requests and -> The leaving player starts new matchmaking
- The player requests match up to the game session ie player attributes match etc -> The start matchmaking request is the same as when the game was created.
“No luck” -> In this example I have one player leave and start matchmaking again. His ticket will never leave the matchmaking searching state until the tickets is beeing timedout.
“Do you see any calls to onUpdateGameSession?” -> No, I also dont see any matchmaking succeeded calls on client side.
Can you provide the ticket ID that got stuck in searching status with the timeframe that you were running the test? That would help us look into this issue.
As of right now, auto-backfill is only supported on createGameSession/updateGameSession, not when a player joins/leaves.
@NingAWS I didnt have that ticket anymore but did repro it in a other gamesession:
Game session: arn:aws:gamelift:eu-central-1::gamesession/fleet-95d88887-3dc0-42a5-af4c-ff4127a2c705/49a4dc0e-bea9-456f-94f9-05d75321702d
The ticket id of a user tried who got stuck:
@AustinK I am confused. I assumed a completed player session (e.g. disconnected player) would make space and would get refilled automatically? Thats how I read the docs. If this is wrong what do I need to do / call to get a game session refilled?
Unfortunately, its a limitation in the current auto-backfil hooks. GameLift will find players for your game session; if it starts with players missing, then it will autobackfil if enabled. If players subsequently leave/disconnect, the current implementation will not submit an auto-backfil ticket on your behalf. You will have to manually submit a backfil request here.
I will ping the GameLift service team so they are aware of your problem.