Bloga Dön

UEFN Discovery Algorithm Açığı: Spam Korumalı Sophistication Score Sistemleri Nasıl Tasarlanır?

Yayınlanma tarihi 7 Nisan 2026
UEFN Discovery Algorithm Açığı: Spam Korumalı Sophistication Score Sistemleri Nasıl Tasarlanır?

Her UGC yaratıcısı, devasa bir güncelleme üzerinde haftalarca çalıştıktan sonra haritasının, sadece 500 boş cihazı spamlayan düşük eforlu bir "Red vs Blue" klonu tarafından discovery sekmesinde gömülmesini izlemenin verdiği derin hüsranı bilir. Unreal Engine forumları şu anda UEFN (Unreal Editor for Fortnite) içindeki "Sophistication Score"—güya karmaşık ve yüksek eforlu deneyimleri öne çıkarmak için tasarlanmış bir metrik—hakkında çalkalanıyor. Bunun yerine, bu sistem aktif olarak harita spamini ödüllendiriyor. Bir platform, doğrulanabilir mantık yürütme yerine saf metrik sayımına güvendiğinde, ekosistem kaçınılmaz olarak bir "dibe vurma yarışı"na dönüşür.

Geliştiriciler, titizlikle hazırlanmış ve yüksek düzeyde mantıksal güncellemelerinin platformun görünürlük motoru tarafından görmezden gelindiğini bildiriyor. Bu sırada kötü niyetli kişiler, Backend karmaşıklık derecelendirmelerini yapay olarak şişirmek için yüzlerce işlevsiz cihazı bir sahneye sürükleyip bırakabileceklerini fark ettiler. Bu, 2000'lerin başında SEO dünyasında gördüğümüz keyword stuffing (anahtar kelime doldurma) yönteminin aynısıdır, sadece mekansal bilişim ve oyun motoru metadata alanına uygulanmış halidir.

Peki bunu gerçekten nasıl düzeltirsiniz? Kendi User Generated Content (UGC) platformunu inşa eden bir bağımsız geliştiriciyseniz veya kaliteli oyunları öne çıkarmakla görevli bir platform mimarıysanız, bir haritanın "sophisticated" olduğunu matematiksel olarak nasıl kanıtlarsınız? Cevap, statik asset sayımını bırakıp yürütme derinliği analizi (execution-depth analysis) ve Telemetry doğrulamasına geçmekte yatar.

Bozuk Bir Discovery Metriğinin Anatomisi

Mevcut UEFN discovery algorithm sisteminin neden başarısız olduğunu anlamak için platformların yüklenen içeriği geleneksel olarak nasıl değerlendirdiğine bakmamız gerekir. Bir kullanıcı bir harita yayınladığında, sunucu metadata oluşturmak için statik bir analiz süreci çalıştırır. Bu metadata, haritanın discovery kuyruğundaki yerini belirler.

Saf bir Backend, "Sophistication Score" değerini şuna benzer bir formülle hesaplayabilir: Score = (StaticMeshCount * 0.01) + (DeviceCount * 0.5) + (VerseLineCount * 0.1)

Statik Sayım Neden Her Zaman Başarısız Olur?

Bu mimarinin temel kusuru, nesnelerin kullanımını değil, varlığını ölçmesidir. Bir geliştirici, herhangi bir Event Graph ile tamamen bağlantısız 1.000 adet tetikleyici cihazı haritaya yerleştirebilir. Statik analizör için bu, son derece karmaşık ve etkileşimli bir ortam gibi görünür. Oyuncu içinse bu sadece boş bir odadır.

Bu durum çarpık bir teşvik yapısı oluşturur. Temiz, verimli ve optimize edilmiş mantık yazan yaratıcılar cezalandırılır. Tüm oyun modunuzu tek bir optimize edilmiş Verse scripti ve üç cihazla yönetmeyi başarırsanız, haritanız Backend tarafından "gelişmiş değil" (unsophisticated) olarak kabul edilir.

Geliştiriciler zaten platformun kısıtlamalarıyla savaşırken—örneğin Cracking The 32 Character Uefn Analytics Device Event Name Limit Verse Tutorial eğitimimizde gösterdiğimiz geçici çözümleri bulmaya çalışırken—platformun discovery motorunun onları kusurlu bir eğriyle değerlendirdiğini görmek son derece moral bozucudur.

Doğrulanabilir Bir Sophistication Metriği Tasarlamak

Adil bir discovery algorithm oluşturmak istiyorsak, ham Actor sayılarını değil, mantıksal derinliği ve olay yoğunluğunu ölçmeliyiz. Gerçek yürütme grafiğini analiz etmemiz gerekiyor.

