Truskill algoritmasını biliyorum, oldukça karmaşık ama etkili.
Benim sorum, bir oyuncunun çok oyunculu rekabetçi oyun için doğru ölçüm becerisini belirlemek için başka algoritmalar / yöntemler var mı?
Truskill algoritmasını biliyorum, oldukça karmaşık ama etkili.
Benim sorum, bir oyuncunun çok oyunculu rekabetçi oyun için doğru ölçüm becerisini belirlemek için başka algoritmalar / yöntemler var mı?
Yanıtlar:
Bence "en basit ve en etkili" istemi gerçekçi olmayan bir gerekliliktir, ama kesinlikle birkaç iyi yaklaşım vardır. Ayrıntıya girmek yerine, bir makaleye bağlantı vereceğim:
http://www.lifewithalacrity.com/2006/01/ranking_systems.html
Bu aşağıdakileri kapsar:
Genel olarak, hepsinin aynı tema üzerinde hemen hemen varyasyonlar olduğunu göreceksiniz - bir oyuncu için başlangıç veya ortalama bir değer seçersiniz ve daha sonra değerler oyun sonucunu tahmin etmek için kullanılır. Gerçek sonuç ve tahmin edilen sonuç arasındaki fark, her oyuncu için skorları değiştirmek için kullanılır ve işlem ayarlanan skorlarla tekrarlanır. Puanlarda yapılan her değişiklik tahmin edilen sonucu daha doğru hale getirdiğinden, puanlar 'gerçek' değerleri üzerinde birleşir. (Bu aslında şanstan ziyade bir beceri oyunu olduğunu, söz konusu becerinin doğrusal olarak sıralanabileceğini vb. Varsayar.)
Oyuna bağlıdır. Karşılaşabileceğiniz birkaç sorun var:
Şans bileşeni ve beceri bileşeni (Bridge, Poker, Magic: The Gathering, vb.) Olan oyunlarda, çoğu algoritma, daha zayıf bir oyuncunun bazen şanslı olabileceğini hesaba katmaz. Oyununuz bu kategoriye girerse, biraz iş yapmanız gerekir. Genel olarak bu, yüzde kaçının şans ve yüzde kaçının beceri olduğunu bulmak anlamına gelir (zor bir hile, ancak Elo gibi beceri tabanlı bir algoritma kullanıyorsanız, algoritmanın ne sıklıkta olduğunu anlamak için sonuçlarda bazı metrikler çalıştırabilirsiniz. üzgün ve gerçekte ne sıklıkta olacağını tahmin eder). O zaman algoritmayı değiştirmeniz gerekir ve tam olarak neyin değiştirileceği muhtemelen bu sorunun kapsamı dışındadır.
Maçların manipüle edilebileceği oyunlar için (arkadaşımla rütbeli bir oyun oynamayı seçebilirim), oyuncuların kasıtlı olarak maç atmasını önlemek için ekstra güvenlik önlemleri almanız gerekir.
Bir oyuncunun düzenli oynamaması durumunda "pratik dışı" oynayabileceği oyunlar için sistem bir tür zamana bağlı bozulma içerebilir. Glicko sistemi, kaç oyuncunun oynadıklarına ve ne kadar süre oynadıklarına bağlı olarak her oyuncunun sıralamasına bir "belirsizlik" değişkeni ekleyen Elo'nun bir modudur; bir oyuncunun sıralaması ne kadar kesin olursa, oyundan oyuna o kadar az değişir.
Çok oyunculu oyunlar (herkes için ücretsiz, takım tabanlı veya başka bir oyuncu yapısı olsun) elbette özel bir bakıma ihtiyaç duyar. Bazı takım tabanlı oyunlar, diğerlerine kıyasla her bireyin katkısını bulmayı kolaylaştırır.
Ayrıca derecelendirme / sıralama sisteminizin amacının ne olduğunu sorun. Profesyonel oyunlarda ve sporda amaç istatistikseldir: derecelendirme herhangi bir maçın sonucunun bir yordayıcısı olarak kullanılır. Buradaki birincil hedef doğruluktur. Ancak, bu nadiren oyuncuların istediği şeydir; bunun yerine ilerlemeyi, daha iyi olduklarını ve saflarına tırmantıklarını (aslında iyileşip iyileşmediklerini) istiyorlar. Kısacası, düşünmeniz gereken doğruluk ve eğlence arasında bir denge vardır.
TrueSkill hakkında neyi karmaşık buldunuz ? Farklı oyun modları için ince ayar yapmak için doğru miktarda topuzu olan basit bir algoritma olduğunu düşündüm ve oyun yüksek kesinlik ile kafa kafaya olduğunda Elo'ya düşüyor.
Bir oyuncuyu çok oyunculu bir ortamda etkili bir şekilde sıralamanın ve ölçmenin en basit yolunu arıyorsanız - tavsiyem TrueSkill.