I was wondering if I could get some clarification on how partyAggregation works on the Latency Rule?. The docs state:
“How to sort multiple-player (party) match requests. Valid options are to use the minimum (min), maximum (max), or average (avg) values for a request’s players. Default is avg.”
How would this work with a maxLatency rule set for a multple-player request? Does the latency rule still evaluate against each person on the ticket or is it done byt he Aggregation rule? Or as it says “how to sort”, is this for any distance/absolute sorting rules that involve latency? I couldn’t find any examples where it was used to reference.
Also, I was wondering if anybody could respond to this post which never got a reply: FlexMatch maxLatency expansion based on player attribute
Unfortunately this is the best official description of how matchmaking works.
"To find player matches for a regular (non-large) match, the matchmaker makes continual passes through the ticket pool. On each pass, the matchmaker starts with the oldest ticket in the pool and evaluates the other tickets against it to find the best possible matches. A matchmaker’s rule set determines (1) how many teams to create for a match, (2) the number of players to assign to each team, and (3) how to evaluate each prospective player. Rules might set requirements for individual players, teams, or matches. For example, a rule might require all matched players to have a certain talent, or it might require at least one player on a team to play a certain character. A commonly used rule requires that all players in a match have similar skill ratings. "
Do you have an example of your
maxLatency rule so we can be clear about what you are trying to achieve? Because you could set it up to be for each player or based on some team aggregation.
Are you looking at something like: https://docs.aws.amazon.com/gamelift/latest/developerguide/match-examples.html#match-examples-3?
If you provide a map of player latencies, matchmaking will then use that data when making gamesessions in your queue: How to calculate player ping/latency for matchmaking?
Latency data can be provided in the matchmaking request as part of the Player object. It is not a player attribute, so it does not need to be listed as one. (See https://docs.aws.amazon.com/gamelift/latest/apireference/API_StartMatchmaking.html and https://docs.aws.amazon.com/gamelift/latest/apireference/API_Player.html )
Docs could be a lot clearer here, so please use the provide feedback buttons to make suggestion/provide feedback.
Hope this helps, apologies that response is a little rushed, but I hope that gets you a little unblocked.
If you still have problems I can try and loop in more of a FlexMatch expert to help.
Yes, that example is how we are currently using the latency rule:
"description": "Prefer matches with fast player connections first",
I was just reviewing what is possible (that other post I linked to is pretty much what I was hoping to accomplish…different max latencies/rollbacks based off a player attribute. While reviewing, I noticed the partyAggregation attribute in the docs and was curious how exactly it behaves.
We are providing latency information for each player on the Player object
As far as a FlexMatch expert, I would love a reply to this post created sometime ago. I’m guessing the answer is “no, not possible”, but even that would be helpful to have confirmed in the post so others who look for this have a definitive answer: FlexMatch maxLatency expansion based on player attribute
Thanks for your reply
For a multiple-player request, the sorting and evaluation processes are both done by the aggregation rule.