Menyesuaikan algoritme pencocokan - Amazon GameLift

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

Menyesuaikan algoritme pencocokan

FlexMatch mengoptimalkan algoritma default untuk sebagian besar game untuk membuat pemain masuk ke pertandingan yang dapat diterima dengan waktu tunggu minimal. Anda dapat menyesuaikan algoritme dan menyesuaikan perjodohan untuk gim Anda.

Berikut ini adalah algoritma FlexMatch perjodohan default:

  1. FlexMatch menempatkan semua tiket perjodohan terbuka dan tiket isi ulang di kolam tiket.

  2. FlexMatch mengelompokkan tiket secara acak di kolam menjadi satu atau lebih batch. Saat kumpulan tiket semakin besar, FlexMatch bentuk batch tambahan untuk mempertahankan ukuran batch yang optimal.

  3. FlexMatch mengurutkan tiket berdasarkan usia, dalam setiap batch.

  4. FlexMatch membangun kecocokan berdasarkan tiket tertua dari setiap batch.

Untuk menyesuaikan algoritme pencocokan, tambahkan komponen algorithm ke skema set aturan Anda. Lihat FlexMatchaturan set skema untuk informasi selengkapnya.

Gunakan penyesuaian opsional berikut untuk memengaruhi berbagai tahapan proses perjodohan Anda.

Menambahkan penyortiran pra-batch

Anda dapat mengurutkan kumpulan tiket sebelum membentuk batch. Jenis kustomisasi ini paling efektif dengan game dengan kolam tiket besar. Penyortiran pra-batch dapat membantu mempercepat proses perjodohan dan meningkatkan keseragaman pemain dalam karakteristik yang ditentukan.

Tentukan metode penyortiran pra-batch menggunakan properti batchingPreference algoritma. Pengaturan default-nya adalah random.

Opsi untuk menyesuaikan penyortiran pra-batch meliputi:

  • Urutkan berdasarkan atribut pemain. Berikan daftar atribut pemain untuk mengurutkan kumpulan tiket.

    Untuk mengurutkan berdasarkan atribut pemain, atur batchingPreference kesorted, dan tentukan daftar atribut pemain AndasortByAttributes. Untuk menggunakan atribut, pertama-tama deklarasikan atribut dalam playerAttributes komponen kumpulan aturan.

    Dalam contoh berikut, FlexMatch urutkan kumpulan tiket berdasarkan peta permainan pilihan pemain dan kemudian berdasarkan keterampilan pemain. Batch yang dihasilkan lebih cenderung berisi pemain dengan keterampilan serupa yang ingin menggunakan peta yang sama.

    "algorithm": { "batchingPreference": "sorted", "sortByAttributes": ["map", "player_skill"], "strategy": "exhaustiveSearch" },
  • Urutkan berdasarkan latensi. Buat kecocokan dengan latensi terendah yang tersedia atau buat kecocokan dengan cepat dengan latensi yang dapat diterima. Kustomisasi ini berguna untuk set aturan yang membentuk pertandingan besar lebih dari 40 pemain.

    Atur properti algoritma strategy kebalanced. Strategi seimbang membatasi jenis pernyataan aturan yang tersedia. Untuk informasi selengkapnya, lihat Rancang set aturan FlexMatch kecocokan besar.

    FlexMatch mengurutkan tiket berdasarkan data latensi yang dilaporkan pemain dengan salah satu cara berikut:

    • Lokasi latensi terendah. Kumpulan tiket diurutkan berdasarkan lokasi di mana pemain melaporkan nilai latensi terendah mereka. FlexMatch kemudian mengumpulkan tiket dengan latensi rendah di lokasi yang sama, menciptakan pengalaman bermain game yang lebih baik. Ini juga mengurangi jumlah tiket di setiap batch, sehingga perjodohan bisa memakan waktu lebih lama. Untuk menggunakan kustomisasi ini, atur batchingPreference kefastestRegion, seperti yang ditunjukkan pada contoh berikut.

      "algorithm": { "batchingPreference": "fastestRegion", "strategy": "balanced" },
    • Latensi yang dapat diterima cocok dengan cepat. Kumpulan tiket diurutkan berdasarkan lokasi di mana pemain melaporkan nilai latensi yang dapat diterima. Ini membentuk lebih sedikit batch yang berisi lebih banyak tiket. Dengan lebih banyak tiket di setiap batch, menemukan pertandingan yang dapat diterima lebih cepat. Untuk menggunakan kustomisasi ini, atur properti batchingPreference ke largestPopulation, seperti yang ditunjukkan pada contoh berikut.

      "algorithm": { "batchingPreference": "largestPopulation", "strategy": "balanced" },
    catatan

    Nilai default untuk strategi seimbang adalahlargestPopulation.

