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

Sıralama Sorunları

Wikipedia - Normal Dağılım

Artık oyunların oyuncu sayıları, en dandik multiplayer oyunda bile onbinlerden başlıyor ve milyonlara kadar çıkıyor. Temeli Elo olan sistemlerin burada saçmaladığını düşünüyorum. Çünkü Elo sisteminin algoritmaları, “normal dağılım”ı  esas alarak oluşturuluyor. Bundan devşirme algoritmalarda bunu değiştirdiklerini zannetmiyorum. Yani orta liglerde bir yığılma olması, bronz ve master liglerde az sayı olması gerekir buna göre. Peki öyle mi? Tabii ki değil.

teamLol

Sistem yanımıza/karşımıza adam atarken, bizimle aynı anda oyun arayanlar kimler diye bakıyor. Bunların puanlarını bizimkiyle karşılaştırıyor ve eğer çok yakın kişiler bulabilirse onlarla beraber oyuna sokuyor. Bu durumda, aynı anda oyun arayan binlerce kişiden birine denk gelir, oynarız diye düşünülebilir. Bunun neden öyle olmadığının mantığını anlatayım:

Alt liglerde daha fazla kişi olduğunu biliyoruz ve bunun dağılımı da homojen değil. Diyelim ki biz gold seviyesinde bir oyuncuyuz. Tüm serverda 300.000 tane bronz varken, 120.000 silver var diyelim. Gold oyuncu sayısı 50.000 olsun, platin oyuncularsa 7.000 kişi diyelim. Rakamların bunun gibi oransız azaldığından çok net eminim, afaki olduklarına bakmayın yani.

Yukarıda söylediğim rakamlardan, aynı anda oyun arayan insanlar %5’i oluşturuyor diyelim. Diğerleri ya dereceli oynamıyor, ya offline ya da şu an Facebook’ta takılıyor gibi düşünelim. Bu durumda bizimle aynı anda 15.000 bronz, 6000 silver, sadece 2500 gold ve sadece 350 tane platin oyuncu oyun arıyor. Yanımıza gelecek kişilerin bizim dengimiz ve üstü olma ihtimali ne kadar farklı! Düşük liglerden adam seçmesine kısıt bile konsa, ya bizi dakikalarca bekletip 2500 kişi arasından “lag yapabilir, kopabilir” demeden birilerini verecek (o da önemli çünkü) ya da bizimle bağlantısı kuvvetli olacak daha düşük liglerden biriyle karşılaştıracak. Bu da düşük liglerden adam seçmesini AŞAĞI YUKARI 7,37 KAT daha fazla ihtimalle yapıyor. (tabii ki rakamlar uydurma ama mantığı anlatabildim sanırım)

smite

Diyelim bunlara karşı önlemler var. (ki bu konuda geliştirmeler yapıyorlar sürekli, haklarını yemeyelim) Ama Elo sisteminin kökündeki problemlere değinmeden sürekli yanımıza saçma sapan herifler gelmesi olasılığını asla düşüremeyiz.

Çok düz mantık bir yaklaşımla girmiş olabilirim işe ama, alt liglerdeki yığılmanın dereceli sistemi çok bozduğuna eminim. Bir de, normalde sayısı yüzlerle ifade edilen ve 1v1 oynanan satranç için geliştirilmiş bir sistemi alıp milyonlarca kişinin oynadığı takım oyunlarına uyarlamaya kalktığımızda çok büyük sıkıntılar çıkıyor.

Sistem hem “bizim” galibiyet/mağlubiyet oranımıza bakıyor, hem yanımıza iyi adamlar getireceğinin garantisi yok, hem de takım olarak yanımızdakinin oyunu baltalamasına (doğal olarak) engel olamıyor. Bu durumda çoğu kişi, aslında bana göre olması gereken derecenin altında yer alıyor.

dota2

Çoğu kişinin olması gereken derecenin altında yer almasındaysa şöyle bir sıkıntı var: nasıl derece tabanları vardı yukarıda da anlattığım gibi, aynı şekilde bu sefer aşılması zor ve dağılımı bozan ciddi derece tavanları oluşuyor. Oyunun kendisinden kaynaklanmayan bu derece tavanları, yetenekli oyuncuları oyundan soğuttuğu gibi, oyunun aslında daha sıkıcı ve sinir bozucu bir kısımında oynamamıza neden oluyor. Çünkü kimse annesi yemeğe çağırdı diye bırakıp giden adamla oynayıp durmak istemez. Ama oluyor.

Çözümler

MMR, Elo ya da ne isim verirsek verelim, bunların dışında başka çözümler de üretilmeli. LoL’de lig puanları sistemiyle en azından üst lige çıkma sırasında buna benzer ikinci bir aşama getirmişler. Ama bildiğimiz gibi “afklar/bronzlar serimi bozdular!” bağrışları aslında benim söylediğim sorundan dolayı bu çözümü işlevsiz kılıyor. O yüzden bana göre puanlamaya başka isimler vermek, kozmetik puanlama sistemleri getirmek gibi şeyler sadece olan sorunu daha da gizlemeye yarar.

hots2

Benim düşündüğüm çözüm daha ziyade oyunun ortasında bırakıp giden (ancak çıkış yapmayan) ya da düzenli olarak takımı tarafından reportlanan oyuncuların mümkün olduğunca dereceliden uzak tutulacağı, eğer bu olmuyorsa takım arkadaşlarına en az puanı kaybettireceği bir sistem kurulması. Takımda sabıkalı bir vatandaş varsa 10 MMR yerine 2 MMR kaybetmek gibi şeyler olmalı. Zaten takım arkadaşları rastgele seçildiği için bunu suistimal etme olasılığı çok düşük. Bazı dangalakların elalemin MMR’ına verdiği zararı böylece minimuma indirebiliriz.

İkinci düşündüğüm çözümü oluşturacak kadar yüksek matematik bilgim yok. Ama temel algoritması Elo’ya dayanmayan bir sistem üretilebilir. Bu konuda galiba Xbox’ta Microsoft’un bir çalışması var. Ama içeriği gizli olduğundan Eloer’yu baz alıp almadığını bilmiyorum. Bu konuda anlayan arkadaşlarla tartışmaya hazırım.

Dereceli çilesini nasıl çözeriz? Bu konuya bir süredir kafa yoruyorum. Sadece iyi bir oyuncu olmanın yetmemesi beni rahatsız ediyor. Görüşleriniz, önerileriniz neler? Yorumlara ve bizzat bana fikirlerinizi iletebilirsiniz. İleride tartışmalar sonuç verirse bu konuda bir yazıyla daha karşınıza çıkacağım.

Yorumlar