Birazdan Black Desert başlayacak.

Eğer oyun başlamıyorsa, lütfen Black Desert Başlatıcıyı kurun.

Oyuna başlamak için Black Desert Başlatıcısını kurunuz.

Eğer zaten kuruluysa, oyun hemen başlar.
Eğer otomatik olarak başlatıcı çalışmıyorsa, lütfen kurulu olan başlatıcıyı doğrudan başlatın.

Kurulum Rehberi

1 İndirilen BlackDesert_Installer_TR.exe dosyasını çalıştırarak, Black Desert Başlatıcısını kurunuz.

2 Kurulum tamamlandıktan sonra oyunu başlatınız.

Forum

#Diğer #Strateji #PvE #Eşya
Çok Kapsamlı "Nedir Bu RNG?" ve Bazı İncelemeler
27.04.2021 15:36 (UTC+3)
2840 35
1 2 3 4
Son Düzenleme Tarihi : 20.09.2023 00:25 (UTC+3)
# 1

Merhaba,

Bu yazıda RNG hakkında detaylı bir anlatım yapıp mantığından bahsedeceğim. Keyifli okumalar!

Not : Aşağıda yazılı olan iddialar tamamen teoriden ibarettir. Github'da bulunan, başka bir mmorpg oyunun sızdırıldığı iddia edilen kaynak kodları referans alınmıştır. Sadece olayların işleyişi hakkında bazı bilgilendirmeler yapmak üzere bu not oluşturulmuştur.

 

Öncelikle bazı tanımlar yapalım.

RNG : Random Number Generator (RNG), rasgele sayı oluşturma. Tamamen "rastgelelik" üzerine inşa edilmiş bir tür algoritma, kodlar topluluğu, sistem dizisi.

Seed : Rastgele sayı üretimindeki fonksiyon girdisi. (Aşağıda bundan biraz bahsediyorum.)

Fonksiyon : Belirli bir sayıyı (seed) bir veya birden fazla işleme sokup istenilen (belirlenen) aralıkta sayı ortaya çıkaran bir işlem veya işlemler dizisi.

Örneğin:

Belirli sayı (seed) = 7891534896

7891534896 > (10000 - 0 alt/üst limit aralığında) Fonksiyon > 5162 (Çıktı)

 

Görsel 1 : RNG (Rastgele sayı üretici) taslağı.
 

1 Saniye = 1,000,000,000 ns (1 saniyenin içerisinde 1 milyar nanosaniye var.)

 

Seed

Fonksiyon girdisidir. Geçmişte, eskiden üretilmiş olan mmorpg oyunlarında "kernel32.dll" adlı bir modül kullanılmış. Peki bu modül ne yapar?

Kernel32.dll adlı modül, bilgisayarın arka planında çalışan bir timer'ı ele alır. Yani bilgisayar saatidir. Ama bilgisayar saati denildiğinde akla 16.30, 18.47 gibi bir değerler gelmemeli. Bilgisayar çalışmaya başladığı andan itibaren, bilgisayar timer'ında "5378295738257" gibi sayılar, nanosaniye mertebesinde oluşturulmaya, sayılmaya başlar. Kernel32.dll adlı modül, bu sayaçtan 'anlık' olarak "dur! hop! hemen bana bi sayı ver bakim" dercesine bir sayı alır, belirler. İşte bahsettiğim seed, bu sayıdır. Bu seed istenilen şekilde belirlenemez. Black Desert Online'da bu modül mü kullanılıyor bilemeyiz ancak mantığı kavramamız yeterli olacaktır.

 

Bir Yaratık Yok Edildiğinde Elde Edilen Ödülün Belirlenme Süreci (Drop)

Eveet. Şimdi yukarıdaki sıkıcı bilgileri örneklendirip tatlıya bağlama zamanı.

Yaratık spawn noktasına geldin, attın skillini, yaratığı yok ettin, ne çıktı? Hiçbir şey. İşte bu süreç arka planda tam olarak şu şekilde işlemekte;

(Ben "anlık, o an" şeklinde bahsedeceğim ama siz okuyucular anlık olarak bahsettiğim işlemin, nanosaniye hızında gerçekleştiğini lütfen unutmayın.)

Yaratık kesildiğinde bu rng sistemi aktif edilir. RNG sistemi anlık olarak zamanlayıcıdan uzuun bir sayı çeker. Bu sayı belirlenen bir veya birden fazla fonksiyona sokulur (birden fazlaysan önce birine sonra diğerine sonra varsa diğerine veya diğerlerine). Sonuçta tamamen rastgele bir sayı elde edilir. 

