Version: en

100 Player Battle Royale With QoS Sample

This config file configures the matchmaking logic for a 100 player Battle Royale game with the following criteria:

  • All players will be matched in a single team.
  • The matchmaking logic will only create matches with tickets that have QoS results in overlapping regions.
  • The matchmaking logic will create a match only if the average latency of all tickets in the team is less than 100.
  • The matchmaking logic will not match a player into a region if the latency is above 150ms.
  • The matchmaking logic will create a match only if there is a minimum of 50 players.
  • The maximum number of players put together in a team will be 100.
  • Players will only match with other players in a match if their Skill is within 200 points of each other.
  • Players will only match with other players in a match if their Cheater field is the same.

Config File#

{
"Matchmaking": {
"Name": "100p-battle-royale",
"TargetFunction": {
"Name": "rule-based"
},
"Config": {
"Name": "100p-battle-royale",
"MatchDefinition": {
"MatchRules": [
{ "Type": "LessThan", "Source": "Match.Tickets.QosResults.Latency.Avg", "Reference": 100 },
{ "Type": "LessThan", "Source": "Ticket.QosResults.Latency", "Reference": 150 },
{ "Type": "Difference", "Source": "Ticket.Data.Skill", "Reference": 200 },
{ "Type": "Equality", "Source": "Ticket.Data.Cheater" }
],
"Teams": [
{
"Name": "Main Team",
"TeamCount": { "Min": 1, "Max": 1 },
"PlayerCount": { "Min": 50, "Max": 100 }
}
]
},
"TicketTimeoutMs": 60000
}
}
}

Ticket Sample#

Base-64 encoded field values#

{
"Properties": {
"QosResults": "W3siTGF0ZW5jeSI6OTUuMCwiUGFja2V0TG9zcyI6MC4xLCJSZWdpb25JZCI6IjAwMDAtMDAwMC0wMDAwLTAwMDAifV0=",
"Players": "W3siSWQiOiAiUGxheWVyMSJ9XQ==",
"Data":"eyJTa2lsbCI6IDQzMi4wLCAiQ2hlYXRlciI6ICJ0cnVlIn0="
}
}

The decoded contents of the above fields are:#

"QosResults": [{"Latency":95.0,"PacketLoss":0.1,"RegionId":"0000-0000-0000-0000"}]
"Players": [{"Id": "Player1"}]
"Data": {"Skill": 432.0, "Cheater": "true"}