Référence : Utilisez une règle composée pour créer un match avec des joueurs ayant des attributs similaires ou des sélections similaires - Amazon GameLift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Référence : Utilisez une règle composée pour créer un match avec des joueurs ayant des attributs similaires ou des sélections similaires

Cet exemple montre comment configurer un ensemble de règles pour les matchs où deux équipes utilisentcompound. Dans l'exemple :

  • La SimilarLeagueDistance règle garantit que tous les joueurs d'un match ont league moins de 2 % des autres joueurs.

  • La SimilarSkillDistance règle garantit que tous les joueurs d'un match ont skill moins de 10 % des autres joueurs. Si un joueur attend 10 secondes, la distance passe à 20. Si un joueur attend depuis 20 secondes, la distance passe à 40.

  • La SameMapComparison règle garantit que tous les joueurs d'un match en ont fait la même demandemap.

  • La SameModeComparison règle garantit que tous les joueurs d'un match en ont fait la même demandemode.

  • La CompoundRuleMatchmaker règle garantit une correspondance si au moins l'une des conditions suivantes est vraie :

    • Les joueurs participant à un match ont demandé la même chose map et la même chosemode.

    • Les joueurs d'un match ont des league attributs skill et des attributs comparables.

{ "ruleLanguageVersion": "1.0", "teams": [{ "name": "red", "minPlayers": 10, "maxPlayers": 20 }, { "name": "blue", "minPlayers": 10, "maxPlayers": 20 }], "algorithm": { "strategy":"balanced", "balancedAttribute": "skill", "batchingPreference":"fastestRegion" }, "playerAttributes": [{ "name": "league", "type": "number" },{ "name": "skill", "type": "number" },{ "name": "map", "type": "string" },{ "name": "mode", "type": "string" }], "rules": [{ "name": "SimilarLeagueDistance", "type": "distance", "measurements": ["max(flatten(teams[*].players.attributes[league]))"], "referenceValue": "min(flatten(teams[*].players.attributes[league]))", "maxDistance": 2 }, { "name": "SimilarSkillDistance", "type": "distance", "measurements": ["max(flatten(teams[*].players.attributes[skill]))"], "referenceValue": "min(flatten(teams[*].players.attributes[skill]))", "maxDistance": 10 }, { "name": "SameMapComparison", "type": "comparison", "operation": "=", "measurements": ["flatten(teams[*].players.attributes[map])"] }, { "name": "SameModeComparison", "type": "comparison", "operation": "=", "measurements": ["flatten(teams[*].players.attributes[mode])"] }, { "name": "CompoundRuleMatchmaker", "type": "compound", "statement": "or(and(SameMapComparison, SameModeComparison), and(SimilarSkillDistance, SimilarLeagueDistance))" }], "expansions": [{ "target": "rules[SimilarSkillDistance].maxDistance", "steps": [{ "waitTimeSeconds": 10, "value": 20 }, { "waitTimeSeconds": 20, "value": 40 }] }] }