Backend analiz aracı, kaç cihaz olduğunu saymak yerine, aralarındaki bağlantıları izlemelidir. Oyuncu durumunu değiştiren yerelleştirilmiş bir olay dizisine ateşlenen bir tetikleyici, yüksek bir mantıksal ağırlığa sahiptir. Dünyaya yerleştirilen ancak hiçbir şeye bağlı olmayan bir tetikleyicinin mantıksal ağırlığı tam olarak sıfırdır.

Kod Derinlemesine İnceleme: Gerçek Mantık Derinliğini Hesaplama

Özel bir Unreal Engine Backend sisteminde bu doğrulama adımını tasarlıyor olsaydık, ULevel içeriğini ayrıştıran ve gerçek delege bağlamalarını (delegate bindings) değerlendiren bir commandlet veya otomasyon scripti yazardık.

İşte bir Backend doğrulama aracının, sadece Actor'leri saymak yerine olay bağlamalarını analiz ederek bir haritanın gerçek "sofistikasyonunu" nasıl değerlendirebileceğine dair basitleştirilmiş bir C++ örneği:

// [Code block unchanged]

Bu yaklaşım, "haritaya 500 boş cihaz sürükleme" açığını anında ortadan kaldırır. Algoritma, bu cihazların gerçekten bir multicast delegate yapısına bağlı olup olmadığını veya özel tick mantığının etkin olup olmadığını kontrol eder. Eğer değilse, Sophistication Score değerine hiçbir katkıda bulunmazlar. Hatta LogicRatio değerini takip ederek, seviyelerini yapay olarak şişirmeye çalışan kötü niyetli kişileri aktif olarak cezalandırabiliriz.

Telemetry Odaklı Discovery Sistemine Geçiş

Statik analiz doğrulaması büyük bir gelişme olsa da, savaşın sadece yarısıdır. Herhangi bir statik metrik eninde sonunda manipüle edilebilir. Discovery algoritmaları için nihai doğruluk kaynağı, gerçek zamanlı oyuncu Telemetry verileri olmalıdır.

Bir harita Backend tarafında binlerce karmaşık, birbirine bağlı Verse scriptine sahip olduğu için inanılmaz derecede sofistike görünebilir. Ancak ortalama oyuncu oturumu, istemci bağlantısı kesilmeden önce tam 14 saniye sürüyorsa, harita ya bozuktur, ya hiç optimize edilmemiştir ya da sadece eğlenceli değildir.

Saf Oyun Sayılarının Ötesine Geçmek

Ham cihaz saymayı bırakmamız gerektiği gibi, haritaları sadece "Toplam Oyun Sayısı" veya "Anlık Oyuncu Sayısı (CCU)" üzerinden sıralamayı da bırakmalıyız. Bu metrikler yerleşik haritaları aşırı derecede kayırır ve yeni, sofistike güncellemelerin discovery sekmesine girmesini imkansız hale getirir.

Bunun yerine, UEFN discovery algorithm (ve kendi oyunlarınız için oluşturduğunuz tüm Backend sistemleri) bir Bayesian Average of Engagement (Etkileşimin Bayesyen Ortalaması) hesaplamalıdır.

Bir haritayı değerlendirirken, belirli bir türün beklenen oturum süresi (örneğin, bir Tycoon haritası 45 dakikalık bir oturum bekler) ile gerçek oturum süresi arasındaki farkı takip etmeniz gerekir. Bir harita sürekli olarak türün temel elde tutma (retention) oranını aşarsa, Sophistication Score değeri gerçek zamanlı olarak dinamik bir şekilde katlanmalıdır.

Bunu kendiniz kurmak; dağıtık Load Balancer'lar, milyonlarca satır ekleme için database sharding ve SSL sertifikası yönetimi gibi tek bir satır oyun kodu yazmadan önce yapılacak 4-6 haftalık yoğun bir altyapı çalışması gerektirir. horizOn ile bu sunucusuz (serverless) veri boru hatları ve oyuncu analitiği uç noktaları önceden yapılandırılmış olarak gelir ve altyapınız yerine oyununuzu yayınlamaya odaklanmanıza olanak tanır.

Backend Sisteminizi Telemetry Sahteciliğinden Korumak

Telemetry tabanlı bir discovery algorithm sistemine geçtiğinizde, kötü niyetli kişiler de strateji değiştirecektir. Editör içinde cihazları spamlamak yerine, elde tutma metriklerini yapay olarak şişirmek için istemciden Telemetry olaylarını taklit etmeye (spoofing) çalışacaklardır.

İstemciye asla güvenmeyin. İstemciniz SessionLength = 3600_seconds diyen bir olay gönderirse, Backend sisteminiz bu iddiayı gerçek sunucu bağlantı günlükleriyle doğrulamalıdır.

Sunucu Tarafı Doğrulamasını Tasarlamak

