Bu hafta, her Salı öğleden sonra e-postalarınızla ulaşan, matematik odaklı haber bültenimiz “Proof Positive”dan bir habere göz atıyoruz. Eğer bu makaleyi beğeniyorsanız, ödüllü gazeteciliğimizi desteklemek için abone olun. Abonelik yaparak, dünyayı şekillendiren keşifler ve fikirlerle ilgili etkileyici hikayelerin geleceğini güvence altına almaya yardımcı oluyorsunuz.
Geçmişte, Pokémon oyunlarında oyuncular bir araya gelerek takas yapabiliyordu. Pokédex’inizi tamamlamak için, oynadığınız oyunun versiyonuna bağlı olarak bazı Pokémon’ların bulunmadığını ve bu versiyona özel Pokémon’ları yakalamak için bir arkadaşınızla takas yapmanız gerektiğini unutmayın. Game Boy’lar internet bağlantısına sahip olmadığı için bu işlem kablolar aracılığıyla yapılıyordu. Takas işlemi sıralı olarak gerçekleşiyordu: önce göndereceğim Pokémon’u seçiyor, ardından diğer oyuncu kendi Pokémon’unu seçip transfer edebiliyordu. Kabloyu ilk Pokémon transfer edildikten sonra keserseniz, işlemin ikinci kısmı tamamlanmazdı. Bu durum, hem gönderdiğiniz Pokémon’u kaybetmenize hem de diğer oyuncunun da aynı Pokémon’a sahip olmasına neden olurdu. Bu yöntemle oyuncular, istedikleri kadar Pokémon kopyalayabiliyorlardı.
Günümüzde, takas yapmak için artık kablolara ihtiyaç duymuyorsunuz, ancak oyunun akışını etkileyebilecek başka yöntemler de mevcut. Bunlardan biri, bir oyunun rastgele sayı üretecinin (RNG) zayıflıklarını kullanarak belirli Pokémon’ları elde etme yöntemidir ve buna uygun olarak “RNG manipülasyonu” adı verilmektedir.
Aslında, bir oyunda karşılaştığınız Pokémon’ların zamanlaması rastgele sayılar tarafından belirlenir. Çoğu uzman, rastgelelik söz konusu olduğunda dikkatlerini yoğunlaştırır çünkü gerçekte rastgele sayı üretmek son derece zordur.
Rastgele Sayı Nasıl Üretilir?
Günlük hayatta birçok şeyi rastgele olarak algılarız, ancak tamamen deterministik bir süreçle gerçek rastgelelik elde etmek imkansızdır. Bunun yerine, “sözde rastgele sayı üreteçleri” kullanırız. Bu üreteçler tarafından üretilen sayı dizileri, teorik olarak öngörülebilir bir kalıba sahip olsa da, gerçek bir rastgele sayı dizisinden ayırt edilemez.
Sözde rastgele sayı üreteçleri, “seed” adı verilen başlangıç değerlerini kullanır. Bu seed’ler, görünüşte rastgele bir sayı dizisinin oluşturulmasını sağlar. Ancak, seed bilindiğinde, sayı dizisi tahmin edilebilir hale gelir ve bu da Pokémon oyunlarındaki RNG manipülasyonlarının temelini oluşturur. Farklı Pokémon oyun versiyonlarında farklı iç programlama bulunur ve bazıları daha basit seed’lere sahip sözde rastgele sayı üreteçleri kullanır. Örneğin, Pokémon Emerald Version’da seed her zaman sıfır değerine sahiptir.
Dördüncü nesil Pokémon oyunlarında (Pokémon Diamond, Pokémon Pearl ve Pokémon Platinum), seed, konsoldaki saat ayarı ve “Devam” seçeneğine tıklanana kadar geçen süre gibi faktörlere bağlı olarak belirlenir. Bu oyunlardaki rastgele sayı üreteci, “doğrusal kongrüansiyel üreteç” adı verilen bir algoritma kullanır. Bu tür algoritmalar, en yaygın sözde rastgele sayı üreteçleri sınıfına aittir. Doğrusal bir denklem ve özyineleme prensibi üzerine kurulmuştur. Başlangıçta kullanılan seed değeri, doğrusal denklem aracılığıyla ilk rastgele sayıyı üretmek için kullanılır. Daha sonra, bu üretilen değer tekrar aynı denkleme yerleştirilerek bir sonraki sayı elde edilir. Bu şekilde, giderek artan bir sayı dizisi oluşturulur.
Üretilen sayıların belirli bir aralıkta (örneğin 0 ile 9 arasında) kalmasını sağlamak için, denklem sonunda “modüler işlem” uygulanır. Sonuç, örneğin 10 gibi bir sayıya bölünür ve sadece tam sayı kısmı elde edilir. Bu şekilde, gerçek rastgele sayılardan ayırt edilemeyen sözde rastgele sayılar üretilir.
Lava Lambalarıyla Şans
Emerald sürümünde seed her zaman aynı olduğu için, üretilen sözde rastgele değerler her zaman tahmin edilebilir. Bu durumun kötüye kullanılmasını önlemek için, rastgele sayılar arka planda çok hızlı bir saat gibi çalışır ve saniyede yaklaşık 60 kez değişir. Bu nedenle, herhangi bir “rastgele” olay gerçekleştiğinde (örneğin, bir oyuncu vahşi bir Pokémon ile karşılaştığında), üretilen rastgele sayı, sonucun belirlenmesinde kullanılır ve bu hızlı değişim, olayın öngörülemez görünmesini sağlar.
Teorik olarak, aynı olay oyunun başlangıcından itibaren aynı anda gerçekleşirse, sonuç aynı olacaktır. Bu kalıp, dikkatli bir şekilde kullanılarak manipüle edilebilir.
Bir oyunun rastgele olaylarını etkilemek için, öncelikle hassas bir kronometreye ihtiyacınız vardır. Ayrıca, hangi rastgele sayının hangi zaman diliminde hesaplandığını ve bu sayının neyi temsil ettiğini bilmeniz gerekir. Bu verileri içeren listeler genellikle çevrimiçi olarak bulunabilir. Bu listeler, hangi Pokémon’ların hangi zaman aralıklarında beklenebileceğini gösterir.
Elbette, işleri kendinize çok daha kolay hale getirebilir ve bu tür RNG manipülasyonlarını gerçekleştiren hazır programları kullanabilirsiniz. Oyuncuların bu konuyu tartışmak için kullandığı birçok internet forumu bulunmaktadır.
Pokémon geliştiricileri, daha güvenli rastgele sayı üreteçlerine geçtikleri zamanlar olmuştur. Ancak, eski versiyonlarda bulunan kolay RNG manipülasyonları artık Pokémon Scarlet ve Pokémon Violet gibi yeni oyunlarda mümkün değildir.
Reddit forumunda bir kullanıcı, programın seed’inin, Pokémon oyununun çalıştığı cihazın donanımına bağlı olabileceğini belirtmiştir. Örneğin, Nintendo Switch, yerleşik bir donanım tabanlı rastgele sayı üreteci kullanır. Bazı durumlarda, elektrik devresindeki dalgalanmalar gibi öngörülemez faktörler kullanılır.
Pratik rastgele seed’lerin elde edilmesinde kullanılan yöntemler bazen son derece yaratıcı olabilir. Örneğin, içerik dağıtım ağı (CDN) sağlayıcısı Cloudflare, San Francisco’daki merkez binasında, rastgeleliği artırmak için bir lava lambası duvarı kullanır. Bazı lokasyonlarda, veri paketlerinin geliş zamanları kullanılırken, diğerlerinde su tanklarının veya sarkaçların hareketleri izlenir. Rastgelelik elde etmek için kullanılan diğer yöntemler arasında bulut kayıtları veya balık akvaryumlarındaki hareketlerin kaydedilmesi yer alır.
Ne yazık ki, bazı Pokémon hayranları için, rastgele sayı üreteçlerindeki iyileştirmeler, oyunun tadını çıkardıkları gizli düzeni bozmuştur.
Bu makale ilk olarak Spektrum der Wissenschaft’ta yayınlanmıştır ve izinle yeniden üretilmiştir. Makale, yapay zeka yardımıyla orijinal Almanca versiyonundan çevrilmiş ve editörlerimiz tarafından gözden geçirilmiştir.