

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

# Rancang set aturan FlexMatch kecocokan besar
<a name="match-design-rulesets-large"></a>

Jika set aturan Anda membuat kecocokan yang memungkinkan 41 hingga 200 pemain, Anda perlu melakukan beberapa penyesuaian pada konfigurasi set aturan Anda. Penyesuaian ini mengoptimalkan algoritme kecocokan sehingga dapat membangun kecocokan besar yang layak sambil juga mempersingkat waktu tunggu pemain. Akibatnya, set aturan pencocokan besar menggantikan aturan khusus yang memakan waktu dengan solusi standar yang dioptimalkan untuk prioritas pencocokan umum. 

Berikut cara menentukan apakah Anda perlu mengoptimalkan set aturan untuk kecocokan besar:

1. Untuk setiap tim yang ditentukan dalam set aturan Anda, dapatkan nilai dari *maxPlayer*,

1. Tambahkan semua nilai *maxPlayer*. Jika totalnya melebihi 40, Anda memiliki set aturan kecocokan yang besar. 

Untuk mengoptimalkan set aturan Anda untuk kecocokan besar, buat penyesuaian yang dijelaskan sebagai berikut. Lihat skema untuk aturan kecocokan besar yang diatur di [Skema kumpulan aturan untuk kecocokan besar](match-ruleset-schema-large.md) dan contoh set aturan di [Contoh: Buat kecocokan besar](match-examples-7.md).

# Sesuaikan algoritme kecocokan untuk kecocokan besar
<a name="match-design-rulesets-large-algorithm"></a>

Tambahkan komponen algoritme ke set aturan, jika belum ada. Mengatur properti berikut. 
+ `strategy` (diperlukan) – Atur properti `strategy` ke “seimbang”. Pengaturan ini memicu FlexMatch untuk melakukan pemeriksaan pasca-pertandingan tambahan untuk menemukan keseimbangan tim yang optimal berdasarkan atribut pemain tertentu, yang didefinisikan dalam properti. `balancedAttribute` Strategi seimbang menggantikan kebutuhan akan aturan khusus untuk membangun tim yang seimbang.
+ `balancedAttribute` (diperlukan) – Identifikasi atribut pemain untuk digunakan saat menyeimbangkan tim dalam kecocokan. Atribut ini harus memiliki jenis data numerik (ganda atau bilangan bulat). Misalnya, jika Anda memilih untuk menyeimbangkan keterampilan pemainFlexMatch, cobalah untuk menetapkan pemain sehingga semua tim memiliki tingkat keterampilan agregat yang sama rata mungkin. Atribut penyeimbang harus dinyatakan dalam atribut pemain set aturan. 
+ `batchingPreference` (opsional) – Tentukan seberapa besar penekanan yang ingin Anda berikan untuk membentuk kecocokan dengan latensi serendah mungkin untuk pemain Anda. Pengaturan ini memengaruhi cara tiket kecocokan diurutkan sebelum membuat kecocokan. Opsi termasuk: 
  + Populasi terbesar. FlexMatchmemungkinkan kecocokan menggunakan semua tiket di kolam yang memiliki nilai latensi yang dapat diterima di setidaknya satu lokasi yang sama. Akibatnya, kolam tiket potensial cenderung berukuran besar, sehingga membuatnya lebih mudah untuk mengisi kecocokan dengan lebih cepat. Pemain dapat ditempatkan dalam game dengan latensi yang dapat diterima, tetapi tidak selalu optimal. Jika `batchingPreference` properti tidak disetel, ini adalah perilaku default saat `strategy` disetel ke “balanced”.
  + Lokasi tercepat. FlexMatchpra-urutkan semua tiket di kolam berdasarkan di mana mereka melaporkan nilai latensi terendah. Akibatnya, pertandingan cenderung dibentuk dengan pemain yang melaporkan latensi rendah di lokasi yang sama. Pada saat yang sama, kolam tiket potensial untuk setiap kecocokan lebih kecil, yang dapat meningkatkan waktu yang dibutuhkan untuk mengisi kecocokan. Selain itu, karena prioritas yang lebih tinggi ditempatkan pada latensi, pemain dalam pertandingan dapat bervariasi lebih luas sehubungan dengan atribut penyeimbangan.