Oyun mimariniz yetkili (authoritative) kontrolleri zorunlu kılmalıdır. Bir oyuncu bağlandığında, Backend tam UTC zaman damgasını kaydeder. Oyuncu bağlantısı kesildiğinde Backend farkı hesaplar. İstemci yalnızca, daha sonra sunucunun değişmez oturum verileriyle çapraz referanslanan granüler behavioral (davranışsal) olayları (örneğin "Oyuncu X hedefine ulaştı") göndermekten sorumlu olmalıdır.

Bu sıkı doğrulama seviyesi, genel sunucu yükünü nasıl yönettiğimizle doğrudan bağlantılıdır. Sahte oturumları önlemek, verimlilik için kritiktir; bu, Architecting Zero Waste Servers The Fortnite Server Optimization Hibernation Proposal Analyzed çalışmasında gereken tekniklere benzer. Backend sisteminiz sahte bir istemciden gelen milyonlarca sahte olayı işliyorsa, kötü niyetli bir kişinin discovery sekmenizi mahvetmesine yardımcı olmak için altyapı maliyeti ödüyorsunuz demektir.

Discovery Sistemleri Tasarlamak İçin En İyi Uygulamalar

Özel bir multiplayer hub, bir mod portalı inşa ediyorsanız veya mevcut UGC platformlarında nasıl yol alacağınızı analiz ediyorsanız, discovery algoritmalarınızı insan doğasına karşı dirençli olacak şekilde tasarlamalısınız.

Gerçek geliştirici çabasını ödüllendiren bir sistem kurmak için temel ilkeler şunlardır:

  1. Aktif Mantığı Pasif Asset'lerden Üstün Tutun: C++ örneğinde gösterildiği gibi, Backend sisteminiz nesneler arasındaki ilişkileri ayrıştırmalıdır. Karmaşık etkileşim mantığına sahip tek bir blueprint içinde birleştirilmiş yüz adet static mesh, birbirine bağlanmamış bin adet tetikleyici kutudan sonsuz derecede daha "sophisticated"dir. Yayılmayı değil, yoğunluğu ödüllendirin.
  2. Statik Puan Azalmasını (Decay) Uygulayın: Yayınlama anında hesaplanan bir Sophistication Score kalıcı olmamalıdır. İlk statik puan, haritaya ilk görünürlük grubunu vermek için yalnızca bir "tohum" görevi görmelidir. Sonraki 48 saat içinde bu statik puan azalmalı ve haritanın sıralama ağırlığını tamamen gerçek oyuncu Telemetry verilerine devretmelidir.
  3. Oturum Süresi Doğrulamasını Bir Çarpan Olarak Kullanın: Tüm platformunuzda P50 ve P90 oturum sürelerini takip edin. Yeni güncellenen bir harita oyuncuları platform ortalamasından %20 daha uzun süre tutuyorsa, discovery sıralaması katlanarak artmalı ve eskiyen içeriği otomatik olarak baypas etmelidir.
  4. Kopyalamayı Ağır Bir Şekilde Cezalandırın: Backend sisteminiz bir geliştiricinin aynı mantık grafiğinin 14 farklı varyasyonunu farklı küçük resimlerle yüklediğini tespit ederse, yaratıcı kimliğini karantinaya alın.
  5. Discovery Gruplarınızı A/B Testine Tabi Tutun: Algoritmik değişiklikleri küresel olarak uygulamayın. Yeni sofistike mantığınızı oyuncuların %5'ine sunun ve bu grubun kontrol grubundan daha uzun süre içerikle etkileşime girip girmediğini ölçün.

Discovery Sekmesini Geri Kazanmak

Geliştirici forumlarında yankılanan hüsran tamamen haklıdır. Mekanikleri dikkatlice dengelemek, Netcode sistemini optimize etmek ve seviye tasarımını mükemmelleştirmek için haftalar harcayıp, ham cihaz yerleşimini sayan bir algoritmaya yenilmek devasa bir mimari hatadır.

Gerçek şu ki, herhangi bir statik metrik, kestirme yol arayan geliştiriciler tarafından manipüle edilebilir ve edilecektir. UGC platformları için tek sürdürülebilir yol, mantığa duyarlı derin statik analizi acımasız ve yetkili oyuncu Telemetry verileriyle birleştirmektir. UEFN discovery algorithm tuğlaları saymayı bırakıp mimariyi analiz etmeye başlayana kadar, spam kazanmaya devam edecektir.

Kendi ekosistemlerini kuran bağımsız stüdyolar için çeviklik bir avantajdır. Veri boru hatlarınızı ilk günden itibaren doğru şekilde tasarlayarak en iyi yaratıcılarınızın hak ettikleri ilgiyi görmesini sağlayabilirsiniz. Altyapıyla kendi başınıza savaşmadan, adil ve Telemetry odaklı bir multiplayer Backend ölçeklendirmeye hazır mısınız? Ücretsiz olarak horizOn platformunu deneyin ve veritabanı shard'larına değil, harika oyunlar oluşturmaya odaklanın.