Back to blog
Mekanikler

Mini Kraken'in Zar Atışları Adil mi? Zar Motorunun İç Yüzüne Bir Bakış

Her masa er ya da geç bunu sorar: bu şey hileli mi? İşte Mini Kraken'in bir sayıyı nasıl seçtiğine dair dürüst, jargondan uzak bir tur — neden adil olduğu, bunu nasıl doğrulayabileceğiniz ve perde arkasında asla yapmadı...

Mini Kraken'in Zar Atışları Adil mi? Zar Motorunun İç Yüzüne Bir Bakış

Er ya da geç, masadaki biri bunu yüksek sesle dile getirir: "Bunun rastgele olmasına imkân yok. Bu şey benden nefret ediyor." Dijital bir zar gerçek ahşabın üzerinde takırdayarak yuvarlanamaz; dolayısıyla kötü şans üst üste geldiğinde, acaba uygulama işin içine hile mi karıştırıyor diye merak etmek gayet doğaldır.

Yerinde bir soru. Dürüst bir yanıtı hak ediyor, o yüzden en baştan söyleyelim: Mini Kraken'in zarları adildir. Her yüzün eşit şansı vardır, hiçbir şey kayırılmaz ve — pek alışılmadık biçimde — bir atışı kendiniz doğrulayabilirsiniz. Bu yazı, tüm bunların tam olarak nasıl işlediğini sade bir dille anlatıyor; böylece konu bir dahaki sefere açıldığında elinizde gösterebileceğiniz somut bir şey olacak.

"Adil" aslında ne demek

Motorumuzdan bahsetmeden önce, adil bir zarın ne olduğunu netleştirmekte fayda var.

Adil bir d20 tek bir şey ifade eder: yirmi yüzünün her biri eşit olasılıkla gelir — her atışta tertemiz, 20'de 1'lik bir şans. "Aşağı yukarı eşit" değil. "Ortalamada eşit, biraz da ev payıyla" değil. Tam olarak eşit. Adil bir d6 her yüze 6'da 1 şans verir; adil bir d100 ise 100'de 1. Tanımın tamamı bu kadar.

Adilliğin neyi vaat etmediğine dikkat edin. Yirmi kez atarsanız yirmi sayının hepsini göreceğinizi vaat etmez. Kötü bir serinin yakında "dengeleneceğini" vaat etmez. Sonucun eşit hissettireceğini vaat etmez. Adillik yalnızca her bir atıştaki olasılıklara dair bir ifadedir — ve bu konuda taviz vermeyiz.

Kaputun altındaki motor

Mini Kraken zar atmak için el yapımı bir kestirme yol kullanmaz. Her atış — web sitesinde, karakter kâğıtlarınızda, sanal masa üstünde ve Fortuna Discord botu aracılığıyla — yıllardır masa üstü oyuncuları için zar atan olgun, açık kaynaklı bir zar kütüphanesi üzerine kurulu aynı ortak zar motorundan geçer.

Bu iki nedenle önemli. Birincisi, açık kaynaklı bir temel, matematiğin gizemli bir kutu olmadığı anlamına gelir; herkesin okuyabileceği, test edebileceği ve enine boyuna inceleyebileceği bir koddur. İkincisi, hassas bir şeyi yeniden icat etmediğimiz anlamına gelir. Rastgelelik, akıllıca ev yapımı çözümlerin ince yanlılıklar sokuşturmaya meyilli olduğu alanlardan biridir ve savaşta sınanmış kütüphaneler tam da kimse bunu yapmak zorunda kalmasın diye vardır.

Asıl önemli olan, motorun bir sayıya ihtiyaç duyduğunda ne yaptığıdır.

Bir sayı nasıl seçilir — ve neden gizli bir yanlılık yok

İşte çoğu insanın hiç duymadığı kısım ve bu, "acaba adil mi?" sorusunun asıl kalbi.