Contoh berikut mengonfigurasi algoritme pencocokan untuk berperilaku sebagai berikut: (1) Pra-urutkan kumpulan tiket untuk mengelompokkan tiket berdasarkan lokasi di mana mereka memiliki nilai latensi yang dapat diterima; (2) Bentuk kumpulan tiket yang diurutkan untuk pencocokan; (3) Buat pertandingan dengan tiket dalam satu batch dan seimbangkan tim untuk meratakan keterampilan pemain rata-rata.

```
"algorithm": {
    "strategy": "balanced",
    "balancedAttribute": "player_skill",
    "batchingPreference": "largestPopulation"
},
```

# Menyatakan atribut pemain
<a name="match-design-rulesets-large-attributes"></a>

Pastikan Anda menyatakan atribut pemain yang digunakan sebagai atribut penyeimbang dalam algoritme set aturan. Atribut ini harus dimasukkan untuk setiap pemain dalam permintaan pencocokan. Anda dapat memberikan nilai default untuk atribut pemain, tetapi penyeimbangan atribut berfungsi paling baik saat nilai khusus pemain diberikan.

# Menentukan tim
<a name="match-design-rulesets-large-teams"></a>

Proses mendefinisikan ukuran dan struktur tim sama dengan pertandingan kecil, tetapi cara FlexMatch mengisi tim berbeda. Hal ini memengaruhi tampilan kecocokan jika hanya diisi sebagian. Anda mungkin ingin menyesuaikan ukuran tim minimum Anda sebagai tanggapan.

FlexMatchmenggunakan aturan berikut saat menugaskan pemain ke tim. Pertama: cari tim yang belum mencapai persyaratan minimum pemain. Kedua: dari tim-tim tersebut, temukan salah satu tim yang slotnya paling terbuka. 

Untuk kecocokan yang menentukan beberapa tim berukuran sama, pemain ditambahkan secara berurutan ke setiap tim hingga penuh. Akibatnya, tim dalam kecocokan selalu memiliki jumlah pemain yang hampir sama, bahkan saat pertandingan tidak penuh. Saat ini, tidak ada cara untuk memaksa tim berukuran sama dalam kecocokan besar. Untuk kecocokan dengan tim berukuran asimetris, prosesnya sedikit lebih rumit. Dalam skenario ini, pemain awalnya ditetapkan ke tim terbesar yang memiliki slot paling terbuka. Karena jumlah slot terbuka menjadi lebih merata di semua tim, pemain ditempatkan ke tim yang lebih kecil.

Misalnya, Anda memiliki aturan yang ditetapkan dengan tiga tim. Tim Merah dan Biru, keduanya diatur ke `maxPlayers`=10, `minPlayers`=5. Tim Hijau diatur ke `maxPlayers`=3, `minPlayers`=2. Berikut adalah urutan pengisiannya: 

1. Tidak ada tim yang mencapai `minPlayers`. Tim Merah dan Biru memiliki 10 slot terbuka, sedangkan Hijau memiliki 3. 10 pemain pertama ditugaskan (5 masing-masing) ke tim Merah dan Biru. Kedua tim kini telah mencapai `minPlayers`.

1. Tim hijau belum mencapai `minPlayers`. 2 pemain berikutnya ditetapkan ke tim Hijau. Tim Hijau sekarang telah mencapai `minPlayers`.

1. Dengan semua tim di`minPlayers`, pemain tambahan sekarang ditugaskan berdasarkan jumlah slot terbuka. Tim Merah dan Biru masing-masing memiliki 5 slot terbuka, sedangkan tim Green memiliki 1. 8 pemain berikutnya ditetapkan (masing-masing 4) ke tim Merah dan Biru. Semua tim sekarang memiliki 1 slot terbuka.

1. 3 slot pemain yang tersisa ditetapkan (masing-masing 1) ke tim tanpa urutan tertentu.

# Tetapkan aturan untuk pertandingan besar
<a name="match-design-rulesets-large-rule"></a>