Memprioritaskan tiket backfill

Jika game Anda menerapkan pengisian ulang otomatis atau pengisian ulang manual, Anda dapat menyesuaikan cara FlexMatch memproses tiket perjodohan berdasarkan jenis permintaan. Jenis permintaan dapat berupa permintaan kecocokan atau pengisian ulang baru. Secara default, FlexMatch memperlakukan kedua jenis permintaan dengan cara yang sama.

Prioritas pengisian ulang berdampak pada cara FlexMatch menangani tiket setelah menggabungkannya. Prioritas isi ulang memerlukan set aturan untuk menggunakan strategi pencarian lengkap.

FlexMatch tidak cocok dengan beberapa tiket isi ulang bersama-sama.

Untuk mengubah prioritas tiket isi ulang, atur properti. backfillPriority

  • Cocokkan tiket isi ulang terlebih dahulu. Opsi ini mencoba mencocokkan tiket isi ulang sebelum membuat pertandingan baru. Ini berarti bahwa pemain yang masuk memiliki peluang lebih tinggi untuk bergabung dengan game yang ada.

    Cara terbaik untuk menggunakan ini jika game Anda menggunakan auto-backfill. Auto-backfill sering digunakan dalam game dengan sesi permainan pendek dan perputaran pemain tinggi. Auto-backfill membantu game-game ini membentuk pertandingan minimum yang layak dan memulainya saat FlexMatch mencari lebih banyak pemain untuk mengisi slot terbuka.

    Atur backfillPriority ke high .

    "algorithm": { "backfillPriority": "high", "strategy": "exhaustiveSearch" },
  • Match backfill tiket terakhir. Opsi ini mengabaikan tiket isi ulang sampai mengevaluasi semua tiket lainnya. Ini berarti bahwa FlexMatch mengisi kembali pemain yang masuk ke dalam game yang ada ketika tidak dapat mencocokkan mereka ke dalam game baru.

    Opsi ini berguna ketika Anda ingin menggunakan backfill sebagai opsi kesempatan terakhir untuk memasukkan pemain ke dalam permainan, seperti ketika tidak ada cukup pemain untuk membentuk pertandingan baru.

    Atur backfillPriority ke low.

    "algorithm": { "backfillPriority": "low", "strategy": "exhaustiveSearch" },

Mendukung tiket lama dengan ekspansi

Aturan ekspansi mengendurkan kriteria kecocokan saat pertandingan sulit diselesaikan. Amazon GameLift menerapkan aturan ekspansi ketika tiket dalam pertandingan yang diselesaikan sebagian mencapai usia tertentu. Stempel waktu pembuatan tiket menentukan kapan Amazon GameLift menerapkan aturan; secara default, FlexMatch melacak stempel waktu tiket yang paling cocok.

Untuk mengubah saat FlexMatch menerapkan aturan ekspansi, tetapkan properti expansionAgeSelection sebagai berikut:

  • Perluas berdasarkan tiket terbaru. Opsi ini menerapkan aturan perluasan berdasarkan tiket terbaru yang ditambahkan ke kecocokan potensial. Setiap kali FlexMatch cocok dengan tiket baru, jam waktu diatur ulang. Dengan opsi ini, pertandingan yang dihasilkan cenderung memiliki kualitas yang lebih tinggi tetapi membutuhkan waktu lebih lama untuk dicocokkan; permintaan pertandingan mungkin habis sebelum diselesaikan jika terlalu lama untuk dicocokkan. Setel expansionAgeSelection kenewest. newestadalah default.

  • Perluas berdasarkan tiket tertua. Opsi ini menerapkan aturan ekspansi berdasarkan tiket tertua dalam pertandingan potensial. Dengan opsi ini, FlexMatch menerapkan ekspansi lebih cepat, yang meningkatkan waktu tunggu untuk pemain paling awal yang cocok, tetapi menurunkan kualitas pertandingan untuk semua pemain. Atur expansionAgeSelection ke oldest.

"algorithm": { "expansionAgeSelection": "oldest", "strategy": "exhaustiveSearch" },