Kahramangiller

Dereceli Takım Oyunlarında Elo (Hell) Sorunu

Bu günkü yazımda, Online Multiplayer oyunlarda Elo Sisteminin kullanımını anlatacak ve bu kullanımın nasıl işlediğine dair bazı tespitler yaparak bazı eleştiriler getireceğim.

Öncelikle belirtmeliyim ki; bu yazıda genel mantığı tartışacağım. İşin matematik kısmına girecek kadar akademik yetkinliğim olduğunu düşünmüyorum, ama bu konuyu araştıranlarla fikir alış-verişine açık olduğumu söylemeliyim. İlgilenenler bizzat bana ulaşabilirler ya da yorum kısmından söylemek istediklerini yazabilirler.

Elo Nedir?

Wikipedia - Elo Rating System

Elo Rating System adını mucidinden, yani Macaristan uyruklu Amerikalı bilimadamı Arpad Elo’dan alır. Satranç turnuvalarında oyuncuları adil bir şekilde sıralamaya yarayacak bir sistem üretmeyi planlayan Elo, icat ettiği ilk haliyle yıllarca kullanılan ve sonrasında da bir çok alanda modifiyeli şekliyle kullanılan bir sistem kurdu. Sistem, “pairwise comparisons” testlerini baz aldı.

chess

Elo sistemine göre mantık basit; eşit puandaki oyuncular her karşı karşıya geldiğinde, kazanma-kaybetme oranları da birbirine eşit olmalı. Yani 300’er puanlı iki oyuncu tam 10 maç yapsalar, bu maçların tam olarak yarısını biri, yarısını diğer oyuncu kazanmalı. (Bu da %50 galibiyet ihtimali demek oluyor) Hedef bu. Kısacası, aslında başarı oranınızı takip ettiği kadar, tahmin de etmeye çalışan akıllı bir sistem.

İşin matematiğiyle sizi boğmak istemiyorum. Ben bile güya matematik, istatistik vs. dersleri gördüm ama anlayana kadar canım çıktı. O yüzden buraya, hızlıca bir özet geçip yoluma devam edeyim. (Eğer istenirse detaylı tartışmaya da açabiliriz) Bir yandan bazı oyunların Elo mantığını ne kadar değiştirdiklerini açıklamama, bu işin formülünü vermeme gibi bir durumları da var ki, oyuncuların sistemi bozacak hareketleri hesaplama ihtimali olmasın. Biraz da bu yüzden sadece genel mantık üzerinden konuşmayı daha doğru bulduğumu söylemeliyim.

Noob!

Noob!

Şimdi geçelim sistemi anlatmaya.

Herkesin, henüz yetenekleri belirsizken başladığı bir puan var. (diyelim ki 200)

Karşılaştığı rakibin zorluğuna göre, belli formüllere dayanarak bu rakibi yenerse rakibinden puan çalıyor. Yenilirse, rakibine puan kaptırıyor. Bu formüller 1960’da kullanılmak için tasarlandığı için günümüzün kalabalık ve bilgisayar destekli ortamında fazla basit ya da eksik kalabiliyor. Bu sorunun bilgisayar oyunlarında karşımıza nasıl çıktığını göreceğiz.

Elo’nun orijinal sistemi, yıllar ilerledikçe sadece satranç sıralamaları için bile çeşitli uyarlamalara gitmek zorunda kaldı. Bilgisayara uyarlanırken de benzer durumların yaşanacağını göreceğiz.

Elo Neden Önemli?

Elo’nun önemli olmasının nedeni, öncelikle çok kompleks bir yapıya sahip olması ve adapte edilebilirliği. Bazı şirket ve oluşumların Elo kullanmayı bıraksalar bile, bu mantığı kendilerince “onararak” yine Elo sistemine dayanan yöntemler geliştirmeleri de bu yüzdendir. Kafamın bastığı kadarıyla, temelde düz mantık gitmeyen (yenince 2 puan ekleyip, yenilince 2 puan çıkarmak gibi şeyler mesela) çoğu sistem aslında yaklaşım olarak Elo’nun getirdiklerine benzer bakış açısına sahip.