Pencocoka untuk kecocokan besar bergantung terutama pada strategi penyeimbangan dan pengoptimalan batching latensi. Sebagian besar aturan kustom tidak tersedia. Namun, Anda dapat memasukkan jenis aturan berikut: 
+ Aturan yang menetapkan batas keras pada latensi pemain. Gunakan tipe `latency` aturan dengan properti`maxLatency`. Lihat [Latensi aturan](match-rules-reference-ruletype.md#match-rules-reference-ruletype-latency) referensi. Berikut adalah contoh yang menyetel latensi pemain maksimum ke 200 milidetik:

  ```
  "rules": [{
          "name": "player-latency",
          "type": "latency",
          "maxLatency": 200
      }],
  ```
+ Aturan untuk batch pemain berdasarkan kedekatan dalam atribut pemain tertentu. Ini berbeda dengan mendefinisikan atribut balancing sebagai bagian dari algoritma pertandingan besar, yang berfokus pada membangun tim yang cocok secara merata. Aturan ini mengumpulkan tiket perjodohan berdasarkan kesamaan dalam nilai atribut yang ditentukan, seperti keterampilan pemula atau ahli, yang cenderung mengarah ke pemain pertandingan yang selaras erat pada atribut yang ditentukan. Gunakan tipe `batchDistance` aturan, identifikasi atribut berbasis numerik, dan tentukan rentang terluas untuk mengizinkan. Lihat [Aturan jarak Batch](match-rules-reference-ruletype.md#match-rules-reference-ruletype-batchdistance) referensi. Berikut adalah contoh yang meminta pemain pertandingan berada dalam satu tingkat keterampilan satu sama lain:

  ```
  "rules": [{
          "name": "batch-skill",
          "type": "batchDistance",
          "batchAttribute": "skill",
          "maxDistance": 1
  ```

# Melonggarkan persyaratan kecocokan besar
<a name="match-design-rulesets-large-relax"></a>

Seperti halnya kecocokan kecil, Anda dapat menggunakan perluasan untuk melonggarkan persyaratan kecocokan dari waktu ke waktu ketika tidak ada kecocokan valid yang memungkinkan. Dengan kecocokan besar, Anda memiliki opsi untuk melonggarkan aturan latensi atau jumlah pemain tim. 

Jika Anda menggunakan pengisian ulang pertandingan otomatis untuk pertandingan besar, hindari merilekskan jumlah pemain tim Anda terlalu cepat. FlexMatchmulai menghasilkan permintaan pengisian ulang hanya setelah sesi permainan dimulai, yang mungkin tidak terjadi selama beberapa detik setelah pertandingan dibuat. Selama waktu itu, FlexMatch dapat membuat beberapa sesi permainan baru yang terisi sebagian, terutama ketika aturan hitungan pemain diturunkan. Akibatnya, Anda mendapatkan dengan lebih banyak sesi game daripada yang Anda butuhkan dan persebaran pemain terlalu tipis. Praktik terbaik adalah memberikan langkah pertama dalam perluasan jumlah pemain Anda waktu tunggu yang lebih lama, cukup lama untuk memulai sesi game Anda. Karena permintaan backfill diberi prioritas lebih tinggi untuk kecocokan besar, pemain yang masuk akan ditempatkan ke dalam game yang ada sebelum game baru dimulai. Anda mungkin perlu bereksperimen untuk menemukan waktu tunggu yang ideal untuk game Anda.

Berikut adalah contoh yang secara bertahap menurunkan jumlah pemain tim Kuning, dengan waktu tunggu awal yang lebih lama. Perlu diingat bahwa waktu tunggu dalam perluasan set aturan adalah mutlak, tidak ditambah. Jadi perluasan pertama terjadi pada lima detik, dan perluasan kedua terjadi lima detik kemudian, yaitu pada sepuluh detik.

```
"expansions": [{
        "target": "teams[Yellow].minPlayers",
        "steps": [{
            "waitTimeSeconds": 5,
            "value": 8
        }, {
            "waitTimeSeconds": 10,
            "value": 5
        }]
    }]
```