Bir zar atışını taklit etmenin naif yolu, rastgele bir değer kapıp onu kalan hesabıyla istenen boya indirmektir — programlamadaki karşılığıyla "böl ve kalanı al". Hızlıdır ve neredeyse adildir. Ama modulo yanlılığı denen ünlü bir kusuru vardır: başladığınız aralık nadiren zar yüzü sayısına tam bölündüğünden, birkaç yüz diğerlerinden çok az da olsa daha olası hâle gelir. Tek bir d20'de bu sapma minicik, ama gerçek; ve tam da "hileli" suçlamalarını yapıştıran türden, görünmez, el altından bir oynamadır.

Motorumuz bu kestirme yolu reddeder. Tuhaf bir sayıyı zorla uydurmak yerine, çoğu zaman reddetme örneklemesi (rejection sampling) denen bir teknik kullanır. Sade bir dille: eğer ham bir rastgele değer, olasılıkları çarpıtacak o minicik artık dilime düşerse, motor onu atar ve sessizce yeniden çeker. Yalnızca zarın yüzlerine kusursuz biçimde eşit eşlenen değerleri tutar. Sonuç, hiçbir yanlılığı olmayan bir dağılımdır — her yüz tam, dürüst olasılığına konar. Ara sıra yapılan bu yeniden çekmeyi asla fark etmezsiniz; milisaniyenin ufak bir kesrinde olup biter. Ama bu sayede bir Mini Kraken d20'si matematiğin izin verdiği kadar eşittir.

Bu, tüm yanıtın teknik omurgasıdır. Adil burada bir pazarlama sözcüğü değil; sayının nasıl seçildiğine dair bir özelliktir.

3D zarlar dürüst bir gösteridir

Mini Kraken, ekranda yuvarlanıp yerine oturan gerçek 3D fizik zarlarıyla tanınır — işte makul biri tam burada kuşkulanabilir. Zarın nereye düşeceğine bir fizik simülasyonu karar veriyorsa, animasyon düşük sayılara düşecek biçimde ayarlanmış olamaz mı?

Hayır — ve nedeni olayların sırasıdır. Motor önce sayıyı seçer. Animasyona ise ardından o sayıya düşmesi söylenir. İzlediğiniz o yuvarlanan zar, bir an önce, yukarıda anlatılan aynı yansız motor tarafından çoktan adilce belirlenmiş bir sonucun sadık bir performansıdır. Fizik, sonucu belirlemek için değil, his için oradadır — düz metin sonuçlarının sildiği o tatmin edici takırtı ve yuvarlanış. Dürüst matematiğin üzerine bindirilmiş bir şovmenliktir ve sayıyı kımıldatması kelimenin tam anlamıyla imkânsızdır, çünkü zar hareket etmeye başlamadan önce sayı zaten vardır.

Her yerde tek motor — böylece bir atış aynı anlama gelir

Güvenin ince bir kaynağı da tutarlılıktır. Bazı platformlarda bir yerdeki atış, başka bir yerdeki atıştan farklı davranır. Mini Kraken'de ise bir d20, ister karakter kâğıdınızda dokunun, ister sanal masa üstüne bırakın, ister Fortuna'nın dinlediği bir Discord kanalına yazın, hep bir d20'dir.

Bunun nedeni, tüm bu yüzeylerin aynı motoru çağırmasıdır. Web sitesi için "dost canlısı" bir zar atıcı, Discord için başka biri yoktur. Bir atış, tüm ekosistem boyunca tam olarak aynı anlamı taşır; bu hem bir kolaylık hem de bir güvencedir: olasılıkların sessizce değiştiği özel bir mod yoktur.

Bir atışı gerçekten doğrulayabilirsiniz

İşte "bize güvenin"i "kendiniz kontrol edin"e dönüştüren özellik.

