ELO ve SRM Algoritmalarıyla Adil Eşleştirme Altyapısı Kurulumu

Geliştiriciler için adım adım eşleştirme sistemi kurulumu, veri akışı, dengeleme formülleri ve erişilebilirlik standartları. Dark pattern ve gacha mekaniklerine karşı teknik çözümler.
Algoritma Çekirdeği ve Veri Akışı
Eşleştirme sistemi kurulumuna geçmeden önce veri yapısını netleştirmek gerekir. Her oyuncu profili minimum beş alan içermelidir. Rating değeri, son otuz günlük aktivite, oynanan mod, ping durumu ve cihaz yetenek seviyesi. Bu alanları tek bir veri modeli içinde tutmak, eşleştirme sunucusunun karar verme süresini kısaltır. Steam 2025 güncellemesinden sonra API limitleri sıkılaştığı için yerel önbellek ve batch istekler zorunlu hale geldi. Veri akışını WebSocket yerine gRPC stream ile kurmak, eşleştirme kuyruğundaki oyuncu sayısını gerçek zamanlı izlemeyi sağlar. Kod tarafında oyuncu verisini JSON veya Protocol Buffers formatında serializasyon yapmak, bellek kullanımını %40 düşürür. Eşleştirme mantığını oyun döngüsünden ayırmak, sunucu ölçeklendirmesini kolaylaştırır. Her yeni oyuncu kayıt olduğunda rating değeri 1200 olarak başlatılır. Bu başlangıç noktası, yeni gelenlerin ilk maçlarda aşırı zorlanmasını engeller. Veri akışında eksik alan bırakmak, eşleştirme hatalarına yol açar. Tüm alanları zorunlu kılın, eksik veri olan istekleri doğrudan reddedin.

ELO ve SRM Karşılaştırması ile İmplementasyon
ELO sistemi basit ve hızlıdır. Her maç sonunda puan değişimi formülü K faktörüne bağlıdır. Yeni oyuncular için K değeri 32, deneyimli oyuncular için 16 olarak ayarlanır. Formül şu şekilde çalışır. Beklenen skor 1 / (1 + 10^((rakip_rating - oyuncu_rating) / 400)). Gerçek skor beklenen skor farkı ile çarpılır ve K ile katlanır. SRM sistemi ise daha karmaşık ve gerçekçi sonuçlar verir. SRM her oyuncunun yetenek dağılımını Gauss eğrisi olarak tutar. Maç sonucunda dağılımın ortası ve varyansı güncellenir. SRM implementasyonu için JavaScript veya C++ kütüphanesi yerine yerel matris işlemleri yazmak, bağımlılık riskini ortadan kaldırır. Kod örneği şu şekilde ilerler. Dağılım güncelleme fonksiyonu önce beklenen sonucu hesaplar, sonra gerçek sonucu karşılaştırır, son olarak varyansı daraltır. ELO ile SRM arasındaki fark, yeni oyuncu adaptasyon süresidir. ELO ilk on maçta aşırı dalgalanma gösterir. SRM ise yavaş ama istikrarlı bir eğri çizer. İndie projelerde SRM tercih etmek, oyuncu sadakati için daha sağlıklıdır. Kod tarafında her iki sistemi de aynı arayüz üzerinden çalıştırmak, gelecekte geçişi kolaylaştırır. Sadece tek bir motorla kısıtlı kalmayın. Godot 4.3 ve Unity 6 farklı eşleştirme kütüphaneleri sunar. Kendi eşleştirme modülünüzü yazmak, platform bağımsızlığı sağlar.
Eşleştirme Döngüsü ve Gerçek Zamanlı Veri
Eşleştirme döngüsü dört adımdan oluşur. Kuyruğa alma, filtreleme, eşleştirme ve sonuç bildirimi. Kuyruğa alma aşamasında oyuncu süre ve konum verisi gönderir. Filtreleme aşamasında ping, cihaz yeteneği ve rating eşikleri kontrol edilir. Eşleştirme aşamasında algoritmalar kuyruk içindeki adayları karşılaştırır. Sonuç bildirimi aşamasında maç başlangıç zamanı ve sunucu adresi döndürülür. Bu döngüyü her 500 milisaniyede bir tetiklemek, kuyruk doluluk oranını %15 düşürür. Eşleştirme süresi 12 saniyeyi geçerse oyuncu bırakma oranı artar. Kod tarafında döngüyü bir job queue içinde yönetmek, sunucu çökmesini engeller. Eşleştirme sırasında oyuncu durumu değişirse kuyruk yeniden sıfırlanır. Bu durum, gerçek zamanlı veri akışı için WebSocket yerine MQTT kullanmayı gerektirir. Eşleştirme mantığında insaf ilkesini uygulamak, kuyruk sırasının adil olmasını sağlar. Öncelikli kuyruk sistemi kurmak, bazı oyuncuların sürekli erken eşleşmesini diğerlerini ise saatlerce bekletmesini doğurur. Tüm kuyrukları eşit ağırlıkta tutun. Eşleştirme kriterlerini şeffafça belgelendirin. Oyuncular ne kadar beklediklerini ve neden eşleşemediklerini bilmelidir. Bu şeffaflık, oyunun itibarını korur.

