Jogo #10

Diamantes do Garimpo

Volatilidade
Grid
RTP

Game Design Document (GDD)

Diamantes do Garimpo (Jogo #10)

Versão: 1.0 Data: 2026-04-03 Mercado: VLT Paraná / Lottopar Referência: Da Vinci Diamonds (IGT) / Gonzo's Quest (NetEnt) Tema: Garimpo Brasileiro, Serra Pelada, Pedras Preciosas e Explosões


1. Visão Geral

Diamantes do Garimpo encerra o primeiro bloco com uma das mecânicas mais fascinantes e matematicamente complexas da indústria: os Tumbling Reels (Rolos em Cascata).

Este jogo quebra a lógica tradicional de "um giro = um resultado". Uma única aposta pode gerar uma reação em cadeia de vitórias infinitas com multiplicadores progressivos (até 15x).

Este jogo destaca-se por: - Mecânica de Cascata (símbolos explodem e caem) - Multiplicador Progressivo (1x, 2x, 3x, 5x, 15x) - Grid 5x3 com 20 Linhas (simplicidade + potencial) - Free Spins com Retriggers (sessões longas) - Volatilidade Alta (mais arriscado)


2. Estrutura de Apostas

Parâmetro Valor
Grid 5 Colunas x 3 Linhas
Linhas de Pagamento 20 Fixas
Aposta Fixa de 20 créditos (R$ 0,20 em modo 0,01)
Wild Dinamite (substitui todos exc. Bônus)
Bonus Entrada da Mina (3 = Free Spins)

3. Tabela de Símbolos e Paytable

3.1 Símbolos Principais

Símbolo 5x 4x 3x Função
Diamante Bruto 2.500x 250x 50x Jackpot da linha
Esmeralda 1.000x 100x 30x Alta
Rubi / Safira 500x 50x 20x Médio
Pepita de Ouro 200x 25x 10x Baixo/Médio
Bateia / Picareta 100x 15x 5x Filler
Dinamite (Wild) Substitui (exc. Bônus)
Entrada Mina (Bonus) Gatilho 3 = Free Spins

3.2 Estrutura de Prêmios


4. Mecânica Core: Tumbling Reels (Cascatas)

4.1 Física da Gravidade

``` Giro Inicial: ┌─────────────────┐ │ D E S R P │ │ R O S O O │ │ P E P W G │ └─────────────────┘

Linha 2 (D-O-S-O-O) VENCE! → 500x aposta

EXPLOSÃO: Símbolos em linha explodem

┌─────────────────┐ │ ◊ ◊ ◊ ◊ ◊ │ (Fantasma - Buffer oculto) │ D E S R P │ │ R O S O O │ │ P E P █ G │ (Vazio onde explosão) └─────────────────┘

QUEDA: Símbolos caem para preencher vazios

┌─────────────────┐ │ ◊ ◊ ◊ ◊ ◊ │ │ D E S R P │ │ R O █ O O │ │ P E P █ G │ └─────────────────┘

NOVO SÍMBOLO CAI DO TOPO (Phantom Buffer)

┌─────────────────┐ │ ◊ ◊ ◊ ◊ ◊ │ │ D E S R P │ │ R O D O O │ │ P E P S G │ └─────────────────┘

NOVO CÁLCULO: Linha 3 (P-E-P-S-G) NÃO vence Fim da cascata ```

4.2 Taxa de Decaimento (Decay Rate)

Probabilidade diminui a cada cascata para evitar pagamentos infinitos:

Cascata Probabilidade (RTP 94%) RTP 90% RTP 97%
Inicial (Giro) 25% de vitória 20% 30%
Cascata 1 15% de nova vitória 12% 18%
Cascata 2 8% de nova vitória 6% 10%
Cascata 3+ < 4% de nova vitória 2% 6%

4.3 Multiplicador Progressivo (Avalanche Multiplier)

Sequência de Cascata Multiplicador (Base) Multiplicador (Free Spins)
Giro Inicial 1x 3x
1ª Cascata (Drop 1) 2x 6x
2ª Cascata (Drop 2) 3x 9x
3ª Cascata ou mais 5x 15x

Exemplo: Giro Inicial: Linha de Pepitas (100x aposta) Cascata 1: Linha de Ouro (50x aposta) × 2x multiplicador = 100x Cascata 2: Linha de Safira (20x aposta) × 3x multiplicador = 60x Total: 100 + 100 + 60 = 260x aposta em um único giro!


5. Reel Strip Configuration (150-200 Paradas)

5.1 Comprimento Estendido

Para suportar cascatas longas:

Rolo Total Paradas Propósito
Rolo 1 150 Filtro de entrada
Rolo 2 180 Centro esquerdo
Rolo 3 180 Centro (maior densidade)
Rolo 4 180 Centro direito
Rolo 5 150 Filtro de saída

5.2 Técnica de Clustering

Estrutura de Rolo 3 (180 Paradas) - Exemplo:

Índice Símbolo Propósito ──────────────────────────────────────────── 00-09 Pepita x10 Cluster A (facilita cascata) 10-19 Símbolos Baixos Spacer 20-29 Diamante x10 Cluster B (jackpot potencial) 30-34 Safira, Rubi High break 35-44 Dinamite x10 Cluster C (Wild facilita conexão) 45-59 Símbolos Baixos Spacer 60-69 Esmeralda x10 Cluster D 70-79 Símbolos Baixos Spacer ... padrão continua

Propósito dos Clusters: - Se uma linha explode, bloco de 5-10 símbolos iguais cai inteiro - Aumenta drasticamente chance de formar nova linha - Cria ilusão de "mágica" sem ser RNG puro


6. Bônus: "Mina Profunda" (Free Spins)

6.1 Gatilho

6.2 Mudança Matemática no Bônus

Durante Free Spins:

Mudança Efeito
Remoção de símbolos baixos 40% reduzidos (menos "lixo")
Multiplicadores aumentados Começam em 3x (não 1x)
Densidade de Wilds +20% mais Dinamite
Retrigger possível Acertar 3 "Entrada Mina" novamente = +5 giros

6.3 Retrigger Mechanics

``` Frequência de Retrigger (RTP 94%): - 1 em cada 12 bônus (8%) - Máximo 15 retriggers por sessão (para evitar loops infinitos)

Comportamento: - Se retrigger acionado durante cascata: +5 giros adicionais - Multiplicador permanece travado no seu nível máximo (15x) - Exemplos de sessão: * 6 giros iniciais * Retrigger 1: +5 (total 11) * Retrigger 2: +5 (total 16) * Sem mais retriggers * Total: 16 free spins = potencial 16 * (multiplicador médio) * linha_média ```


7. Diferenciação de RTP (90% a 97%)

7.1 RTP 90% - "Rua"

7.2 RTP 94% - "Padrão"

7.3 RTP 97% - "VIP"

7.4 Ajuste de Algoritmo

``` IF rtp_profile == 97: FOR new_symbol in falling_symbols: IF previous_symbol_type == "Diamante": chance_diamante += 0.20 chance_wild += 0.15

    IF previous_symbol_type == "Wild":
        chance_any_high_value += 0.25

```


8. Integração com Pool Finito (Lottopar)

8.1 Construção de Cenário (Backward Construction)

Entrada: Servidor determina prêmio de R$ 80,00

``` Step 1: Script Builder seleciona sequência

Sequência montada: 1. Giro Inicial: Linha de Picaretas (R$ 10,00) → Explode 2. Cascata 1: Linha de Pepitas (R$ 20,00) com 2x = R$ 40,00 → Explode 3. Cascata 2: 3 Esmeraldas (R$ 50,00) com 3x = R$ 150,00... muito! → Ajusta para R$ 30,00 × 3x = R$ 90,00... ainda não → Usa R$ 20 base × 2x = R$ 40 na cascata 2

Recalculado: - Giro Inicial: R$ 10 - Cascata 1: R$ 20 × 2x = R$ 40 - Cascata 2: R$ 20 × 2x = R$ 40 - Cascata 3: Símbolos não formam linha (sem vitória) - Total: R$ 10 + R$ 40 + R$ 40 = R$ 90... off by R$ 10

AJUSTE: Giro inicial = R$ 20, Cascata 1 = R$ 30 × 2x = R$ 60 Total: R$ 20 + R$ 60 = R$ 80 ✓

Step 2: Monta o Grid - Coloca símbolos para ganhar R$ 20 na linha base - Coloca símbolos no Phantom Buffer que formarão R$ 30 na cascata - Garante que símbolos seguintes não formem linha (Kill Screen)

Step 3: Jogador vê sequência alucinante - Não sabe que resultado final já era exato - Sente emoção do "quase ganhar mais" ```

8.2 Validação e Segurança

``` FUNCTION ValidateTumblingOutcome(prize_amount, cascades_data): calculated_sum = 0

FOR cascade_num = 0 TO cascades_data.length:
    line_win = cascades_data[cascade_num].win_amount
    multiplier = cascades_data[cascade_num].multiplier

    calculated_sum += (line_win * multiplier)

IF calculated_sum != prize_amount:
    ALERT "Tumbling Outcome Validation Failed"
    LOG_CRITICAL_ERROR
    // Fallback: Entrega prêmio original de qualquer forma
    PAYOUT = prize_amount
    REQUEST_ADMIN_AUDIT

RETURN (calculated_sum == prize_amount)

END FUNCTION ```


9. Análise Financeira Mensal

Métrica Valor
Volatilidade Média-Alta
Hit Frequency 38% (considerando 1ª vitória)
Coin-In Mensal R$ 490.000,00
GGR (6%) R$ 29.400,00
Tempo Médio/Giro 5-8 segundos (animações de queda)

9.1 Características Operacionais


10. Design de Áudio e Física

10.1 Física de Queda

``` Comportamento: - Símbolos pesados (Diamante, Ouro): Caem rápido, som grave ("Thud") - Símbolos leves (Picareta): Caem lento, som agudo ("Clack") - Vidro/Cristal (Esmeralda): Som cristalino

Timing de Cascata: 1. Linha vence → Highlight (0.5s) 2. Explosão de pedras → Partículas de poeira (0.3s) 3. Pausa dramática (0.2s) 4. Novas pedras caem (0.4s) Total ciclo: 1.4-1.5 segundos (não tedioso, não confuso) ```

10.2 Design de Áudio Completo

Evento Áudio
Giro Som de picareta batendo pedra
Linha Vence Som de cristal quebrando
Cascata Percussão acelerada, pedras caindo
Multiplicador Sobe Orc orquestra cresce
Fim Cascata Estrondo abafado (encerramento)
Free Spins Transição mágica + som aquático

11. Compliance e Notas Lottopar

11.1 Pontos de Auditoria Críticos

11.2 Complexidade Máxima

Este é o jogo mais complexo do portfólio: - Algoritmo de cascata em cascata - Multiplicadores progressivos - Buffer fantasma (renderização off-screen) - Integração Pool Finito com sequência de eventos - Audiência final observando "acaso" que é determinístico


12. Especificações Técnicas Resumidas

Aspecto Detalhe
Engine Cascading Grid + Progressive Multiplier
Grid 5x3 (15 visíveis + 15 no Phantom Buffer)
Linhas 20 (fixas)
Hit Frequency 38% (giro inicial)
RTP Range 90% a 97%
Volatilidade Média-Alta (possibilidade de combos explosivos)
Multiplicador Máx 15x (Free Spins)

Fim do GDD - Diamantes do Garimpo

Versão 1.0 | Oktop.AI | 2026-04-03

Technical Design Document (TDD)

Diamantes do Garimpo (Jogo #10)

Versão: 1.0 Data: 2026-04-03 Mercado: VLT Paraná / Lottopar Compliance: GLI-11, SAS 7.03, G2S 1.4


1. Visão Geral da Arquitetura

Diamantes do Garimpo implementa o sistema mais sofisticado do portfólio:

┌─────────────────────────────────────┐ │ PHANTOM BUFFER SYSTEM │ ├─────────────────────────────────────┤ │ [5 Colunas x 10 Linhas Ocultas] │ │ (Símbolos pré-carregados) │ ├─────────────────────────────────────┤ │ VIEWPORT (Área Visível) │ │ [5 Colunas x 3 Linhas Visíveis] │ └─────────────────────────────────────┘ ↓ (Quando explosão) Símbolos caem do Buffer

O software não gera símbolos aleatoriamente na hora. Ele pré-carrega uma matriz de 5x10 com todos os símbolos que irão cair nas próximas cascatas.


2. Estrutura de Dados: Phantom Buffer

2.1 Matrix Definition

```cpp typedef struct { int symbol_id; // ID do símbolo (0-11) bool is_winning_line; // Pertence a linha vencedora? int cascade_number; // Que cascata este símbolo "cairá"? } GridCell;

GridCell grid[5][10]; // 5 colunas x 10 linhas (50 células) // Linhas 0-2: Visíveis // Linhas 3-9: Phantom Buffer ```

2.2 Inicialização de Grid

``` FUNCTION InitializeGrid(parent_seed, prize_amount, rtp_profile): state = RNG_Initialize(parent_seed)

// Step 1: Backward Construction
cascades_script = GenerateCascadesScript(prize_amount)

// Step 2: Preenche Grid com símbolos
FOR col = 1 TO 5:
    FOR row = 0 TO 9:
        symbol_id = SelectSymbolForCascade(
            col, row,
            cascades_script,
            state,
            rtp_profile
        )
        grid[col][row].symbol_id = symbol_id

// Step 3: Marca células vencedoras
MarkWinningCells(grid, cascades_script)

RETURN grid

END FUNCTION ```


3. Outcome Builder: Backward Construction

3.1 Algoritmo de Geração de Cascatas

``` FUNCTION GenerateCascadesScript(prize_amount): // Exemplo: prize_amount = R$ 80 = 400x (aposta de 20 créditos)

cascades = []
remaining = prize_amount

// Cascata 0 (Giro Inicial)
cascade_0_win = SelectLineWinValue(remaining, rtp_profile)
// Retorna R$ 10 (primeira cascata)
cascades[0] = {
    win_amount: 10,
    multiplier: 1x,
    line_pattern: [0, 0, 0, 0, 0]  // Linha horizontal no topo
}
remaining -= 10  // R$ 70 restante

// Cascata 1
cascade_1_win = SelectLineWinValue(remaining, rtp_profile)
// Retorna R$ 35 (pode ser multiplicado por 2x)
cascades[1] = {
    win_amount: 35,
    multiplier: 2x,
    line_pattern: [1, 1, 1, 1, 1]  // Linha no meio
}
remaining -= (35 * 2)  // Remaining = 70 - 70 = 0

// Se remaining ainda > 0, adiciona mais cascatas
// Se remaining == 0, Kill Screen (próximos símbolos não formam linha)

cascades[2] = {
    win_amount: 0,
    multiplier: 1x,
    line_pattern: KILL_SCREEN  // Nenhuma linha vence
}

RETURN cascades

END FUNCTION ```

3.2 Script de Exemplo Prático

``` Prize: R$ 80 (400 multiplicador / aposta 20 créditos)

Cascatas necessárias: Cascata 0: 100 (1x) = 100 Cascata 1: 150 (2x) = 300 Cascata 2: 0 (Kill Screen) Total: 400 ✓

Símbolos colocados: Viewport inicial (linhas 0-2): Pepitas (100x valor) Phantom linha 3-4: Esmeralds (150x valor) Phantom linha 5+: Mistura sem padrão vencedor ```


4. Cálculo de Linhas e Multiplicadores

4.1 Evaluation Engine

``` FUNCTION EvaluateAllLines(grid[5][3]): total_win = 0 paying_lines_count = 0

FOR line_num = 1 TO 20:
    payline_cells = GetPaylineCells(line_num, grid)
    // payline_cells = [cell(reel1, pos), cell(reel2, pos), ...]

    IF IsMatchingLine(payline_cells):
        base_win = CalculateLineValue(payline_cells)
        cascade_number = GetCascadeNumber(payline_cells)
        multiplier = GetMultiplierForCascade(cascade_number)

        line_win = base_win * multiplier

        total_win += line_win
        paying_lines_count++

RETURN {
    total_win: total_win,
    paying_lines: paying_lines_count,
    average_multiplier: total_win / paying_lines_count
}

END FUNCTION ```

4.2 Multiplicador por Cascata

``` Tabela de Multiplicadores (RTP 94%):

Cascata 0 (Spin Inicial): 1x Cascata 1 (1ª queda): 2x Cascata 2 (2ª queda): 3x Cascata 3+ (3ª+ quedas): 5x

Free Spins Modificado: Cascata 0: 3x Cascata 1: 6x Cascata 2: 9x Cascata 3+: 15x (travado para não aumentar mais) ```


5. Reel Strip Configuration

5.1 Estrutura de Fitas Longas (150-200 Paradas)

Rolo 1 (150 Paradas)

Índice Símbolo Propósito ──────────────────────────────────────────── 00-14 Picareta x15 Cluster A 15-24 Símbolos Baixos Spacer 25-39 Diamante x15 Cluster B (raro) 40-49 Ouro x10 Cluster C ... (continua padrão)

Rolo 3 (180 Paradas) - Centro (Máxima Densidade)

Índice Símbolo Propósito ──────────────────────────────────────────── 00-09 Pepita x10 Cluster A (comum) 10-24 Baixos Spacer 25-34 Dinamite x10 Cluster B (Wild) 35-49 Baixos Spacer 50-64 Esmeralda x15 Cluster C (jackpot) ... (padrão se repete)

5.2 Density Map

Rolo Cluster 1 Cluster 2 Cluster 3 Espaçamento Propósito
1 15% 10% 10% 65% Filtro entrada
2 20% 15% 15% 50% Centro esq
3 25% 20% 20% 35% Centro máx
4 20% 15% 15% 50% Centro dir
5 15% 10% 10% 65% Filtro saída

6. Decay Rate: Probabilidade de Continuidade

6.1 Tabela de Decay (RTP Profiles)

``` TABLE Decay_Probability ( rtp_profile INT, cascade_num INT, continuation_rate DECIMAL(5,4) )

Data: RTP 90%: (90, 0→1, 0.20), -- 20% chance cascata 1 ocorra (90, 1→2, 0.40), -- 40% chance cascata 2 ocorra (90, 2→3, 0.30), -- 30% chance cascata 3 ocorra (90, 3→4, 0.10), -- 10% chance cascata 4 ocorra

RTP 94%: (94, 0→1, 0.25), (94, 1→2, 0.55), -- "Moment of Inertia" (94, 2→3, 0.45), (94, 3→4, 0.25),

RTP 97%: (97, 0→1, 0.30), (97, 1→2, 0.70), -- Muito maior! (97, 2→3, 0.65), (97, 3→4, 0.50), -- Possibilidade realista de 5+ cascatas ```

6.2 Verificação de Continuidade

``` FUNCTION ShouldContinueCascade(cascade_num, rtp_profile): decay_prob = LOOKUP_TABLE[rtp_profile][cascade_num]

if RNG.Next(0.0, 1.0) < decay_prob:
    RETURN TRUE  // Próxima cascata acontece
ELSE:
    RETURN FALSE  // Kill Screen - fim da jogada

END FUNCTION ```


7. Free Spins Mechanics

7.1 Trigger Detection

``` FUNCTION CheckMineEntranceTrigger(grid[5][3]): trigger_count = 0 trigger_lines = []

FOR line_num = 1 TO 20:
    payline = GetPaylineSymbols(line_num, grid)

    IF CountSymbols(payline, MINE_ENTRANCE) >= 3:
        trigger_count++
        trigger_lines.Add(line_num)

IF trigger_count >= 3:
    RETURN {
        triggered: TRUE,
        initial_spins: 6,
        trigger_lines: trigger_lines
    }
ELSE:
    RETURN {triggered: FALSE}

END FUNCTION ```

7.2 Reel Modification em Free Spins

``` FUNCTION ModifyReelsForFreeSpins(): // Remove símbolos baixos dos rolos FOR each reel in (1 TO 5): low_value_symbols = [PICARETA, BATEIA] FOR symbol in low_value_symbols: COUNT_IN_REEL[reel][symbol] *= 0.6 // Remove 40%

// Aumenta densidade de Wilds
FOR each reel:
    DENSITY[reel][DINAMITE] *= 1.3

// Aumenta multiplicador base
// (multiplicador começa em 3x em vez de 1x)

END FUNCTION ```

7.3 Retrigger Mechanics

``` MAX_RETRIGS_PER_SESSION = 15

FUNCTION CheckFreeSpinsRetrigger(free_spins_grid[5][3]): retrig_count = CountMineEntrances(free_spins_grid)

IF retrig_count >= 3 AND current_retrigs < MAX_RETRIGS_PER_SESSION:
    // Multiplicador fica travado em 15x para resto do bônus
    LOCK_MULTIPLIER = 15x

    RETURN {
        retriggered: TRUE,
        additional_spins: 5,
        multiplier_locked: TRUE
    }
ELSE:
    RETURN {retriggered: FALSE}

END FUNCTION ```


8. SAS/G2S Integration

8.1 SAS 7.03 Configuration

SAS_CONFIG: machine_id: 0x000A denomination: BRL max_bet: 20 (créditos fixos) max_win: 50000000 (50 milhões teórico com cascatas) game_features: 0x0C // Bonus + Cascading reel_type: 3 // Virtual reels

8.2 Critical Polling

Poll Content Frequency
01 Cascade in Progress? 2s
86 Cascade Count, Multiplier Level 5s
17 Final Payout after All Cascades 10s

9. Hardware Requirements (Demanding!)

Component Specification
CPU Intel i7-8700 (multi-thread para cascatas)
RAM 16 GB (buffer fantasma + cache)
GPU GeForce GTX 1080 (physics sim + particles)
FPS Target 60fps (queda de símbolos smooth)
Storage 1 TB SSD (muitas texturas)
Physics GPU-accelerated physics (NVIDIA CUDA)

10. Seed Management Complexo

10.1 Seed Chain para Cascatas

``` FUNCTION GenerateCascadingOutcome(parent_seed): state = RNG_Initialize(parent_seed)

// Cascata 0 (Giro inicial)
FOR col = 1 TO 5:
    FOR row = 0 TO 2:
        grid[col][row] = SelectSymbol(state.NextInt())

// Seed para cascata 1
cascade_1_seed = state.NextInt(2^32)
// ... preenche linhas 3-4 do buffer

// Seed para cascata 2
cascade_2_seed = state.NextInt(2^32)
// ... preenche linhas 5-6

// Continue até não haver mais cascatas

RETURN {
    grid: grid,
    cascade_seeds: [cascade_1_seed, cascade_2_seed, ...],
    final_payout: calculated_total
}

END FUNCTION ```

10.2 Audit Logging Completo

``` TABLE Cascade_Audit ( cascade_id INT PRIMARY KEY, session_id INT64, spin_number INT, parent_seed BIGINT,

-- Para cada cascata
cascade_0_seed BIGINT,
cascade_0_grid JSON,
cascade_0_payout DECIMAL(10,2),
cascade_0_multiplier INT,

cascade_1_seed BIGINT,
cascade_1_grid JSON,
cascade_1_payout DECIMAL(10,2),
cascade_1_multiplier INT,

... (até 10 cascatas possíveis)

total_cascade_count INT,
total_payout DECIMAL(10,2),
original_prize DECIMAL(10,2),
timestamp DATETIME,
auditor_verified BOOLEAN

) ```


11. Validation & Safety Checks

11.1 Sum Validation

``` FUNCTION ValidateCascadingSum(cascades_data, original_prize): calculated_total = 0

FOR cascade in cascades_data:
    win = cascade.win_amount
    multiplier = cascade.multiplier
    calculated_total += (win * multiplier)

IF calculated_total != original_prize:
    ALERT "Cascading Outcome Sum Mismatch"
    LOG_CRITICAL {
        expected: original_prize,
        calculated: calculated_total,
        difference: original_prize - calculated_total
    }

    // Segurança: Sempre paga o prêmio original
    FORCE_PAYOUT = original_prize
    REQUEST_AUDIT

RETURN (calculated_total == original_prize)

END FUNCTION ```

11.2 Cascade Limit Protection

``` MAX_CASCADES = 10 // Limite de segurança

IF cascade_count > MAX_CASCADES: ALERT "Cascade Limit Exceeded" FORCE_KILL_SCREEN() // Para todas cascatas PAYOUT = current_accumulated_total LOG_EVENT type: "SAFETY_TRIGGER" ```


12. Performance Optimization

12.1 Rendering Pipeline

``` Phase 1: Background Render (off-screen) → Phantom Buffer (linhas 3-9) pré-renderizado

Phase 2: Viewport Render → Apenas linhas 0-2 visíveis em tempo real → Atualiza a cada frame (queda de símbolos)

Phase 3: Cascade Animation → Cria camadas de partículas para explosão → Interpolação linear para queda (não RNG, determinístico visualmente) ```

12.2 Memory Management

``` Pré-alocação: - Buffer de 5x10 = 50 células (permanente) - Cache de texturas (1000+ sprites) = 500MB GPU - Partícula pool = 10.000 particles pré-alocados

Durante cascata: - Nada é alocado dinamicamente - Apenas modificação de valores em matriz existente - Reutilização de particle pool ```


13. Validation Tests

ID Test Expected Status
T001 Sum of cascades = Prize
T002 Multiplier application Correct per cascade
T003 Free Spins retrigger +5 spins when 3+ mines
T004 Decay rate RTP90 vs 97 Different probabilities
T005 Max cascade limit Stops at 10
T006 Seed tracking Every cascade logged
T007 Phantom buffer Correct pre-loading
T008 GPU physics 60fps smooth fall

14. Troubleshooting Guide

Problema Causa Solução
Cascata não ativa Kill Screen too early Ajustar decay_rate
Símbolos "pulam" na queda Physics engine bug Validar interpolação
Free Spins não triggera Trigger detection erro Verificar reel strips
Soma cascatas != prize Backward construction erro Recalcular script

Fim do TDD - Diamantes do Garimpo

Versão 1.0 | Oktop.AI | 2026-04-03

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, Brazilian diamond mine with treasures, ultra-detailed environment, immersive 3D background, lush vegetation and natural elements, precious, glittering, treasure, cinematic lighting with golden hour sun rays, color palette: bright diamond sparkle, dark earth, gold, 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 "Diamantes do Garimpo", ornate and elegant typography, bold letters with gold leaf embossing, luxurious gradient background transitioning from bright diamond sparkle to dark earth, intricate decorative borders with diamonds 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, diamonds creature highly detailed, photorealistic rendering, vibrant colors emphasizing bright diamond sparkle, dark earth, gold, 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: mining equipment, ornate design with bright diamond sparkle, dark earth, gold 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: gold nuggets, sparkling crystal or gem-like appearance, bright diamond sparkle and dark earth 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, crystal formations, animated energy radiating from center, multiple layers of glow effects in gold, 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 miners imagery, embossed surface detail, reflection and dimension, surrounded by floating particles and light, rich bright diamond sparkle, dark earth, gold 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, bright diamond sparkle, dark earth, gold 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, bright diamond sparkle, dark earth, gold 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 diamonds, intense precious, glittering, treasure atmosphere, bright diamond sparkle, dark earth, gold color palette, volumetric lighting effects, large title text with "Diamantes do Garimpo", 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