Help me write a massive battleroyal flexmatch ruleset

Hi.

We are making a massive battle royale game.

We are preparing a service using GameLift and Flexmatch.

I checked the small number of Flexmatch rulesets.

Test Matct Ruleset

{
	"ruleLanguageVersion": "1.0",
	"teams": [{
		"name": "FixedTeam",
		"maxPlayers": 3,
		"minPlayers": 3,
		"quantity": 2
	}, {
		"name": "Team1",
		"maxPlayers": 3,
		"minPlayers": 3
	}],
"expansions": [{
		"target": "teams[Team1].minPlayers",
		"steps": [{
			"waitTimeSeconds": 30,
			"value": 0
		}]
}]
}

We have confirmed that it works for a small number of people.

But it doesn’t work for many people.

We are thinking of 3 people in 1 team up to 30 teams.

I want to reduce the number of teams over time.

Please help me how to define a ruleset.

Attach a link to our game.

Please help me

Also attach a large set of rules that failed the test.

Thank you for reading

{
	"ruleLanguageVersion": "1.0",
	"playerAttributes": [{
		"name": "LargeTempValue",
		"type": "number",
		"default": 0
	}],"algorithm": {
		"balancedAttribute": "LargeTempValue",
		"strategy": "balanced",
		"batchingPreference": "largestPopulation"
	},
	"teams": [{
		"name": "FixedTeam",
		"maxPlayers": 3,
		"minPlayers": 3,
		"quantity": 2
	}, {
		"name": "Team1",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team2",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team3",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team4",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team5",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team6",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team7",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team8",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team9",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team10",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team11",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team12",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team13",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team14",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team15",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team16",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team17",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team18",
		"maxPlayers": 3,
		"minPlayers": 3
	}],
	"expansions": [{
		"target": "teams[Team18].minPlayers",
		"steps": [{
			"waitTimeSeconds": 10,
			"value": 0
		}],
		"target": "teams[Team17].minPlayers",
		"steps": [{
			"waitTimeSeconds": 11,
			"value": 0
		}],
		"target": "teams[Team16].minPlayers",
		"steps": [{
			"waitTimeSeconds": 12,
			"value": 0
		}],
		"target": "teams[Team15].minPlayers",
		"steps": [{
			"waitTimeSeconds": 13,
			"value": 0
		}],
		"target": "teams[Team14].minPlayers",
		"steps": [{
			"waitTimeSeconds": 14,
			"value": 0
		}],
		"target": "teams[Team13].minPlayers",
		"steps": [{
			"waitTimeSeconds": 15,
			"value": 0
		}],
		"target": "teams[Team12].minPlayers",
		"steps": [{
			"waitTimeSeconds": 75,
			"value": 0
		}],
		"target": "teams[Team11].minPlayers",
		"steps": [{
			"waitTimeSeconds": 76,
			"value": 0
		}],
		"target": "teams[Team10].minPlayers",
		"steps": [{
			"waitTimeSeconds": 77,
			"value": 0
		}],
		"target": "teams[Team9].minPlayers",
		"steps": [{
			"waitTimeSeconds": 78,
			"value": 0
		}],
		"target": "teams[Team8].minPlayers",
		"steps": [{
			"waitTimeSeconds": 138,
			"value": 0
		}],
		"target": "teams[Team7].minPlayers",
		"steps": [{
			"waitTimeSeconds": 139,
			"value": 0
		}],
		"target": "teams[Team6].minPlayers",
		"steps": [{
			"waitTimeSeconds": 140,
			"value": 0
		}],
		"target": "teams[Team5].minPlayers",
		"steps": [{
			"waitTimeSeconds": 141,
			"value": 0
		}],
		"target": "teams[Team4].minPlayers",
		"steps": [{
			"waitTimeSeconds": 142,
			"value": 0
		}],
		"target": "teams[Team3].minPlayers",
		"steps": [{
			"waitTimeSeconds": 172,
			"value": 0
		}],
		"target": "teams[Team2].minPlayers",
		"steps": [{
			"waitTimeSeconds": 202,
			"value": 0
		}],
		"target": "teams[Team1].minPlayers",
		"steps": [{
			"waitTimeSeconds": 212,
			"value": 0
		}]
	}]
}

