Cara paling sederhana dan efektif untuk menentukan peringkat dan mengukur keterampilan pemain dalam lingkungan multi-pemain?


12

Saya tahu algoritma Truskill, cukup rumit tapi efektif.

Pertanyaan saya apakah ada algoritme / metode lain untuk menentukan keterampilan pemain untuk pengukuran akurat untuk permainan kompetitif multi-pemain?


Saya kira agak subyektif / luas, genre permainan apa yang Anda pikirkan secara spesifik? (Saya tidak melihat fps dan game balap berbagi metode peringkat sederhana). Mungkin ini harus komunitas wiki-ed dan dibuat menjadi daftar algoritma / metode / middleware / apa pun?
Riley Adams

Sebagian besar sistem peringkat menggunakan rasio menang, kalah, dan cocok. Kemudian berikan ruang untuk kondisi spesifik gim sehingga sebagian besar metode harus bekerja dengan sedikit penyesuaian.
Wight

1
Apakah ada masalah paten dengan TruSkill? Microsoft membangunnya dan mereka tidak dikenal ramah komunitas.
deft_code

2
Jika Anda menghindari algoritme yang mungkin dipatenkan, Anda tidak akan bisa melakukan apa pun yang praktis. Jika Anda tahu ada sesuatu yang dipatenkan dan menggunakannya, Anda dapat berakhir dengan lebih banyak kerusakan jika Anda dituntut. Jadi mari kita asumsikan tidak, itu tidak dipatenkan - ini adalah merek dagang, jadi jangan menyebutnya "TrueSkill" kecuali Anda menggunakan Xbox Live.

2
Sayangnya TrueSkill dipatenkan sehingga menggunakannya untuk tujuan apa pun bisa berbahaya bagi Anda.
Petr Pudlák

Jawaban:


10

Saya pikir meminta "yang paling sederhana paling efektif" adalah persyaratan yang tidak realistis, tetapi tentu saja ada beberapa pendekatan yang baik. Daripada masuk ke detail, saya akan menautkan ke sebuah artikel:

http://www.lifewithalacrity.com/2006/01/ranking_systems.html

Ini meliputi:

  • ELO
  • varian ELO oleh Days of Wonder
  • TrueSkill (dan glicko, yang tampaknya didasarkan pada atau paling tidak mirip dengan)
  • Pemeringkatan eGenesis (untuk Tales in the Desert)

Secara keseluruhan Anda akan melihat bahwa mereka semua cukup banyak variasi pada tema yang sama - Anda memilih nilai awal atau rata-rata untuk pemain, dan kemudian nilai-nilai tersebut digunakan untuk memprediksi hasil pertandingan. Perbedaan antara hasil aktual dan hasil yang diprediksi digunakan untuk memodifikasi skor untuk setiap pemain, dan proses ini berulang dengan skor yang disesuaikan. Karena setiap modifikasi pada skor membuat hasil prediksi lebih akurat, skor menyatu pada nilai 'benar' mereka. (Ini benar-benar mengasumsikan bahwa itu adalah permainan keterampilan daripada kebetulan, bahwa keterampilan yang dimaksud mampu peringkat linear, dll.)


"paling sederhana paling efektif" hanyalah cheat untuk mencegah dipaksa membuat ini sebagai wiki komunitas.
Hendrik Brummermann

7

Tergantung pada gim. Ada beberapa masalah yang bisa Anda hadapi:

  • Untuk game yang memiliki komponen keberuntungan dan komponen keterampilan (Bridge, Poker, Magic: the Gathering, dll.), Sebagian besar algoritma tidak memperhitungkan fakta bahwa pemain yang lebih lemah terkadang bisa beruntung. Jika game Anda termasuk dalam kategori ini, Anda harus melakukan beberapa pekerjaan. Secara umum ini berarti mencari tahu berapa persen adalah keberuntungan dan berapa persen adalah keterampilan (trik yang sulit, tetapi jika Anda sudah menggunakan algoritma berbasis keterampilan seperti Elo, Anda bisa menjalankan beberapa metrik pada hasil untuk mengetahui seberapa sering algoritma meramalkan kesal versus seberapa sering itu sebenarnya terjadi). Maka Anda harus mengubah algoritme, dan tepatnya untuk mengubahnya apa, mungkin di luar cakupan pertanyaan ini.

  • Untuk permainan di mana pertandingan dapat dimanipulasi (saya dapat memilih untuk memainkan permainan peringkat melawan teman saya), Anda harus menerapkan perlindungan ekstra untuk mencegah pemain melemparkan pertandingan dengan sengaja.

  • Untuk permainan di mana pemain bisa "keluar dari latihan" jika mereka tidak bermain secara teratur, sistem dapat melibatkan semacam degradasi berbasis waktu. Sistem Glicko adalah mod dari Elo yang menambahkan variabel "ketidakpastian" ke peringkat masing-masing pemain, berdasarkan pada berapa banyak permainan yang telah mereka mainkan dan seberapa baru mereka memainkannya; semakin yakin peringkat pemain, semakin sedikit perubahan dari satu game ke game lainnya.

  • Game multi pemain (apakah gratis untuk semua, berbasis tim, atau struktur pemain lain) tentu saja membutuhkan perhatian khusus. Beberapa permainan berbasis tim memudahkan untuk mengetahui kontribusi masing-masing individu, dibandingkan dengan yang lain.

  • Juga tanyakan apa tujuan sistem peringkat / peringkat Anda. Dalam permainan dan olahraga profesional, tujuannya adalah statistik: peringkat digunakan sebagai prediktor hasil pertandingan apa pun. Tujuan utama di sini adalah ketepatan. Namun, ini jarang yang diinginkan pemain; alih-alih mereka menginginkan kemajuan, perasaan mereka menjadi lebih baik dan naik pangkat (apakah mereka benar-benar menjadi lebih baik atau tidak). Singkatnya, ada pertukaran antara akurasi dan kesenangan yang perlu Anda pertimbangkan.


Segala sesuatu tentang desain selalu seimbang =)
Wight

3

Apa yang menurut Anda rumit tentang TrueSkill ? Saya pikir itu adalah algoritma langsung dengan jumlah tombol yang tepat untuk mengubah untuk mode permainan yang berbeda, dan itu berkurang menjadi Elo ketika permainan head-to-head dengan kepastian tinggi.

Jika Anda mencari cara paling sederhana untuk menentukan peringkat dan mengukur pemain secara efektif dalam lingkungan multi-pemain - rekomendasi saya adalah TrueSkill.


Saya hanya mencari alternatif yang bisa tweak lebih mudah. Seperti apa yang digunakan Starcraft 2. Tapi TrueSkill adalah ukuran yang baik, hanya saja sulit untuk memasukkan ukuran permainan ke varians.
Wight

2

Bagaimana dengan sistem berpasangan seperti elo ? Telah digunakan selama berabad-abad dalam olahraga "normal" dengan hasil yang sangat baik.

Untuk pertandingan gratis untuk semua pertandingan, Anda dapat mengartikannya sebagai sekelompok pertandingan berpasangan dan menetapkan poin berdasarkan kedudukan relatif.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.