Çok oyunculu bir ortamda oyuncu becerisini sıralamanın ve ölçmenin en basit yolu mu?


12

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ı?


Biraz öznel / geniş bence, özellikle hangi oyun türünü düşünüyorsunuz? (Basit bir sıralama yöntemi paylaşan bir fps ve yarış oyunu görmüyorum). Belki de bu topluluk wiki-ed olmalı ve algoritmalar / yöntemler / ara katman yazılımı / her neyse bir liste haline getirilmelidir?
Riley Adams

Çoğu sıralama sistemi kazanma, kaybetme ve eşleşme oranlarını kullanır. Daha sonra oyuna özgü koşullara yer açın, böylece çoğu yöntem küçük ayarlarla çalışmalıdır.
Wight

1
TruSkill ile ilgili herhangi bir patent sorunu var mı? Microsoft bunu inşa etti ve topluluk dostu oldukları bilinmemektedir.
deft_code

2
Patentli olabilecek algoritmalardan kaçınırsanız , pratik bir şey yapamayacaksınız. Bir şeyin patentli olduğunu ve yine de kullanıldığını biliyorsanız, dava edilirseniz daha fazla zarar verebilirsiniz. Öyleyse hayır diyelim, patentli değil - ticari markalıdır, bu yüzden Xbox Live'da değilseniz "TrueSkill" olarak adlandırmayın.

2
Ne yazık ki TrueSkill patentlidir, bu nedenle sizin için tehlikeli olabilecek herhangi bir amaç için kullanmak.
Petr Pudlák

Yanıtlar:


10

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:

  • ELO
  • Wonder Days tarafından ELO varyantı
  • TrueSkill (ve tabanlı veya en azından buna benzeyen glicko)
  • eGenesis Sıralaması (Çölde Masallar için)

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.)


"en basit en etkili" sadece bunu bir topluluk wiki'si yapmak zorunda kalmanın önüne geçmek için bir hile.
Hendrik Brummermann

7

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.


Tasarımla ilgili her şey her zaman bir denge =)
Wight

3

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.


Sadece daha kolay ayarlanabilecek bir alternatif arıyordum. Starcraft 2'nin kullandığı gibi. Ancak TrueSkill, varyansa oyun önlemlerini dahil etmek sadece daha zor bir önlemdir.
Wight

2

Elo gibi ikili sistemlere ne dersiniz ? Mükemmel sonuçlar ile "normal" sporlarda çağlar boyunca kullanılmıştır.

Tüm maçlar için ücretsiz olarak, bunları bir çift ikili maç olarak yorumlayabilir ve ilgili sıralamaya göre puan atayabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.