Can you explain this a little more? Are you saying it doesn’t work, if so how does it fail for you? Or are you just saying that it doesn’t work for your game as you want many people in the map?

Can you explain how this “failed” for you?

Is your only use case to have 3 players in x teams within a reasonable time frame? Do you need any other matching requirements?

In the meantime I am discussing your post with a FlexMatch expert and hopefully will have some more information for you soon.

@Pip Thank you

Failed Ruleset

{
	"ruleLanguageVersion": "1.0",
	"playerAttributes": [{
		"name": "LargeTempValue",
		"type": "number",
		"default": 0
	}],"algorithm": {
		"balancedAttribute": "LargeTempValue",
		"strategy": "balanced",
		"batchingPreference": "largestPopulation"
	},
	"teams": [{
		"name": "FixedTeam",
		"maxPlayers": 3,
		"minPlayers": 3,
		"quantity": 2
	}, {
		"name": "Team1",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team2",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team3",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team4",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team5",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team6",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team7",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team8",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team9",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team10",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team11",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team12",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team13",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team14",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team15",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team16",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team17",
		"maxPlayers": 3,
		"minPlayers": 3
	}, {
		"name": "Team18",
		"maxPlayers": 3,
		"minPlayers": 3
	}],
	"expansions": [{
		"target": "teams[Team18].minPlayers",
		"steps": [{
			"waitTimeSeconds": 10,
			"value": 0
		}],
		"target": "teams[Team17].minPlayers",
		"steps": [{
			"waitTimeSeconds": 11,
			"value": 0
		}],
		"target": "teams[Team16].minPlayers",
		"steps": [{
			"waitTimeSeconds": 12,
			"value": 0
		}],
		"target": "teams[Team15].minPlayers",
		"steps": [{
			"waitTimeSeconds": 13,
			"value": 0
		}],
		"target": "teams[Team14].minPlayers",
		"steps": [{
			"waitTimeSeconds": 14,
			"value": 0
		}],
		"target": "teams[Team13].minPlayers",
		"steps": [{
			"waitTimeSeconds": 15,
			"value": 0
		}],
		"target": "teams[Team12].minPlayers",
		"steps": [{
			"waitTimeSeconds": 75,
			"value": 0
		}],
		"target": "teams[Team11].minPlayers",
		"steps": [{
			"waitTimeSeconds": 76,
			"value": 0
		}],
		"target": "teams[Team10].minPlayers",
		"steps": [{
			"waitTimeSeconds": 77,
			"value": 0
		}],
		"target": "teams[Team9].minPlayers",
		"steps": [{
			"waitTimeSeconds": 78,
			"value": 0
		}],
		"target": "teams[Team8].minPlayers",
		"steps": [{
			"waitTimeSeconds": 138,
			"value": 0
		}],
		"target": "teams[Team7].minPlayers",
		"steps": [{
			"waitTimeSeconds": 139,
			"value": 0
		}],
		"target": "teams[Team6].minPlayers",
		"steps": [{
			"waitTimeSeconds": 140,
			"value": 0
		}],
		"target": "teams[Team5].minPlayers",
		"steps": [{
			"waitTimeSeconds": 141,
			"value": 0
		}],
		"target": "teams[Team4].minPlayers",
		"steps": [{
			"waitTimeSeconds": 142,
			"value": 0
		}],
		"target": "teams[Team3].minPlayers",
		"steps": [{
			"waitTimeSeconds": 172,
			"value": 0
		}],
		"target": "teams[Team2].minPlayers",
		"steps": [{
			"waitTimeSeconds": 202,
			"value": 0
		}],
		"target": "teams[Team1].minPlayers",
		"steps": [{
			"waitTimeSeconds": 212,
			"value": 0
		}]
	}]
}

The test environment is matching six clients.

I think 2 FixedTeam should match after 212 seconds.

But it doesn’t match.

There are many teams and you need matching ruleset that will reduce the number of teams over time.