View a markdown version of this page

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

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

Contoh: Gunakan aturan majemuk 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.

  • A CompoundRuleMatchmaker turan 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 yang skill 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 }] }] }