Menjodohkan adalah komponen utama dari sebagian besar game multi-pemain modern. Setelah seorang pengembang menganggapnya serius, ternyata pendatang baru secara teratur bertemu dengan para profesional dalam pertempuran, dan beberapa pemain harus menunggu selamanya hanya untuk masuk ke pertandingan. Selain itu, sulit untuk menguji dan menganalisis sebelum diluncurkan, karena Anda perlu mempertimbangkan banyak faktor. Bagaimana para pemain didistribusikan secara geografis? Berapa lama mereka siap mengantri? Ping mana yang optimal untuk game yang nyaman? Ini dan faktor-faktor lain mempengaruhi kualitas perjodohan.

Di bawah potongan, pertama-tama kita akan membahas praktik umum memilih pertempuran di game multi-pemain, dan kemudian berbagi pengalaman kita sendiri dalam mengatur perjodohan untuk Robot Perang.
Kriteria mana yang harus dipilih?
Jadi apa yang menentukan perjodohan yang baik? Tentu saja, ini tergantung pada platform dan fitur genre permainan, tetapi, sebagai suatu peraturan, pengembang dipandu oleh kriteria berikut:
- waktu tunggu yang singkat;
- ping rendah;
- perbedaan minimum dalam pengalaman, keterampilan, dan kemajuan para pemain: di sini pengalaman permainan dapat diperhitungkan baik secara umum maupun untuk kelas tertentu, jika permainan memiliki pembagian ke dalamnya;
- oposisi satu sama lain - kelompok-kelompok pemain pra-berkumpul yang ditujukan untuk pekerjaan yang terkoordinasi;
- awal pertandingan serentak untuk semua pemain.
Persyaratan lain dimungkinkan, misalnya:
- jemput pemain yang berbicara bahasa yang sama;
- Mempertimbangkan hasil pertandingan terakhir pemain, serta koefisien kepatuhan dengan peringkat: jika seorang pemain telah kehilangan beberapa pertandingan terakhir, dia mungkin hanya keluar dari kondisi sekarang, dan untuk beberapa waktu dia harus memberi lawan lebih mudah;
- membuat perjodohan dengan mempertimbangkan komposisi tim: jika satu tim kurang, misalnya, tank atau penyembuh, mencari lawan tim dengan komposisi yang sama;
- menyatukan troll, liveries dan grippers sehingga mereka tidak mengganggu pemain lain;
- diversifikasi komposisi pemain sehingga orang yang sama tidak terlalu sering bertemu di pertandingan yang berbeda;
- mempertemukan para pemain menggunakan obrolan suara.
Jauh dari selalu memungkinkan untuk secara bersamaan memenuhi semua persyaratan ini. Selain itu, sejumlah besar persyaratan selalu bertentangan dengan keinginan untuk mencapai waktu tunggu yang singkat. Bahkan jika gim ini sangat sukses, dan ratusan orang menunggu pertandingan setiap menit, mungkin masih belum cukup waktu untuk memenuhi beberapa persyaratan. Misalnya, jika Anda ingin menemukan tim Australia lain yang memuaskan untuk satu tim Australia sebagai saingan, waktu tunggu dapat meningkat secara dramatis.
Dalam hal ini, dari semua persyaratan yang diinginkan, perlu untuk memilih yang paling penting untuk proyek tertentu. Memendekkan daftar ini akan mengarah pada kepatuhan yang lebih baik terhadap persyaratan yang tersisa dan waktu tunggu yang lebih singkat.
Juga, ketika mengembangkan game multi pemain, perlu diingat bahwa penambahan berbagai mode permainan membagi basis pemain menjadi beberapa antrian dan dengan demikian mengarah pada peningkatan waktu tunggu, dan karenanya menjadi penurunan kualitas penjaruman. Oleh karena itu, pikirkan lagi sebelum menambahkan mode ini atau itu ke permainan, dan apakah layak memberi pemain kesempatan untuk memilih di antara mereka.
Mengurangi jumlah persyaratan untuk perjodohan bukan satu-satunya cara untuk mengurangi waktu tunggu. Misalnya, Anda dapat menerapkan multipemain pada sistem Drop-In-Drop-Out, sehingga pengguna dapat bergabung dengan game kapan saja dan keluar kapan saja. Jika ini tidak memungkinkan, dengan durasi pertandingan yang singkat, Anda dapat mengizinkan pemain untuk bermain dengan bot dalam proses menunggu. Tentu saja, ini tidak akan menyelesaikan masalah harapan, tetapi setidaknya itu akan memungkinkan kita untuk menghabiskan waktu.
Bagaimana cara menilai kepatuhan dengan kriteria yang dipilih?
Jadi, kami memiliki sejumlah pemain, yang harus kami alokasikan untuk pertandingan. Bagaimana cara melakukannya dengan lebih baik? Mana yang lebih disukai: tingkat keterampilan yang sama atau ping rendah? Bagaimana kita bisa menyeimbangkan persyaratan ini sehingga para pihak saling bertarung?
Sebagai perbandingan, kita membutuhkan metrik tertentu. Entah bagaimana, semua kriteria ini harus menyatu dalam satu parameter, dengan nilai tertinggi dimana sistem dapat melakukan pencarian. Selanjutnya kita akan menyebutnya skor pertandingan.
Untuk mendapatkan nilai penilaian ini, Anda harus terlebih dahulu menghitung masing-masing indikator. Pertimbangkan kombinasi faktor:
- Tim dengan tingkat keterampilan yang sama. Ini adalah kriteria paling jelas dalam perjodohan. Untuk setiap game, metode penghitungan parameter ini adalah individual. Salah satu yang paling sederhana: ambil tingkat rata-rata pengalaman per tim dan bandingkan dengan nilai yang sama untuk tim lain. Semakin besar perbedaan, semakin buruk pertandingan dibuat dan semakin rendah indikator yang diinginkan.
- Pemain dengan tingkat keterampilan yang sama. Sekalipun kedua tim seimbang sempurna, tetapi terdiri dari, misalnya, dari dua profesional dan satu pemula, indikator rata-rata untuk keterampilan tim akan sama, tetapi pertandingan yang baik masih tidak akan berhasil. Oleh karena itu, kami memperkenalkan parameter lain bukan untuk tim secara keseluruhan, tetapi untuk setiap pemain secara individu, atau variasi tingkat keterampilan dalam tim.
- Pesta. Idealnya, sebuah grup bermain bersama untuk waktu yang lama harus melawan yang lain dari grup yang sama, dan tidak melawan tiga pemain yang terpisah. Sangat mudah untuk dihitung: jika suatu tim telah bermain satu sama lain untuk waktu yang lama, kami memiliki indikator yang sama dengan 100%. Jika tim yang terdiri dari tiga bermain melawan dua teman dan satu pemain acak, kami mendapat 60%. Jika tidak ada pemain yang pernah bermain satu sama lain sebelumnya, nilainya akan 0%.
- Lawan Ping. Untuk setiap pengguna, kami memeriksa ping dengan ketiga pemain dari tim lawan. Semakin tinggi ping, semakin rendah skornya.
- Variabilitas lawan. Dalam mengejar memenuhi persyaratan prioritas yang lebih tinggi, sistem perjodohan sering dapat menempatkan tim yang sama satu sama lain dengan tingkat pertandingan tertinggi. Karena itu, agar pemain tidak bosan terus-menerus bermain dengan wajah-wajah yang akrab, ada baiknya melacak berapa kali mereka bertemu dalam pertandingan.
Contoh pertandingan di mana tim memiliki indikator 100% untuk sebuah pesta, indikator yang baik untuk keterampilan rata-rata dalam tim, tetapi korelasi yang lemah dalam keterampilan pemain individu: di tim biru mereka berbeda secara signifikanBagaimana cara memperhitungkan ambiguitas kriteria?
Jadi, untuk setiap kriteria, kami memiliki skor dari 0% (kebetulan sangat buruk) hingga 100% (terbaik), tetapi pada akhirnya kami hanya perlu mendapatkan satu nomor. Untuk ini, kami akan menggunakan nilai rata-rata tertimbang. Kemudian kita dapat menetapkan prioritas kepentingan untuk setiap kriteria.
Saat menghitung estimasi, perlu dipertimbangkan apakah kita ingin mendapatkan ketergantungan linear dari parameter. Sebagai contoh, apakah meningkatkan ping dari 210 ms ke 200 ms sama bermanfaatnya dengan dari 110 ms menjadi 100 ms? Kedua opsi ditingkatkan 10 ms, tetapi nilai ping itu sendiri dua kali lebih berbeda.
Menariknya, dalam hal beberapa kriteria lebih mudah untuk mendapatkan perbedaan kinerja yang signifikan daripada dalam kasus yang lain. Jadi, untuk mendapatkan 0% dalam hal tingkat keterampilan, diperlukan untuk mengumpulkan tiga pemain profesional dan tiga pemula dalam pertandingan, yang sangat langka. Namun, mendapatkan 0% dengan kriteria pesta jauh lebih mudah, karena untuk ini Anda perlu memiliki satu tim yang sudah dirakit melawan tiga pemain tunggal. Aspek ini juga patut dipertimbangkan.
Contoh bagaimana tim dapat disusun sesuai dengan tingkat keterampilan. Hijau dan kuning menunjukkan ping antar pemainSekarang, berdasarkan nilai-nilai indikator masing-masing persyaratan, kita dapat menghitung skor akhir.
Karena angka ini adalah kriteria dominan, algoritma menghasilkan preferensi tertentu. Jika pertukaran dua pemain meningkatkan parameter evaluasi satu pertandingan sebesar 5%, tetapi menguranginya dengan 10% di pertandingan lain, sistem tidak akan melakukan ini, karena secara umum hasilnya akan menjadi lebih buruk. Namun, dalam beberapa kasus ini dapat diabaikan. Jadi, mungkin tepat untuk meningkatkan satu indikator dari 50% (yang sangat buruk) menjadi 55% dengan mengurangi yang lain dari 90% menjadi 80% (yang masih cukup bagus). Ini dapat dicapai, misalnya, dengan menghitung akar kuadrat dari semua indikator penilaian ke tahap rata-rata. Dengan demikian, meningkatkan kecocokan yang buruk menjadi relatif lebih penting daripada yang baik.
Bagaimana ini terjadi pada robot perang?
Karena kita berbicara tentang permainan ponsel di mana semuanya harus terjadi dengan cepat, prioritas utama adalah waktu tunggu yang rendah sebelum masuk ke medan pertempuran. Untuk ini, sistem perjodohan harus sesederhana mungkin. Saat ini, mak comblang War Robots memperhitungkan hanya peringkat pemilihan pemain (MMR) dan mencoba untuk fokus pada pihak-pihak, tetapi karena mereka tidak tersebar luas dalam permainan, kriteria ini bersifat sekunder: jika Anda tidak dapat mencocokkan para pihak dengan kekuatan yang sama satu sama lain, sistem mencoba untuk menggabungkan satu sama lain beberapa pihak atau sama sekali tidak fokus pada kriteria ini. Dan jika satu pemain meninggalkan pertempuran, di tempatnya mereka akan mengambil yang lain yang memenuhi kriteria, tetapi hanya di awal pertandingan.
Peringkat pemilihan pemain tergantung pada jumlah kemenangan / kekalahan dan tempat dalam tim, dan tergantung pada hasil pertandingan, itu dapat meningkat atau menurun. Menurut peringkat ini, pemain dikelompokkan ke dalam liga dan divisi. Di dalam divisi, mak comblang sedang mencari pemain dengan skor penilaian terdekat yang mungkin, secara bertahap memperluas jangkauan pencarian dan mencakup divisi berikutnya juga. Perlu dicatat bahwa mak comblang mencoba untuk mencegah pemain ke liga yang lebih rendah yang dengan sengaja meremehkan peringkat mereka dengan melacak mereka sesuai dengan pola perilaku yang khas: biasanya jumlah kekalahan lebih besar dari jumlah rata-rata pertempuran liga per hari.
Diagram Alir Matching Robot Perang SederhanaSistem yang digunakan untuk bekerja salah. Kriteria utama adalah kekuatan robot dan senjata, dan dari hasil pertandingan hanya lima yang terakhir yang diperhitungkan. Sistem itu lebih rentan terhadap manipulasi. Pemain berpengalaman bisa berada dalam pertempuran yang sama dengan pendatang baru, jika mereka hanya mengubah senjata mereka menjadi lebih lemah, atau sebaliknya, pendatang baru di robot tingkat pertama dapat menginstal senjata ke-12 dan berakhir dalam pertempuran dengan para profesional, tanpa memiliki waktu untuk mengembangkan keterampilan permainan. Dalam hal ini, sistem peringkat, berdasarkan pengalaman nyata dari kemenangan dan kekalahan, ternyata jauh lebih jujur, meskipun tidak mungkin untuk langsung datang ke sana: reorganisasi lengkap dari proses perjodohan adalah langkah radikal, jadi pada awalnya upaya dilakukan untuk hanya mengatur kondisi tambahan pada sistem.
Upaya mengoptimalkan dan meningkatkan perjodohan di War Robots sedang berlangsung. Mungkin di masa depan akan mungkin untuk menggabungkan pendekatan lama dan baru untuk menemukan kecocokan, tetapi jangan lupa bahwa peningkatan kualitas perjodohan mengarah pada peningkatan waktu tunggu. Oleh karena itu, pengembangan solusi semacam itu akan disarankan hanya jika tidak secara signifikan mempengaruhi kinerja sistem.