[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fYX5FqcRxFpBTqMqCblh0Ix3mOtJKlsVJT8IkhMsa49o":3},{"blog":4,"related":54},{"_id":5,"slug":6,"title":7,"excerpt":10,"content":13,"coverImage":15,"coverImageAlt":16,"images":19,"metaTitle":23,"metaDescription":26,"metaKeywords":27,"category":40,"tags":41,"author":44,"status":45,"readingTime":46,"publishedAt":47,"order":48,"aiGenerated":49,"aiImagePrompt":50,"ayahRef":51,"createdAt":52,"updatedAt":53,"__v":48},"69ec0c0543bbfb0f61d749d0","elo-ve-srm-algoritmalariyla-adil-eslestirme-altyapisi-kurulumu",{"tr":8,"en":9},"ELO ve SRM Algoritmalarıyla Adil Eşleştirme Altyapısı Kurulumu","Fair Matchmaking Infrastructure Setup With ELO and SRM Algorithms",{"tr":11,"en":12},"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.","Step-by-step matchmaking setup for developers, data flow, balancing formulas, and accessibility standards. Technical solutions against dark patterns and gacha mechanics.",{"tr":14},"\u003Ch2>Algoritma Çekirdeği ve Veri Akışı\u003C\u002Fh2>\u003Cp>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.\u003C\u002Fp>\u003Ch2>ELO ve SRM Karşılaştırması ile İmplementasyon\u003C\u002Fh2>\u003Cp>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 \u002F (1 + 10^((rakip_rating - oyuncu_rating) \u002F 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.\u003C\u002Fp>\u003Ch2>Eşleştirme Döngüsü ve Gerçek Zamanlı Veri\u003C\u002Fh2>\u003Cp>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.\u003C\u002Fp>\u003Ch2>Takım İş Akışı, Test ve Post-Mortem\u003C\u002Fh2>\u003Cp>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.\u003C\u002Fp>\u003Ch2>İndie Model, Erişilebilirlik ve Monetization Etik Kuralları\u003C\u002Fh2>\u003Cp>İ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.\u003C\u002Fp>","\u002Fblog-img\u002F2026-07-14\u002Fimg-1.webp",{"tr":17,"en":18},"ELO ve SRM algoritma akış şeması, eşleştirme kuyruğu ve veri akışı görselleştirmesi","ELO and SRM algorithm flow diagram, matchmaking queue and data flow visualization",[20,21,22],"\u002Fblog-img\u002F2026-07-14\u002Fimg-2.webp","\u002Fblog-img\u002F2026-07-14\u002Fimg-3.webp","\u002Fblog-img\u002F2026-07-14\u002Fimg-4.webp",{"tr":24,"en":25},"ELO ve SRM Algoritmalarıyla Adil Eşleştirme Altyapısı Kurulumu | Shadowium","Fair Matchmaking Infrastructure Setup With ELO and SRM Algorithms | Shadowium",{"tr":11,"en":12},{"tr":28,"en":39},[29,30,31,32,33,34,35,36,37,38],"rating_systems","balanced_lobbies","retention_vs_fairness","ELO_algorithm","SRM_implementation","matchmaking_infrastructure","indie_game_dev","game_testing","accessibility_standards","monetization_ethics",[29,30,31,32,33,34,35,36,37,38],"oyun-felsefesi",[29,30,31,42,43],"matchmaking","indie_dev","Shadowium Ekibi","published",4,"2026-03-27T08:00:00.000Z",0,true,"Scales balancing two game avatars, digital network lines in the background, precise geometric forms, neutral professional lighting","","2026-04-25T00:34:13.808Z","2026-04-25T08:21:39.847Z",[55,83,110],{"_id":56,"slug":57,"title":58,"excerpt":61,"coverImage":64,"coverImageAlt":65,"images":68,"category":40,"tags":72,"author":44,"status":45,"readingTime":78,"publishedAt":79,"order":48,"aiGenerated":49,"aiImagePrompt":80,"ayahRef":51,"createdAt":81,"updatedAt":82,"__v":48},"69eba15910d6042512281174","zeminin-sessiz-dilini-okumak-gorsel-baglam-ve-hikaye-anlatimi",{"tr":59,"en":60},"Zeminin Sessiz Dilini Okumak: Görsel Bağlam ve Hikaye Anlatımı","Reading the Silent Language of Terrain: Environmental Storytelling and Visual Context Management",{"tr":62,"en":63},"Oyun dünyasında hikayeyi metinle değil, zeminle anlatmak. Görsel ipuçları, ışık yönetimi ve oyuncu özgürlüğü üzerine somut iş akışları.","Telling stories through terrain instead of text. Concrete workflows for visual cues, lighting management, and preserving player agency in environmental design.","\u002Fblog-img\u002F2026-06-10\u002Fimg-1.webp",{"tr":66,"en":67},"Oyun dünyasında zemin detayları ve ışık yönetimi ile hikaye anlatımı konsept görseli","Concept art showing terrain details and lighting management for environmental storytelling",[69,70,71],"\u002Fblog-img\u002F2026-06-10\u002Fimg-2.webp","\u002Fblog-img\u002F2026-06-10\u002Fimg-3.webp","\u002Fblog-img\u002F2026-06-10\u002Fimg-4.webp",[73,74,75,76,77],"environmentalstorytelling","visualnarrative","levelcomposition","playeragency","gameartpipeline",5,"2026-02-21T08:00:00.000Z","a quiet game screenshot showing environmental details like worn paths and scattered notes guiding player attention without text boxes","2026-04-24T16:59:05.439Z","2026-04-25T08:21:19.428Z",{"_id":84,"slug":85,"title":86,"excerpt":89,"coverImage":92,"coverImageAlt":93,"images":96,"category":40,"tags":100,"author":44,"status":45,"readingTime":105,"publishedAt":106,"order":48,"aiGenerated":49,"aiImagePrompt":107,"ayahRef":51,"createdAt":108,"updatedAt":109,"__v":48},"69ebec4a43bbfb0f61d749bc","oyun-tasariminda-saglikli-motivasyon-donguleri-ve-bagimlilik-onleme",{"tr":87,"en":88},"Oyun Tasarımında Sağlıklı Motivasyon Döngüleri ve Bağımlılık Önleme","Healthy Motivation Cycles in Game Design and Addiction Prevention Methods",{"tr":90,"en":91},"İçsel itki, veri etiketi ve takım şeffaflığı ile kurulan sürdürülebilir oyun döngüleri. Dark pattern yerine liyakat odaklı tasarım yaklaşımı.","Sustainable game loops built on intrinsic drive, data ethics, and team transparency. A merit-focused design approach that replaces dark patterns with player respect.","\u002Fblog-img\u002F2026-05-28\u002Fimg-1.webp",{"tr":94,"en":95},"Oyuncu ve geliştirici arasında şeffaf veri akışını gösteren soyut bir görsel, temiz arayüz ve dengeli renk paleti ile.","An abstract visual showing transparent data flow between player and developer interface with balanced color palette.",[97,98,99],"\u002Fblog-img\u002F2026-05-28\u002Fimg-2.webp","\u002Fblog-img\u002F2026-05-28\u002Fimg-3.webp","\u002Fblog-img\u002F2026-05-28\u002Fimg-4.webp",[40,101,102,103,104],"tasarım-etiği","takım-kültürü","erişilebilirlik","monetization",3,"2026-02-08T08:00:00.000Z","abstract illustration of a balanced scale with heart and brain symbols connected by gentle light threads","2026-04-24T22:18:50.520Z","2026-04-25T08:21:10.662Z",{"_id":111,"slug":112,"title":113,"excerpt":116,"coverImage":119,"images":120,"category":40,"tags":124,"author":44,"status":45,"readingTime":78,"publishedAt":135,"order":48,"aiGenerated":49,"aiImagePrompt":136,"ayahRef":51,"createdAt":137,"updatedAt":138,"__v":48},"69ebe69343bbfb0f61d749ab","tek-satis-fiyatlandirma-psikolojisi-ve-abonelik-yorgunlugu-elestirisi",{"tr":114,"en":115},"Tek Satış Fiyatlandırma Psikolojisi ve Abonelik Yorgunluğu Eleştirisi","One-Time Purchase Pricing Psychology and Subscription Fatigue Critique",{"tr":117,"en":118},"Oyuncu güvenini koruyan, şeffaf gelir modelleri ve sürdürülebilir indie iş stratejileri üzerine pratik bir inceleme.","A practical examination of transparent revenue models and sustainable indie business strategies that protect player trust.","\u002Fblog-img\u002F2026-05-15\u002Fimg-1.webp",[121,122,123],"\u002Fblog-img\u002F2026-05-15\u002Fimg-2.webp","\u002Fblog-img\u002F2026-05-15\u002Fimg-3.webp","\u002Fblog-img\u002F2026-05-15\u002Fimg-4.webp",[125,126,127,128,129,130,131,132,133,134],"pricing psychology","one-time purchase","subscription fatigue","indie monetization","player trust","transparent revenue models","game economics","financial prudence","accessibility standards","post-mortem analysis","2026-01-26T08:00:00.000Z","price tag attached to a game case with clear receipt and no recurring subscription icons","2026-04-24T21:54:27.725Z","2026-04-25T08:20:45.766Z"]