Finds new players to fill open slots in an existing game session. This operation can be used to add players to matched games that start with fewer than the maximum number of players or to replace players when they drop out. By backfilling with the same matchmaker used to create the original match, you ensure that new players meet the match criteria and maintain a consistent experience throughout the game session. You can backfill a match anytime after a game session has been created.
To request a match backfill, specify a unique ticket ID, the existing game session’s ARN, a matchmaking configuration, and a set of data that describes all current players in the game session. If successful, a match backfill ticket is created and returned with status set to QUEUED. The ticket is placed in the matchmaker’s ticket pool and processed. Track the status of the ticket to respond as needed.
The process of finding backfill matches is essentially identical to the initial matchmaking process. The matchmaker searches the pool and groups tickets together to form potential matches, allowing only one backfill ticket per potential match. Once the a match is formed, the matchmaker creates player sessions for the new players. All tickets in the match are updated with the game session’s connection information, and the GameSession object is updated to include matchmaker data on the new players. For more detail on how match backfill requests are processed, see How Amazon GameLift FlexMatch Works .
StartMatchmaking
DescribeMatchmaking
StopMatchmaking
AcceptMatch
StartMatchBackfill
See also: AWS API Documentation
See ‘aws help’ for descriptions of global parameters.
start-match-backfill
[--ticket-id <value>]
--configuration-name <value>
[--game-session-arn <value>]
--players <value>
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
--ticket-id
(string)
A unique identifier for a matchmaking ticket. If no ticket ID is specified here, Amazon GameLift will generate one in the form of a UUID. Use this identifier to track the match backfill ticket status and retrieve match results.
--configuration-name
(string)
Name of the matchmaker to use for this request. You can use either the configuration name or ARN value. The ARN of the matchmaker that was used with the original game session is listed in the GameSession object,
MatchmakerData
property.
--game-session-arn
(string)
Amazon Resource Name (ARN ) that is assigned to a game session and uniquely identifies it. This is the same as the game session ID.
--players
(list)
Match information on all players that are currently assigned to the game session. This information is used by the matchmaker to find new players and add them to the existing game.
PlayerID, PlayerAttributes, Team -- This information is maintained in the GameSession object,
MatchmakerData
property, for all players who are currently assigned to the game session. The matchmaker data is in JSON syntax, formatted as a string. For more details, see Match Data .LatencyInMs -- If the matchmaker uses player latency, include a latency value, in milliseconds, for the Region that the game session is currently in. Do not include latency values for any other Region.
(structure)
Represents a player in matchmaking. When starting a matchmaking request, a player has a player ID, attributes, and may have latency data. Team information is added after a match has been successfully completed.
PlayerId -> (string)
A unique identifier for a player
PlayerAttributes -> (map)
A collection of key:value pairs containing player information for use in matchmaking. Player attribute keys must match the playerAttributes used in a matchmaking rule set. Example:
"PlayerAttributes": {"skill": {"N": "23"}, "gameMode": {"S": "deathmatch"}}
.key -> (string)
value -> (structure)
Values for use in Player attribute key-value pairs. This object lets you specify an attribute value using any of the valid data types: string, number, string array, or data map. Each
AttributeValue
object can use only one of the available properties.S -> (string)
For single string values. Maximum string length is 100 characters.
N -> (double)
For number values, expressed as double.
SL -> (list)
For a list of up to 10 strings. Maximum length for each string is 100 characters. Duplicate values are not recognized; all occurrences of the repeated value after the first of a repeated value are ignored.
(string)
SDM -> (map)
For a map of up to 10 data type:value pairs. Maximum length for each string value is 100 characters.
key -> (string)
value -> (double)
Team -> (string)
Name of the team that the player is assigned to in a match. Team names are defined in a matchmaking rule set.
LatencyInMs -> (map)
Set of values, expressed in milliseconds, indicating the amount of latency that a player experiences when connected to AWS Regions. If this property is present, FlexMatch considers placing the match only in Regions for which latency is reported.
If a matchmaker has a rule that evaluates player latency, players must report latency in order to be matched. If no latency is reported in this scenario, FlexMatch assumes that no Regions are available to the player and the ticket is not matchable.
key -> (string)
value -> (integer)
Shorthand Syntax:
PlayerId=string,PlayerAttributes={KeyName1={S=string,N=double,SL=[string,string],SDM={KeyName1=double,KeyName2=double}},KeyName2={S=string,N=double,SL=[string,string],SDM={KeyName1=double,KeyName2=double}}},Team=string,LatencyInMs={KeyName1=integer,KeyName2=integer} ...
JSON Syntax:
[
{
"PlayerId": "string",
"PlayerAttributes": {"string": {
"S": "string",
"N": double,
"SL": ["string", ...],
"SDM": {"string": double
...}
}
...},
"Team": "string",
"LatencyInMs": {"string": integer
...}
}
...
]
--cli-input-json
| --cli-input-yaml
(string)
Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton
. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml
.
--generate-cli-skeleton
(string)
Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input
, prints a sample input JSON that can be used as an argument for --cli-input-json
. Similarly, if provided yaml-input
it will print a sample input YAML that can be used with --cli-input-yaml
. If provided with the value output
, it validates the command inputs and returns a sample output JSON for that command.
See ‘aws help’ for descriptions of global parameters.
MatchmakingTicket -> (structure)
Ticket representing the backfill matchmaking request. This object includes the information in the request, ticket status, and match results as generated during the matchmaking process.
TicketId -> (string)
A unique identifier for a matchmaking ticket.
ConfigurationName -> (string)
Name of the MatchmakingConfiguration that is used with this ticket. Matchmaking configurations determine how players are grouped into a match and how a new game session is created for the match.
ConfigurationArn -> (string)
The Amazon Resource Name (ARN ) associated with the GameLift matchmaking configuration resource that is used with this ticket.
Status -> (string)
Current status of the matchmaking request.
QUEUED – The matchmaking request has been received and is currently waiting to be processed.
SEARCHING – The matchmaking request is currently being processed.
REQUIRES_ACCEPTANCE – A match has been proposed and the players must accept the match (see AcceptMatch ). This status is used only with requests that use a matchmaking configuration with a player acceptance requirement.
PLACING – The FlexMatch engine has matched players and is in the process of placing a new game session for the match.
COMPLETED – Players have been matched and a game session is ready to host the players. A ticket in this state contains the necessary connection information for players.
FAILED – The matchmaking request was not completed.
CANCELLED – The matchmaking request was canceled. This may be the result of a call to StopMatchmaking or a proposed match that one or more players failed to accept.
TIMED_OUT – The matchmaking request was not successful within the duration specified in the matchmaking configuration.
Note
Matchmaking requests that fail to successfully complete (statuses FAILED, CANCELLED, TIMED_OUT) can be resubmitted as new requests with new ticket IDs.
StatusReason -> (string)
Code to explain the current status. For example, a status reason may indicate when a ticket has returned to
SEARCHING
status after a proposed match fails to receive player acceptances.StatusMessage -> (string)
Additional information about the current status.
StartTime -> (timestamp)
Time stamp indicating when this matchmaking request was received. Format is a number expressed in Unix time as milliseconds (for example “1469498468.057”).
EndTime -> (timestamp)
Time stamp indicating when this matchmaking request stopped being processed due to success, failure, or cancellation. Format is a number expressed in Unix time as milliseconds (for example “1469498468.057”).
Players -> (list)
A set of
Player
objects, each representing a player to find matches for. Players are identified by a unique player ID and may include latency data for use during matchmaking. If the ticket is in statusCOMPLETED
, thePlayer
objects include the team the players were assigned to in the resulting match.(structure)
Represents a player in matchmaking. When starting a matchmaking request, a player has a player ID, attributes, and may have latency data. Team information is added after a match has been successfully completed.
PlayerId -> (string)
A unique identifier for a player
PlayerAttributes -> (map)
A collection of key:value pairs containing player information for use in matchmaking. Player attribute keys must match the playerAttributes used in a matchmaking rule set. Example:
"PlayerAttributes": {"skill": {"N": "23"}, "gameMode": {"S": "deathmatch"}}
.key -> (string)
value -> (structure)
Values for use in Player attribute key-value pairs. This object lets you specify an attribute value using any of the valid data types: string, number, string array, or data map. Each
AttributeValue
object can use only one of the available properties.S -> (string)
For single string values. Maximum string length is 100 characters.
N -> (double)
For number values, expressed as double.
SL -> (list)
For a list of up to 10 strings. Maximum length for each string is 100 characters. Duplicate values are not recognized; all occurrences of the repeated value after the first of a repeated value are ignored.
(string)
SDM -> (map)
For a map of up to 10 data type:value pairs. Maximum length for each string value is 100 characters.
key -> (string)
value -> (double)
Team -> (string)
Name of the team that the player is assigned to in a match. Team names are defined in a matchmaking rule set.
LatencyInMs -> (map)
Set of values, expressed in milliseconds, indicating the amount of latency that a player experiences when connected to AWS Regions. If this property is present, FlexMatch considers placing the match only in Regions for which latency is reported.
If a matchmaker has a rule that evaluates player latency, players must report latency in order to be matched. If no latency is reported in this scenario, FlexMatch assumes that no Regions are available to the player and the ticket is not matchable.
key -> (string)
value -> (integer)
GameSessionConnectionInfo -> (structure)
Identifier and connection information of the game session created for the match. This information is added to the ticket only after the matchmaking request has been successfully completed. This parameter is not set when FlexMatch is being used without GameLift hosting.
GameSessionArn -> (string)
Amazon Resource Name (ARN ) that is assigned to a game session and uniquely identifies it.
IpAddress -> (string)
IP address of the instance that is running the game session. When connecting to a Amazon GameLift game server, a client needs to reference an IP address (or DNS name) and port number.
DnsName -> (string)
DNS identifier assigned to the instance that is running the game session. Values have the following format:
TLS-enabled fleets:
<unique identifier>.<region identifier>.amazongamelift.com
.Non-TLS-enabled fleets:
ec2-<unique identifier>.compute.amazonaws.com
. (See Amazon EC2 Instance IP Addressing .)When connecting to a game session that is running on a TLS-enabled fleet, you must use the DNS name, not the IP address.
Port -> (integer)
Port number for the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number.
MatchedPlayerSessions -> (list)
A collection of player session IDs, one for each player ID that was included in the original matchmaking request.
(structure)
Represents a new player session that is created as a result of a successful FlexMatch match. A successful match automatically creates new player sessions for every player ID in the original matchmaking request.
When players connect to the match’s game session, they must include both player ID and player session ID in order to claim their assigned player slot.
PlayerId -> (string)
A unique identifier for a player
PlayerSessionId -> (string)
A unique identifier for a player session
EstimatedWaitTime -> (integer)
Average amount of time (in seconds) that players are currently waiting for a match. If there is not enough recent data, this property may be empty.