View a markdown version of this page

Exemple : utilisez une règle composée pour créer un match avec des joueurs ayant des attributs similaires ou des sélections similaires - GameLift Serveurs Amazon

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.

Exemple : 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 un écart de league 2 % par rapport aux 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 est étendue à 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 }] }] }