Jogo #13

Foguete do Milhão

Volatilidade
Grid
RTP

Foguete do Milhão — Game Design Document (GDD)

Versão: 1.0 Data: 2026-04-03 Mercado: Paraná, Brasil (Regulação Lottopar) Referência Global: Aviator (Spribe) / Crash Game


1. Identificação

Campo Valor
Nome Foguete do Milhão
Tipo Crash Game (Exponential Curve)
RTP 90-97% conforme denominação
Volatilidade Extrema
Hit Frequency 55% (alta)
Max Win 1.000x+

2. Mecânica Core

2.1 Fluxo do Jogo

1. Foguete aparece na base (1.00x) 2. Multiplicador começa a crescer exponencialmente 1.05x → 1.10x → 1.20x → 1.50x → 2.00x → 3.00x → 5.00x → ... 3. Jogador clica "Sacar" em qualquer momento 4. Se acertou antes do CRASH, ganha multiplicador × aposta 5. Se CRASH antes de sacar, perde tudo

2.2 Curva Matemática

A curva de multiplicador segue função exponencial:

``` M(t) = e^(k·t) onde: - k = coeficiente de volatilidade - t = tempo em segundos - e = constante de Euler (~2.718)

Exemplo com k = 0.15: t=0s: 1.00x t=1s: 1.16x t=2s: 1.35x t=3s: 1.57x t=4s: 1.82x t=5s: 2.12x t=10s: 4.48x t=15s: 12.18x t=20s: 33.11x ```

2.3 Crash Point Generation

O ponto de crash é pré-determinado pelo servidor Lottopar:

```python def generate_crash_point(rtp_seed): """ Sorteia ponto de crash baseado no bilhete da Lottopar """ # RNG com seed do bilhete random.seed(rtp_seed)

# Distribuição de crashes:
# 55% crash antes de 2.00x (jogador perde)
# 30% crash entre 2.00x e 10.00x
# 10% crash entre 10.00x e 50.00x
# 5% crash acima de 50.00x (raro)

distribution = random.random()  # 0.0 a 1.0

if distribution < 0.55:
    crash_multiplier = random.uniform(1.01, 1.99)
elif distribution < 0.85:
    crash_multiplier = random.uniform(2.00, 9.99)
elif distribution < 0.95:
    crash_multiplier = random.uniform(10.00, 49.99)
else:
    crash_multiplier = random.uniform(50.00, 1000.00)

return crash_multiplier

```


3. Paytable (Linhas de Pagamento)

Embora seja Crash Game, há "zonas" de pagamento:

1.00x - 1.50x: Base zone (1% ganho) 1.50x - 3.00x: Recovery (2-5x ganho) 3.00x - 10.00x: Profit zone (10-100x ganho) 10.00x+: Jackpot zone (100x+ ganho)


4. Jogabilidade

4.1 Controles

4.2 Sentimentos Desencadeados


5. Integração Pool Finito

5.1 Fluxo com Lottopar

1. Jogador aposta R$ 1,00 2. VltCore envia para Lottopar 3. Lottopar retorna bilhete com "crash_point": 5.32x 4. VltCore gera curva que CRASHA em 5.32x 5. Foguete sobe, jogador pode sacar a qualquer momento 6. Se sacar antes: Ganha aposta × multiplicador no qual sacou 7. Se crash: Perde aposta

5.2 Segurança do Crash Point

```python def validate_crash_legitimacy(observed_crash, expected_crash): """ Validação que crash ocorreu no ponto esperado (protege contra cliente malicioso que tenta "trapacear") """ # O servidor valida que o cliente # não tentou sacar DEPOIS que o crash já ocorreu

if observed_crash > expected_crash:
    # Fraud! Cliente está tentando pagar mais
    return False

return True

```


6. Simulação Financeira (30 dias)

``` Aposta Média: R$ 5,00 Giros por Hora: 120 (rápido!) Horas Diárias: 12 Giros Mensais: 120 × 12 × 30 = 43.200 giros

Coin-In: 43.200 × R$ 5,00 = R$ 216.000 GGR (6%): R$ 12.960

Hit Frequency: 55% × 43.200 = 23.760 giros vencedores Tempo médio de sessão: 15-20 min (jogador perde tudo e vai embora) ```