Takım İş Akışı, Test ve Post-Mortem
Eşleştirme sistemi geliştirirken takım içinde net rol dağılımı şarttır. Bir geliştirici veri yapısını, bir mühendis algoritmayı, bir tester ise senaryo bazlı testleri yönetir. Test aşamasında en az 2000 sahte oyuncu simülasyonu çalıştırın. Farklı ping değerleri, cihaz yetenekleri ve rating dağılımları için binlerce eşleştirme döngüsü tetikleyin. Hata yakalama mekanizması eksikse, eşleştirme sunucusu çökme riski taşır. Post-mortem analizinde en kritik veri eşleştirme süresi ve başarı oranıdır. Steam 2025 raporlarına göre ortalama eşleştirme süresi 8 saniyenin altında kalan oyunlar, oyuncu tutma oranında %22 fark yaratır. Kod tarafında post-mortem verilerini otomatik olarak log dosyasına kaydedin. Eşleştirme hatalarını kategorize edin. Kuyruk zaman aşımı, rating çakışması, cihaz uyumsuzluğu gibi hataları ayrı başlıklarda tutun. Takım içinde post-mortem toplantısı yapmak, aynı hatanın tekrarlanmasını engeller. Her çeyrek bir eşleştirme deneme süreci çalıştırın. Yeni motor güncellemeleri veya API değişiklikleri eşleştirme mantığını bozabilir. Bu süreç, sistemin istikrarını korur.

İndie Model, Erişilebilirlik ve Monetization Etik Kuralları
İndie projelerde eşleştirme sistemi genellikle bütçe kısıtlaması nedeniyle dış kaynaklara bırakılır. Bu yaklaşım, uzun vadede maliyet ve güvenlik riski doğurur. Kendi eşleştirme altyapınızı yazmak, oyunun gelecekteki büyümesini güvence altına alır. Erişilebilirlik standartları eşleştirme sistemine de yansır. Renk körü oyuncular için rating göstergelerini ikon ve metin ile destekleyin. Motor tarafında Unity Accessibility Package veya Godot Input Mapping kullanmak, cihaz uyumluluğunu artırır. Monetization tarafında ise kumar ve bağımlılık mekaniklerini kesinlikle reddedin. Loot box, gacha ve zaman sınırlı karanlık desenler, oyuncu güvenini yok eder. Bunun yerine eşleştirme deneyimini geliştiren araçlar sunun. Geliştirici araçları, özel eşleştirme filtreleri veya performans izleme panelleri. Bu yaklaşım, oyunun uzun vadeli gelir modelini destekler. Eşleştirme sistemi bir araçtır, oyuncu deneyimini manipüle etmek için değil. Takımınızın bu ilkeyi koruması, projenin etik temellerini güçlendirir. Kod tarafında her yeni özellik eklediğinizde erişilebilirlik testi yapın. Eşleştirme mantığını oyuncu lehine değil, sistem stabilitesi lehine tasarlayın. Bu disiplin, oyunun ömrünü uzatır.


