Contoh: Gunakan aturan gabungan untuk membuat pertandingan dengan pemain dengan atribut serupa atau pilihan serupa - Amazon GameLift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Contoh: Gunakan aturan gabungan untuk membuat pertandingan dengan pemain dengan atribut serupa atau pilihan serupa

Contoh ini menggambarkan cara menyiapkan set aturan untuk kecocokan dengan dua tim menggunakan compound. Contohnya:

  • Aturan SimilarLeagueDistance memastikan semua pemain dalam kecocokan memiliki league dalam 2 pemain lainnya.

  • Aturan SimilarSkillDistance memastikan semua pemain dalam kecocokan memiliki skill dalam 10 pemain lainnya. Jika seorang pemain telah menunggu 10 detik, jaraknya diperluas menjadi 20. Jika seorang pemain telah menunggu 20 detik, jaraknya diperluas menjadi 40.

  • Aturan SameMapComparison memastikan semua pemain dalam kecocokan telah meminta hal yang sama map.

  • AturanSameModeComparison memastikan semua pemain dalam kecocokan telah meminta hal yang sama mode.

  • CompoundRuleMatchmakerAturan memastikan kecocokan jika setidaknya salah satu dari kondisi berikut benar:

    • Pemain dalam pertandingan telah meminta hal yang sama map dan samamode.

    • Pemain dalam pertandingan memiliki league atribut skill dan atribut yang sebanding.

{ "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 }] }] }