Sayının son çıktığı fonksiyonun alt ve üst limitinin 10,000-0 olarak ele alalım. Yani bu fonksiyondan çıkabilecek maksimum sayı 10,000 (on bin), minimum sayı 0 (sıfır) olsun. Envantere gelen ödül sayıya bağlı olarak şöyle olacaktır (tamamen uydurma bir sonuç listesidir);

 

Görsel 2 : Farazi bir rastgele sayıya bağlı elde edilecek ödül listesi.

Not: Görsel 2 adlı şekilde bahsedilen konu oldukça basit işlenmiştir. Detaylı anlatımın karmaşa yaratacağını düşünüp bu şekilde işlemek istedim.
 
 
Bir Eşya Yükseltme Süreci (Upgrade)
 
Elimizde bir adet TET: Urugon Ayakkabı olduğunu ve bu eşyayı PEN'e yükseltmek istediğimizi varsayalım. 
 
Görsel 3 : Oyundan bir yükseltme ekranı

 

Her eşyanın olduğu gibi, Urugon Ayakkabısı'nın da bir dereceden bir dereceye yükseltilirken hangi Valks'ın Tavsiyesi değerinde (bilenen adıyla fs) yükselme ihtimalinin bulunduğu açıkça biliniyor. Tüm bu değerler ilgili oyun dosyasının içerisinde zaten varlar. 
 
Yukarıda bulunan görseli ele alıp bir örnek oluşturalım. 114 FS ile TET: Urugon Ayakkabısı adlı eşyayı, %3,72 ihtimalde PEN'e yükseltmeyi denedik ve yükseltme başarısız oldu. Peki bu işleyiş arka planda tam olarak nasıl gerçekleşiyor?
 
 
Görsel 4 : %3,72 ihtimalinin görsel tasviri
 
 
%3,72 ihtimalle eşyanın yükselmesi durumu:
 
Bahsettiğim RNG sistemi eşya yükselmeden veya yükselemeden hemen önce devreye giriyor. Tekrarlamakta fayda var, burdaki zaman dilimi nanosaniye mertemesinde. Seed elde ediliyor, fonksiyon veya fonksiyonlara sokulup alt limit ve üst limit aralığında bir sayı elde ediliyor. (Ben yine bu limitleri 10,000 (on bin) - 0 (sıfır) olarak ele alacağım.)
 
10,000 - 0 aralığında; 
 
eğer RNG'den çıkan rastgele sayı 372 - 0 aralığındaysa yükseltme başarılı,
eğer RNG'den çıkan rastgele sayı 10,000 - 372 aralığındaysa yükseltme başarısız, şeklinde sonuç elde ediyoruz.
 
DEMİRCİ ALNINI SİLERKEN YÜKSELTME YAPMANIZ, DAĞLARA TEPELERE ÇIKMANIZ, YÜKSELTME ANİMASYONUNU DURDURUP DURDURUP SONRASINDA YÜKSELTMEYİ DENEMENİZ SİZLERİ PSİKOLOJİK OLARAK RAHATLATABİLİR. ANCAK UNUTMAYALIM, BUNLARIN SİSTEM ÜZERİNDE HİÇBİR ETKİSİ YOKTUR.
 
 
 
Muhtemel Bazı Sorular ve Cevaplarım

 

%'ce düşen eşya eldesini arttıran parşömenlerin (sc) işleyişi nasıl? Kullanmanın etkisi nedir?

Nokta atışı bir işleyiş söylemem pek doğru olmaz çünkü incelemesinde bulunduğum kodların içerisinde böyle bir eşya kullanımı mevcut değil. Ancak etkisinden kısaca şöyle bahsedeyim.

Örneğin yaratık kesilen bölgede bir takı elde ediliyor olsun. İsmi de "Memoreka" olsun  :)

Memoreka elde etme yüzdesini, kodu yazan abiler dışında kimse bilemez ama biz rastgele bir yüzde verelim (Bazı sitelerde yazan oranlar tamamen tahmindir, gerçek oranları bilemeyiz). Bu ihtimalin %0,02 olduğunu var sayalım, yani 5000'de 1. Bu oranın ne olduğu iyi kavramalıyız. Kestiğimiz yaratıktan eşyanın düşme ihtimali %0,02. Bu demek değildir ki 5000 yaratık kestiğimizde biz bu ödülü kesin olarak elde edeceğiz. Genelde bu kısımda yanlış bir algı var. "eee 5000'de 1 ihtimal varsa sc basıp 2500'e indireyim. 2500 yaratık kestiğimde düşüreyim" şeklinde bir düşüncede bulunmak çok da doğru değil. %0,02 olan bir düşme oranı, %100'lük bir eşya düşürme parşömeni ile %0,04 olur. TEBRİKLER, %0,02 OLAN MEMOREKA ELDE ETME YÜZDENİZ %0,04 OLARAK GÜNCELLENDİ.