Motor, deterministik tekrar oynatmayı destekler. Sade bir dille: bir atış, tohum (seed) adı verilen küçük bir başlangıç değerine bağlanabilir ve aynı tohum her zaman aynı sonuç dizisini yeniden üretir. Motora aynı tohumu iki kez verin, her seferinde birebir aynı zarları elde edersiniz. Bu, hileli bir sistemin tam tersidir: hileli bir zar atıcı nasıl çalıştığını gizlemek zorundadır, oysa bizimki size tarifi verip aynı girdilerin her zaman aynı, yeniden üretilebilir çıktıyı verdiğini kanıtlayabilir. Tekrar oynatabildiğiniz rastgelelik, denetleyebildiğiniz rastgeleliktir.

Asla yapmadıklarımız

Adil olmak, teknik kadar özdenetimle de ilgilidir. O yüzden açıkça, Mini Kraken'in zarlarının yapmadığı şeyler şunlar:

  • "Zar karması" yok. Şanssız olduğunuzu takip edip bunu telafi etmek için el altından size iyi bir atış vermeyiz — tersini de yapmayız. Her atış, tıpkı gerçek zarlar gibi, bağımsızdır.
  • Gizli hile yok. Sonuçları daha hoş hissettirmek için uç değerlerinizi budayan görünmez bir "yumuşatma" yoktur. Bazı araçlar bunu sessizce yapar. Biz yapmayız; seri, seridir.
  • Gizli değiştirici yok. Uygulanan tek bonuslar, atışta görebildiklerinizdir — kâğıdınızın değiştiricileri, avantaj vesaire. Karanlıkta hiçbir şey eklenmez ya da çıkarılmaz.
  • Hedef gözetme yok. Motor kim olduğunuzu bilmez ya da umursamaz. Oyun Yöneticisine daha nazik, yeni oyuncuya daha zalim değildir. "Oyuncu"nun ne olduğuna dair en ufak fikri bile yoktur.

Zarlar kayıtsızdır. İşin özü de o kayıtsızlıktır.

"Ama atışlarım hâlâ tuhaf"

Gerçekten öyle hissettirebilirler — ve zarlar kusursuz olsa bile bu his gerçektir. Gerçek rastgelelik pütürlüdür: sezgimizin beklediğinden çok daha sık seriler, kümeler ve acımasız zamanlamalar üretir; hafızamız ise felaketlere yapışır, unutulası ortalama atışları sessizce çöpe atar. Adil bir d20 kesinlikle bazen size üst üste üç tane 1 verecektir; bu, yanlılığın kanıtı değil, rastgeleliğin işini yapmasının kanıtıdır.

"Adil" ile "adil hissettirir" arasındaki bu uçurum, kendi yazısını hak edecek kadar büyük — kötü şans serilerinin ardındaki psikoloji için Adil Zarlar Neden Hileli Hisseder yazısına bakın. Ve içinizdeki şüpheciyi deneysel olarak tatmin etmek isterseniz, dürüst test hacimdir: bir d20'yi birkaç yüz kez atın ve dağılımın eşitliğe doğru düzleştiğini izleyin. Bir düzine atış her zaman pütürlü görünür; bin atış ise gerçeği söyler.

Gönül rahatlığıyla atın

Peki, Mini Kraken adil mi? Evet — bir vaatle değil, tasarım gereği. Her yüz eşit olasılıktadır, her sayının ardındaki matematik ondalığına kadar yansızdır, 3D animasyon yalnızca dürüstçe seçilmiş bir sonucu sahneler, aynı motor her yerde çalışır ve bir atış inanca dayandırılmak yerine yeniden üretilip kontrol edilebilir.

Zarlar sizi ne sever ne de sizden nefret eder. Sadece yuvarlanırlar. Ve Mini Kraken'de dosdoğru yuvarlanırlar — böylece mekanizmayı merak etmeyi bırakıp asıl güzel şeylerin yaşandığı yere, hikâyeye dönebilirsiniz.