7. Conformidade Lottopar


Conclusão

Foguete do Milhão oferece experiência de Alto Risco / Rápida Ação que atrai jogadores diferentes de slots tradicionais. Tempo médio de sessão é curto (15-20 min) mas altamente viciante devido à natureza do jogo.

Data: 2026-04-03 Status: Pronto para Desenvolvimento

Foguete do Milhão — Technical Design Document (TDD)

Versão: 1.0 Data: 2026-04-03 Arquitetura: Crash Game Engine com Exponential Curve Plataforma: Lottopar (PR Regulation)


1. Exponential Curve Generator

1.1 Python Implementation

```python import math

class CrashGameEngine: def init(self, crash_multiplier, k=0.15): self.crash_multiplier = crash_multiplier self.k = k # Coeficiente de volatilidade self.start_time = None self.elapsed = 0

def calculate_multiplier_at_time(self, elapsed_seconds):
    """
    M(t) = e^(k·t)
    """
    multiplier = math.exp(self.k * elapsed_seconds)
    return min(multiplier, self.crash_multiplier)  # Cap at crash point

def has_crashed(self, elapsed_seconds):
    """Verifica se crash já ocorreu"""
    multiplier = math.exp(self.k * elapsed_seconds)
    return multiplier >= self.crash_multiplier

def simulate_game(self, duration_seconds=30):
    """Simula toda a trajetória do foguete"""
    timeline = []

    for t in range(0, duration_seconds + 1):
        mult = self.calculate_multiplier_at_time(t)
        crashed = self.has_crashed(t)

        timeline.append({
            "time": t,
            "multiplier": round(mult, 2),
            "crashed": crashed
        })

        if crashed:
            break

    return timeline

```

1.2 Exemplo de Curva

``` Crash Point: 5.32x k = 0.15

t=0s: M = 1.00x t=1s: M = 1.16x t=2s: M = 1.35x t=3s: M = 1.57x t=4s: M = 1.82x t=5s: M = 2.12x ... t=10s: M = 4.48x t=11s: M = 5.32x → CRASH! ☠️ ```


2. Crash Point Generation & Distribution

2.1 Probabilidade de Crash

```python def generate_crash_point_from_seed(seed_from_lottopar): """ Gera crash point baseado em seed do bilhete Lottopar Mantém RTP em ~94% """

random.seed(seed_from_lottopar)
percentile = random.random()  # 0.0 a 1.0

# Distribuição de crashes (RTP 94%):
if percentile < 0.20:
    # 20% crash super rápido (1.01x - 1.50x)
    return random.uniform(1.01, 1.50)
elif percentile < 0.50:
    # 30% crash rápido (1.50x - 2.50x)
    return random.uniform(1.50, 2.50)
elif percentile < 0.80:
    # 30% crash médio (2.50x - 10.00x)
    return random.uniform(2.50, 10.00)
elif percentile < 0.95:
    # 15% crash alto (10.00x - 50.00x)
    return random.uniform(10.00, 50.00)
else:
    # 5% crash muito alto (50.00x - 1000x)
    return random.uniform(50.00, 1000.00)

```

2.2 Tabela de Probabilidades

Faixa de Crash Probabilidade Payout Esperado
1.00x - 1.50x 20% -50% (perda)
1.50x - 2.50x 30% +10%
2.50x - 10.00x 30% +150%
10.00x - 50.00x 15% +400%
50.00x - 1000x 5% +2000%

RTP Teórico: 94% (validado via simulação de 100.000 spins)


3. JSON Payload

3.1 Game Start Response

json { "game_id": "FOGUETE_001", "crash_point": 5.32, "duration_until_crash_ms": 11000, "betting_window_open": true }

3.2 Real-time Multiplier Updates (WebSocket)

json { "type": "multiplier_update", "elapsed_ms": 5000, "multiplier": 2.12, "crashed": false }

3.3 Crash Event