lol1

Yeni yeni gelişmeye başlayan competitive oyunlarda daha kompleks sistemler üretilene kadar, kullanım kolaylığı sayesinde Elo en pratik alternatiflerden biri haline geliyor. Ayrıca, Elo’yu onaran sistemler geldiğinde bile, arka planda çalışmaya devam eden “gizli MMR” gibi sistemler yine Elo mantığı ile yürüyor.  Bu yüzden “ben altın ligdeyim, diamond ligdeyim” gibi makyaj mevzularının ötesine geçtiğimizde, durumun altında yatan sıkıntıları çözmek için Elo sistemini incelemeliyiz.

Eğer matchmaking sırasında sistem “iki takımın %50 kazanma şansı olsun” diyorsa, temelinde Elo vardır. Modifiye edilmiştir, edilmemiştir, orası o kadar önemli değil.

Yorumlar

  • Ataberk Bozkurt

    Ligleri MMR puanına göre değil de player skill’ine göre bölmek lazım.MOBA’lar için Ranked oyunlarda Hero Rank tarzı bir sistem getirebilir. Ama bu Rank xp ile değil, Hero’ların özelliklerine göre belirlenen achievement/objective tamamla usulüyle olmalı ki çok oynayan ama kötü oynayan xpleri toplayıp rank açmasın. Örneğin Thrall’u iyi oynuyorumdur MMR’ım onunla 600’dür, Illidan oynuyorumdur MMR’ım 300’dür gibi. Thrall’un objective’leri işte oyunun ilk 8 dakikası 50 tane skill shot tutturken, Illidan için ilk 8 dakikada 10000 küsür hasar ver olur. LoL, DotA önceden seçtiriyor ama Heroes maça girmeden kahramanını seçtiriyor zaten. Bu oyunlarda da atıyorum “şu kadar last hit yap” diye bir görev olur. Counter Strike gibi oyunlarda da atıyorum ilk rankin görevi “win a game” olur ikinci de “win a game with ace” ve “score 25 headshots in a game” olur, her rank zorlaşır. Böylelikle iyi bir oyuncuda olması gereken özelliklerin olup olmadığı belli olur. AFK olunursa doğrudan bu görevlerin bazıları kilitlenir/iptal olur veya doğrudan rank düşer. Bu görevlerin en önemli noktası, takım arkadaşlarına dayalı olmaması gerektiği. Bir maçta atıyorum 2 görev birden tamamladın, loss alırsan sadece birini tamamlamış sayılırsın win alırsan hepsini. Ama en azından bu maçta sergilediğin efor boşa gitmez.

    Oyuncular iyi olduklarını kanıtlarken, kötü dediğimiz oyuncularda milleti suçlamak yerine kendilerini geliştirmeye odaklanırlar.

    • Baran Can Yıldırım

      counter strike gibi bir oyunda bu yapılabilir gerçekten ama, acaba dota veya lol gibi takım mantığındaki oyunlarda nasıl çalışacak?
      çünkü dota 2 şu an winter pass olarak sattığı sistemde gerçekten bunu deniyor ama bu sefer oyuncular bireysel görevlerini tamamlamaya çalışıp takım oyunu mantığını bırakıyorlar. örneğin dikmesi gereken ward sayısını tamamlamak için takımını aksiyonun ortasında bırakabiliyor ki son zamanlarda çok şikayet edilen bir durum oldu. özellikle takım oyununun kritik olduğu oyunlarda bireysel beceri geliştirmeye teşvik etmek ters etki yaratmaz mı?

      • Ibrahim Muhammet Çelik

        katılıyorum. Takıma katkıyı esas alan kriterler getirmek lazım eğer öyle bir objective sistemi getirilecekse. Starcraft 2 replay dosyaları gerçekten ufacık. Birkaç MB boyutunda ama 30 dakkalık oyunda 400 apm ile tıklanan yerleri bile tutuyor aklında. MUTLAKA iyi çalışılırsa detaylı istatistikler çıkartmak mümkün olabilir.

        • Ataberk Bozkurt

          Takım bazlı oyunlarda programın ne zaman nasıl yardım ettin bunu fark edebilmesi gerekiyor benim dediğim yöntemin çalışması için. Yani bir insan replay izleyip bu burda buna yardım etmiş, takım oyunu sergilemiş diye birisi değerlendiremez. Ama hiç değilse Baran’ın dediği gibi Counter Strike’da böyle bi sistem olanaklı

  • Aslan Dilek

    Geçen dediğim şeyi kontrol ettim, Hearthstone’un Legend-Rank MMR sistemi hakkaten rezalet. Sezon sonu mesela oynamadığın her dakikada bir rank düşüyorsun.

  • Batuhan Erkuş

    Hocam El sistemi mantıkı doğru bir sistem fakat League of Legends’de tutmuyo. Çünkü milyonlarca oyuncu var ve aynı rank oyuncular arasında bile skill olarak uçurum fark var. O yüzden bu sistemin değişmesini isterim fakat şu an bulunan en iyi sistem de bu, yapacak bişey yok.

    • Ibrahim Muhammet Çelik

      var yapacak bişey hacı raadol 🙂 o yüzden tartışmaya açtım zaten

  • Uygar Yilmaz

    ELO’daki bu sikintilarin asilmasi amaciyla Mark Glickman tarafindan Glicko rating sistemi gelistirildi, ve ilerleyen yillarda rating belirsizligini daha duzgun handle edebilmek icin Glicko 2 olarak revize edildi.
    Su anda Avusturalya Satranc Federasyonu Glicko 2’nin cok az modifiye edilmis bir halini kullaniyor.
    Online oyunlar icin de oldukca basarili sonuclar verebilen bir rating sistemi oldugunu soyleyebilirim. Ornegin Valve, Counter Strike: Global Offensive oyuncularinin rating’lerini Glicko 2’yi temel alan bir sistemle hesapliyor.

    Ki bu sistemin temel ozelligi, oyuncularin karsilasmalarinda olusacak rating kazanim ve kaybedimlerini hesaplarken iki kritik seyi de hesaba katmasi:
    1. Takimlardaki bazi oyuncular takim ortalamasinin cok altinda yada cok ustunde ise, o oyuncular icin mac sonucunda kazanilan yada kaybedilen puan az oluyor. Bu CS:GO gibi takim oyunlarinda, ozellikle smurf’lerin yada cheater’larin bol bulundugu oyunlarda kullanilan matchmaking ve rating hesaplama sistemleri icin cok onemli bir kriter.
    2. Bir oyuncu rating’inin bir bileseni de, o rating’in kesinlik duzeyi. Bu biraz Heisenberg’yen bir kavram. Ornegin iki oyuncu canlandiralim kafamizda… Alice gecen yil boyunca her gun 5 mac yapmis, Bob ise son aydir hic oynamamis. Her ikisinin rating’inin de 500 oldugunu varsayalim. Glicko 2 temelli bu sistem, yalnizca Alice’in rating’inin 500 oldugunu bilmiyor, ayni zamanda onun rating’inin %99 olasilikla 500 oldugunu biliyor. Ayni sekilde, Bob’in rating’inin de %12 olasilikla 500 oldugunu biliyor. Budurumda Bob’in yaptigi maclarda kazandigi/kaybettigi yada kazandirdigi/kaybettirdigi puan dusuk oluyor… Ta ki tekrar bir miktar oyun oynayarak rating’inin kesinligini artirana degin.

    Bence hem matematiksel olarak, hem de oyun pratiginde gayet basarili bir sistem.
    Biraz daha fazla bilgi icin:
    http://www.glicko.net/glicko/glicko2.pdf

    • Ibrahim Muhammet Çelik

      güzel bilgi. Bakayım ben bunlara. Teşekkürler yorum için.

    • Ibrahim Muhammet Çelik

      bunlara filan çalışıp cevap yazısı yazacağım.