Sc etkisini bu şekilde açıkça anlattığımı düşünüyorum. Bana soracak olursanız, eğer yaratıklardan "kadim dilde yazılmış parşömen" veya "yasaklı kitap" gibi sıkça düşme ihtimali bulunan bir eşya yoksa, parşömen basmanın pek de dillendirilecek bir getirisi olmadığını düşünüyorum.

 

RNG birikir mi? Uzun süre değerli bir drop alamadığımda daha  büyük bir değerde drop alma ihtimalim artar mı?

Hayır. Bir spawn noktasından 2 adet takı aldığım durumlar yaşadım. Yani düşmesi muhtemel en değerli ödülden 2 adet peş peşe elde ettim. Muhtemelen bunu siz de yaşadınız veya çevrenizde bu durumu yaşayan biri vardır. Birikme gibi bir durum olsaydı asla böyle bir durum yaşanmazdı. Yaratık yok edilen noktada, istenilen eşyadan daha az değerde bir eşya elde edildiğinde kurulan "gitti bütün rng!" cümlesi bir hurafeden ibarettir.

RNG güne bağlı değildir. Saatlerdir değerli eşya alamamanız, ilerleyen dakikalarda veya saatlerde almayacağınız anlamına gelmez.

Biraz önce elde ettiğiniz eşya, sonrakiler için hiçbir anlam ifade etmez. Merak etmeyin, bütün rng gitmez, gitmemiştir. Oralarda bir yerlerdedir :)

 

RNG sistemi manipüle edilebilir mi? Yani rastgele sayı oluşturma sistemine bir takım yazılımlarla müdahale edip istediğimiz eşyayı elde edebilir miyiz?

Muhtemelen hayır. Anlattığım sistemde bir çok bilinmeyen, şirket politikası gereği saklanan parametre var. Seed'i bir şekilde kontrol ettik diyelim. Bu seed'in hangi fonksiyona veya fonksiyonlara girdiğini, nasıl bir işlemden geçtiğini bilmek mümkün değil. Hadi diyelim onu da bir şekilde uzun bir uğraş sonucu elde ettiğimizi var sayalım (örneğin; deneme yanılma yoluyla), yukarıda bahsettiğim eşya listenin gerçeğinin (oyunda kullanılan) de bir bilinmeyen olarak karşımıza çıktığını görüyoruz. 

Özetle, database'den direkt olarak bu bilgileri elde etmediğimiz sürece bu manipüleyi uygulamak pek mümkün değil.

 

Elbette bazı kısımlarda eksiklikler hatta hatalar vardır. Konunun uzmanı değil, sadece araştırmaktan keyif alan biriyim. Zaman ayırdığınız için teşekkürler,

 

Malignant
                    Mayhem

Yazan kişi tarafından silinmiştir.
Son Düzenleme Tarihi : 27.04.2021 15:46 (UTC+3)
# 3
Teşekkürler, çok yararlı bir rehber olmuş.
Son Düzenleme Tarihi : 27.04.2021 15:47 (UTC+3)
# 4
Harika bilgi paylaşımı ellerine sağlık dostum
Yazan kişi tarafından silinmiştir.
Son Düzenleme Tarihi : 27.04.2021 16:31 (UTC+3)
# 6
Mükemmel olmuş ya
Son Düzenleme Tarihi : 27.04.2021 17:31 (UTC+3)
# 7
Bizim Filozof Serhatın bütün teorileri iptal mi yani?
Son Düzenleme Tarihi : 27.04.2021 17:37 (UTC+3)
# 8
Totemlere karşı tutumuna güldüm valla :D Eline sağlık güzel rehber olmuş
Son Düzenleme Tarihi : 27.04.2021 17:49 (UTC+3)
# 9

Eline, emeğine sağlık.

Son Düzenleme Tarihi : 27.04.2021 17:50 (UTC+3)
# 10

Harika olmuş *Alnını silerken bas* ellerin dert görmesin.

1 2 3 4
Görüş

Oynanış

Oynanışla ilgili ipuçları ve bilgi birikiminizi paylaşın.

last
Gönderiler 10.000 adetlik birimler halinde aranır.