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 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 ou des sélections similaires

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

  • La SimilarLeagueDistance règle garantit que tous les joueurs d'un match se situent league à moins de 2 points des autres joueurs.

  • La SimilarSkillDistance règle garantit que tous les joueurs d'un match ont 10 points skill d'avance sur les autres joueurs. Si un joueur a attendu 10 secondes, la distance est étendue à 20. Si un joueur a attendu 20 secondes, la distance est étendue à 40.

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

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

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

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

    • Les joueurs participant à un match ont des league caractéristiques 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 }] }] }