CYGANSOFT · DZIAŁ TECHNOLOGII GIER
Każda gra w CYGANSOFT definiowana jest przez 5 niezależnych wymiarów matematycznych. Model oparty na rozkładzie Pareto/power-law gwarantuje E[payout] = RTP × zakład w długim terminie.
E[mult | win] = RTP / HF
α = 8.0 − VOL × 6.95 (Pareto exponent)
xm = E[mult | win] × (α − 1) / α (min mult)
P(mult ≥ x) ≈ (xm / x)^α (power-law tail)
isWin = random() < HF
isJackpot = isWin && random() < JP
mult = isJackpot ? MX : pareto(xm, α)
payout = isWin ? ⌊bet × mult⌋ : 0
Return to Player – % monet zwracanych do gracza długoterminowo
Volatility – im wyżej, tym rzadsze ale większe wygrane
Częstotliwość trafień – prob. wygranej w pojedynczej rundzie
Maksymalny pułap mnożnika wygranej
Prawdopodobieństwo wyzwolenia Jackpota
| Studio | D1 – RTP | D2 – Zmienność | D3 – Hit Freq. | D4 – Max Mnożnik | D5 – Jackpot P. | E[mult|win] |
|---|---|---|---|---|---|---|
| 🎲 Kości | 97.2% | 0.18 | 49.0% | ×8 | 0.000% | ×1.98 |
| 🃏 Karty | 96.5% | 0.25 | 47.0% | ×12 | 0.000% | ×2.05 |
| 🌟 Apollo Games | 95.5% | 0.82 | 25.0% | ×500 | 0.200% | ×3.82 |
| 🎪 Cygański Karnawał | 95.5% | 0.65 | 35.0% | ×20 | 0.050% | ×2.73 |
| 🎰 Slots | 95.0% | 0.78 | 26.0% | ×250 | 0.120% | ×3.65 |
| 🤝 Multiplayer | 95.0% | 0.60 | 50.0% | ×8 | 0.000% | ×1.90 |
| 🎒 Studio Ekwipunku | 95.0% | 0.50 | 35.0% | ×50 | 0.100% | ×2.71 |
| 🎡 Koła | 94.8% | 0.50 | 34.0% | ×48 | 0.040% | ×2.79 |
| 🐟 Rybki Gazowane | 94.0% | 0.65 | 32.0% | ×50 | 0.050% | ×2.94 |
| 🔥 Cygański Obóz | 94.0% | 0.55 | 50.0% | ×10 | 0.000% | ×1.88 |
| ⛏️ Cygańska Kopalnia | 94.0% | 0.82 | 38.0% | ×49 | 0.200% | ×2.47 |
| ⚡ Instant | 93.5% | 0.88 | 22.0% | ×1000 | 0.250% | ×4.25 |
| 💣 Bunkier | 93.5% | 0.86 | 38.0% | ×50 | 0.150% | ×2.46 |
| 🔮 Tarot & Wróżby | 93.0% | 0.40 | 25.0% | ×50 | 1.000% | ×3.72 |
| 🐉 Dragons & Nightmares | 92.0% | 0.96 | 16.0% | ×2000 | 0.500% | ×5.75 |
| 🎩 Imperium Kartelu | 92.0% | 0.90 | 20.0% | ×100 | 0.500% | ×4.60 |
Wyniki pochodzą ze schematu zobowiązanie–ujawnienie (commit–reveal) na HMAC-SHA256. Przed grą pokazujemy tylko SHA-256(serverSeed); po rotacji seedów ujawniamy serverSeed i każdą rundę można przeliczyć samodzielnie, offline. Dowód rundy zapisujemy w historii transakcji.
block_r = HMAC_SHA256(serverSeed, clientSeed + ":" + nonce + ":" + r)
bajty pobierane po 4:
float = b0/256 + b1/256² + b2/256³ + b3/256⁴ → [0, 1)
uint32 = (b0<<24)|(b1<<16)|(b2<<8)|b3 (big-endian)
int(min,max) = rejection sampling → rozkład IDEALNIE jednostajny
commitment: serverSeedHash = SHA-256(serverSeed)Rejection sampling odrzuca „ogon" nie dzielący się przez zakres — dzięki temu nie ma biasu modulo. Pełny weryfikator (z Twoimi aktywnymi seedami i testem na żywo) jest na /weryfikacja.