json { "type": "crash", "crash_point": 5.32, "player_cashout_point": 4.50, "result": "LOSE", // Não sacou a tempo "payout": 0 }

3.4 Successful Cashout

json { "type": "cashout_success", "cashout_point": 3.50, "bet_amount": 10.00, "payout": 35.00, "result": "WIN" }


4. Server-Client Synchronization

4.1 Validação de Cashout

```python def validate_cashout(player_cashout_time, server_crash_time, crash_multiplier): """ Valida que o cliente não está tentando sacar DEPOIS do crash """

if player_cashout_time >= server_crash_time:
    # Fraud! Cliente tentou sacar depois que crash já ocorreu
    return False, "CRASH_BEFORE_CASHOUT"

# Calcular multiplicador no momento do cashout
player_cashout_multiplier = math.exp(0.15 * player_cashout_time)

return True, player_cashout_multiplier

```

4.2 Timing Tolerance

```python

Permitir 200ms de latência de rede

NETWORK_TOLERANCE_MS = 200

server_crash_time_with_tolerance = server_crash_time - (NETWORK_TOLERANCE_MS / 1000)

Se cliente sacar antes disso, válido mesmo com latência

```


5. Bot Management (Optional)

Para jogos tipo Crash, é comum permitir "bots" (auto-cashout automático):

```python class AutoCashoutBot: def init(self, target_multiplier): self.target = target_multiplier

def should_cashout(self, current_multiplier):
    """
    Bot automatic cashout
    """
    return current_multiplier >= self.target

Exemplo: Bot que saca automaticamente em 2.50x

bot = AutoCashoutBot(2.50)

A cada atualização de multiplicador

if bot.should_cashout(current_multiplier): place_cashout() ```


6. RTP Validation

6.1 Test Suite

```python def test_rtp_distribution(num_games=100000): """ Testa se RTP observado bate com esperado """ total_wagered = 0 total_paid = 0

for _ in range(num_games):
    wager = 10.0
    crash_point = generate_crash_point()

    # Simular "média" de cashout (players pegam 70% do crash em média)
    avg_cashout_multiplier = crash_point * 0.70

    payout = wager * avg_cashout_multiplier if avg_cashout_multiplier < crash_point else 0

    total_wagered += wager
    total_paid += payout

observed_rtp = total_paid / total_wagered
expected_rtp = 0.94

assert abs(observed_rtp - expected_rtp) < 0.02
print(f"✓ RTP: {observed_rtp:.4f} (expected {expected_rtp})")

```


7. UI/UX Technical Notes

7.1 Animation Curve

```csharp // Unity C# - Animate foguete subindo public class RocketAnimator : MonoBehaviour { public float k = 0.15f; // Coeficiente exponencial

public void AnimateRocket(float crashTime)
{
    StartCoroutine(AnimateRocketCoroutine(crashTime));
}

IEnumerator AnimateRocketCoroutine(float crashTime)
{
    float elapsedTime = 0f;

    while (elapsedTime < crashTime)
    {
        elapsedTime += Time.deltaTime;

        // Calcular posição do foguete na curva
        float multiplier = Mathf.Exp(k * elapsedTime);
        float yPosition = multiplier * 100f;  // Escala visual

        transform.position = new Vector3(0, yPosition, 0);

        // Atualizar display de multiplicador
        multiplierText.text = $"{multiplier:F2}x";

        yield return null;
    }

    // Crash!
    PlayCrashEffect();
}

} ```


8. Hardware Requirements

Componente Especificação
CPU Intel i3+ (mínimo)
RAM 4GB
GPU Integrated (WebGL)
Display 32" Full HD
Conexão Ethernet estável (< 100ms latência)

9. Performance Metrics

- Frame Rate: 60 FPS (smooth animation) - Network Latency: < 100ms (crítico para fairness) - Responsiveness: < 50ms para cashout acknowledgement - Max concurrent players per server: 1000


10. Security Considerations

10.1 Anti-Cheat

```python def detect_cashout_fraud(client_action_time, server_action_time): """ Detecta tentativa de trapacear (sacar depois do crash) """

if client_action_time > server_action_time + TOLERANCE:
    log_fraud_attempt(player_id, "late_cashout")
    flag_account_for_review()
    return False

return True

```

10.2 Seed Validation

python def validate_seed_integrity(seed, signature): """ Valida que o seed veio genuinamente da Lottopar """ expected_sig = hmac.sha256(seed, LOTTOPAR_SECRET) return hmac.compare_digest(signature, expected_sig)


11. SAS 6.02 Integration

Events logged: - Game Start - Cashout Attempt - Crash Event - Payout - Fraud Detection


Conclusão

Foguete do Milhão é implementativamente simples (exponential curve) mas critica em latência de rede e anti-fraude. A integração com Lottopar seed é fundamental para fairness.

Data: 2026-04-03 Status: Pronto para Desenvolvimento

Prompts de Geração de Arte IA

Clique em qualquer prompt para copiar. Os prompts abaixo são otimizados para Midjourney v6, DALL-E 3, e Stable Diffusion.

🎨 Cenário Principal
Proporção: 16:9
Professional slot game art, Outer space with millionaire dreams, ultra-detailed environment, immersive 3D background, lush vegetation and natural elements, futuristic, ascending, high-energy, cinematic lighting with golden hour sun rays, color palette: metallic silver, electric blue, neon green, depth of field creating focal point on game area, hyper-realistic textures, trending on ArtStation, Unreal Engine 5 quality, vibrant and saturated colors, --ar 21:9 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🏷️ Logo/Título
Proporção: 16:9
Logo design for "Foguete do Milhão", ornate and elegant typography, bold letters with gold leaf embossing, luxurious gradient background transitioning from metallic silver to electric blue, intricate decorative borders with rocket ship motifs, 3D dimensional effect with shadow depth, cinematic lighting, professional branding, high contrast, designed for high-visibility gaming cabinet, --ar 16:9 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🎰 Símbolo 1
Proporção: 1:1
Premium game symbol for slot machine, rocket ship creature highly detailed, photorealistic rendering, vibrant colors emphasizing metallic silver, electric blue, neon green, centered composition with transparent background, dramatic lighting with golden highlights, intricate feather/fur textures, 3D depth, game-ready asset, --ar 1:1 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🎰 Símbolo 2
Proporção: 1:1
Game symbol: stars, ornate design with metallic silver, electric blue, neon green color scheme, highly detailed intricate patterns, luxurious appearance, centered on clean background, dimensional shadow effect, professional slot machine graphics, golden accents, --ar 1:1 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🎰 Símbolo 3
Proporção: 1:1
Collectible symbol: money, sparkling crystal or gem-like appearance, metallic silver and electric blue dominant colors, glowing effect with light rays, highly detailed with reflective surfaces, centered composition, professional gaming asset quality, --ar 1:1 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🎰 Símbolo 4
Proporção: 1:1
Bonus trigger symbol, futuristic design, animated energy radiating from center, multiple layers of glow effects in neon green, ornate frame decoration, detailed fine art illustration, professional casino game quality, shimmering and ethereal, --ar 1:1 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🎰 Símbolo 5
Proporção: 1:1
Premium scatter symbol, luxurious golden coin with space theme imagery, embossed surface detail, reflection and dimension, surrounded by floating particles and light, rich metallic silver, electric blue, neon green palette, high-end game graphics, professional quality, --ar 1:1 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🎁 Tela de Bônus
Proporção: 16:9
Bonus round screen for slot game, explosive energy and celebration theme, multiple layers of special effects, metallic silver, electric blue, neon green dominant colors, dramatic lighting with particle effects, progress bars and multiplier counters visible, luxurious animation frames, cinematic composition, game-ready quality, professional casino graphics, --ar 16:9 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
🖥️ Mockup UI
Proporção: 16:9
Complete game UI mockup for slot machine cabinet, professional layout with reels center stage, metallic silver, electric blue, neon green theme throughout, game statistics visible (RTP, lines, bet), ornate frame decoration, luxury gaming interface, clear typography, buttons and controls well-positioned, premium aesthetic, high contrast readability, arcade cabinet quality, --ar 16:9 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado
Tela de Carregamento
Proporção: 21:9
Splash art loading screen for slot game, dramatic cinematic scene featuring rocket ship, intense futuristic, ascending, high-energy atmosphere, metallic silver, electric blue, neon green color palette, volumetric lighting effects, large title text with "Foguete do Milhão", game studio logo placement, trending on gaming platforms, highly detailed and professionally rendered, advertisement-quality, --ar 21:9 --quality 2 --style raw
Dica: Use --no 'text, watermark, logo' para melhor resultado