· kaynak Hacker News – Front Page (native)
İnceleme: Block Blast'ın kuralları sunucudan geliyor; taşlar, kayıplar ve reklamlar oyuncuya göre ayarlanıyor
Block Blast'ın Android uygulamasının decompile edilmesi, oyun kurallarının şifrelenmiş, sunucu tarafından seçilen kod olarak geldiğini gösteriyor; bu kurallardan biri, konulamayacak bir el dağıtmadan önce yüksek değerli bir reklamı bekliyor.

Neredeyse boş bir uygulama
Yazara göre analiz Android paketinin 10.8.2 sürümüyle başladı. Java tarafı jadx ile, yerel Cocos kütüphanesi ise Ghidra ile decompile edildi; ikisinde de ilginç pek bir şey yoktu: mağazadan indirilen paket esas olarak bir yükleyici. Oyun, hesap bağlı olmayan temiz bir Android 14 emülatöründe çalıştırılıp önbelleği ve logcat izlendiğinde asıl mekanizma ortaya çıktı. Başlangıçta sunucu bir yapılandırma gönderiyor ve uygulama, seçilen mantığı kurulumdan sonra şifrelenmiş JavaScript olarak indiriyor.
Trait'ler, arm'lar ve yüzlerce paralel oyun
Yapısal olarak Block Blast, kodun trait adını verdiği küçük modüllerden oluşuyor ve her trait'in kodun arm adını verdiği varyantları var. Sunucunun başlangıç yapılandırması, belirli bir kurulumun hangi trait'in hangi arm'ını çalıştıracağını seçiyor. Yazarın test cihazında yapılandırma yaklaşık 700 trait'e atıf yapıyordu; kuruluma bunlardan 254'ü atanmıştı ve 101'i kurulumdan sonra indirildi.
Bu 254'ün çoğu sıradan şeyler: öğreticiler, animasyonlar, sesler. Ancak yazıda yeniden üretilen atama listesi, kaybetme, canlanma ve ölümle ilgili yoğun bir trait kümesi içeriyor; bunların arasında DeadlyToHardTrait, FastHandPunishTrait, MultiClearBoostThenKillTrait, EndlessDeathBoardTrait ve SequencePredictDynamicDifficultyTrait ile birlikte açıkça etiketlenmiş bir ServerControl_board_init_v2Trait var. Yazarın deyişiyle pratik sonuç şu: yan yana oynayan iki kişi farklı oyunlar oynuyor olabilir ve stüdyo, uygulama güncellemesi yayınlamadan herhangi bir oyuncunun oyununu değiştirebiliyor.
Pahalı bir reklamı bekleyen kural
Bir trait özel ilgi görüyor: RewardHighValueAdHarvestTrait. Yazar, oyunun bu dosyaların kilidini kendi yerel kütüphanesi içinde açtığı noktayı bularak trait'i 15.616 baytlık düz bir dosyaya dekode etti. Yazının bu traite atfettiği davranış açık sözlü: pahalı bir reklam bekliyor, sonra oyuncudan konulamayacak bir el istiyor. Başka bir deyişle, oyuncuya bir bulmaca oyununun rastgele turu gibi sunulan başarısızlık anı, şansla değil reklam envanterine göre zamanlanabiliyor.
Mekaniklerin ardındaki para
Yazı teşviki gelir bağlamıyla çerçeveliyor. Yazarın aktardığı Sensor Tower tahminlerine göre Ocak ve Mayıs 2026 arasında Block Blast reklamlardan tahmini 127 milyon dolar kazanırken, Candy Crush Saga aynı aylarda tahmini 81,1 milyon dolar kazandı. Yazarın oyunla ilgili önceki videosu 15 milyondan fazla izlendi ve gönderi, jadx ve Ghidra'dan temiz emülatör kurulumuna kadar okuyucuların bulguları kendilerinin yeniden üretebilmesi için yeterli yöntemi içeren, videonun tam teknik bir eşlikçisi olarak yazıldı.
Neden önemli
Bu inceleme, bir casual bulmaca oyununun gerçekte ne olduğunu yeniden çerçeveliyor. Taş seçimi, puanlama ritmi ve başarısızlık zamanlaması sunucu tarafından seçilen değişkenlerse, oyuncunun deneyimlediği oyun sabit bir ürün değil, adil olana değil reklam gelirine göre optimize edilebilen, kullanıcı başına bir deneydir. Belirleyici mantık kurulumdan sonra şifrelenmiş JavaScript olarak geldiği için uygulama mağazası incelemesi onu hiç görmez ve o, bir güncelleme olmadan her an değişebilir. Oyuncular için bu, bir kaybetme serisinin kötü şans olmayabileceği anlamına geliyor. Geniş endüstri içinse bu, reklamlar her şeyden fazla kazandırdığında zorluğun kendisinin bir reklam teslim mekanizmasına dönüştüğünün somut bir kanıtı. Ve yeniden üretilebilir yöntem belki de en önemlisi: oyunculara, araştırmacılara ve platformlara aynı şekilde yayınlanan başka herhangi bir oyunu denetlemek için bir şablon veriyor.
- #mobile-games
- #reverse-engineering
- #advertising
- #android
- #monetization