7 Balanceamento
Caio Simioni edited this page 2026-10-12 21:49:31 -03:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Balanceamento

Fonte única dos números (v0.2 — FPS, inimigos que atiram). O código lê de um módulo de tunables (no crate do jogo). Valores marcados (inicial) são hipóteses a validar em playtest.

Jogador

Tunable Valor
player.max_hp 100
player.regen_delay_s 5
player.regen_per_s 25
player.speed_mps 5,0
player.sprint_speed_mps 7,5 (× 1,5, segurando Shift para a frente)
player.stamina 100; gasta 25/s correndo (4 s); volta 20/s após 1 s sem correr (5 s para encher)
player.stamina_recover_to_sprint 30 (depois de zerar, só corre de novo com 30% do fôlego)
player.eye_height_m 1,7
player.radius_m 0,4
camera.fov_deg 70

Armas

Arma Dano Pellets Cadência (/s) Pente Reserva Recarga (s) Spread (°) Alcance (m) Preço Munição (reserva cheia)
Faca 55 — 1,7 — — — cone 110° 1,9 0 —
Pistola 25 1 4 12 96 1,3 1,0 60 0 60
Escopeta 14 8 1,2 6 42 2,4 7 (cone) 15 ef. 500 100
Fuzil 20 1 10 30 180 2,0 1,5 → 5 80 1000 150
  • Cabeça: dano × 2 (todas as armas de fogo); faca não tem multiplicador.
  • Escopeta — queda de dano: 100% até 7 m, linear até 40% aos 15 m.

DPS teórico (alvo único)

Arma DPS
Faca 93,5
Pistola 100
Escopeta 134
Fuzil 200

Tiros para matar — Fuzileiro, round 1 (60 HP)

Arma Corpo Cabeça
Faca 2 2
Pistola 3 2
Escopeta (perto) 1 rajada 1 rajada
Fuzil 3 2

Inimigo — Fuzileiro hostil (inicial)

Tunable Valor
enemy.hp 60 (× 1,10/round)
enemy.speed 3,0 + 0,1/round, teto 4,5
enemy.preferred_range_m 10–16
enemy.too_close_m 6
enemy.burst_shots 3 (a cada 0,15 s)
enemy.burst_pause_s 1,5
enemy.telegraph_s 0,4
enemy.damage_per_shot 6
enemy.spread_deg 4

Dano teórico máximo por inimigo: 3 × 6 / 1,65 s ≈ 11 DPS; com ~35% de acerto a 12 m ≈ 4 DPS. Com 8 inimigos atirando e sem cobertura ≈ 30–40 DPS: jogador (100 HP) sobrevive ~3 s a céu aberto → cobertura é obrigatória (objetivo de design).

Rounds 1–10

Round Inimigos Vivos (teto) Vida Velocidade (m/s) Intervalo spawn (s) Pontos possíveis*
1 6 8 60 3,0 2,5 360 + hits
2 10 10 66 3,1 2,4 600 + hits
3 14 12 73 3,2 2,3 840 + hits
4 18 14 80 3,3 2,2 1080 + hits
5 22 16 88 3,4 2,1 1320 + hits
6 26 16 97 3,5 2,0 1560 + hits
7 30 16 106 3,6 1,9 1800 + hits
8 34 16 117 3,7 1,8 2040 + hits
9 38 16 129 3,8 1,7 2280 + hits
10 42 16 142 3,9 1,6 2520 + hits

* Só abates a 60 pts; some acertos (+10, cabeça +20) e o bônus de round 50 + 25·N.

Economia

Evento Pontos
Acerto +10 (cabeça +20)
Abate +60
Abate com faca +130
Bônus de round 50 + 25·N

Dinheiro e pontos (v0.3)

  • Dinheiro = saldo gastável (aparece no HUD junto da munição). Pontos = tudo o que já foi ganho; nunca diminui.
  • Toda recompensa soma nos dois; comprar só reduz o dinheiro.
Tunable Valor
economy.starting_money 500 (provisório, estilo CoD Zombies; o GDD previa 0 — rever quando houver inimigos)
economy.kill_reward 60
Arma Preço Munição (reserva cheia)
Pistola C96 100 (novo: recomprar após trocar) 60
Escopeta 500 100
Fuzil PPSh 1000 150

Zumbis, rounds e armas (v0.1.2-dev — em vigor no jogo)

Substitui as tabelas do fuzileiro hostil acima enquanto ele não existir (ADR-012). Fonte no código: crates/survivors/src/tunables.rs e weapons.rs.

Tunable Valor
zombie.hp(N) N facadas até o round 10 (50, 100, 150 … 500); depois +25 por round (1500 no round 50)
zombie.speed(N) rounds 1–4: 1,7 m/s (andando); do round 5 em diante: min(2,9 + 0,06·(N−1), 4,3) m/s (correndo); ±15% por indivíduo (jogador: 5,0)
zombie.damage / alcance 34 por golpe (3 tapas matam o jogador) / 1,15 m
zombie.windup / intervalo 0,35 s de reação / 1,0 s entre golpes (recuar a tempo evita o dano)
player.max_hp / regeneração 100 / após 5 s sem dano, 25 HP/s
round.enemies(N) 6 + 3·(N−1) → 6, 9, 12 … 153 no round 50
round.max_alive(N) min(8 + 2·N, 24)
round.group_size(N) 2 no round 1, 3 no round 2, 4 do round 3 em diante
round.spawn_interval(N) max(4,0 − 0,1·(N−1), 1,2) s entre grupos
Primeiro round / intermissão 4 s / 8 s
round.max 50 (concluir = vitória)

Recompensas (dinheiro e pontos)

Evento Valor
Acerto de tiro +10
Acerto de tiro na cabeça +20
Acerto de facada +30
Abate a tiro +60
Abate com faca +130
Round limpo 50 + 25·N

Um abate soma o acerto e o abate: matar com uma facada rende 160; com um tiro na cabeça, 80.

Armas

Arma Dano Projéteis Espalhamento (meio-ângulo) Alcance Velocidade do projétil Cabeça
Faca 50 — cone de 55° 1,9 m — (acerta na hora) ×1
Pistola C96 25 1 0,5° 60 m 140 m/s ×2
Escopeta 14 8 3,5° 30 m 110 m/s ×2
Fuzil PPSh 20 1 1,2° 80 m 160 m/s ×2
  • Os tiros são projéteis (ADR-015): voam em linha reta, sem queda, e somem ao bater no cenário, num alvo ou no fim do alcance. A 20 m o projétil da pistola leva ~0,14 s para chegar: alvo correndo de lado pede um pouco de antecipação.
  • Ainda não implementado: queda de dano da escopeta com a distância e espalhamento crescente do fuzil.

Marcador de acerto (X na mira)

Situação Cor Tamanho
Acertou branco normal
Matou amarelo normal
Matou com tiro na cabeça vermelho ×1,3
Acertou a cabeça sem matar branco ×1,3

Fica aceso por 0,18 s.

Histórico de ajustes

Data Mudança Motivo
2026-10-11 v0.1 inicial Teoria do jogo (M0)
2026-10-12 v0.1.3-dev: corrida com fôlego (Shift): 7,5 m/s por 4 s Pedido do dono
2026-10-12 v0.1.2-dev: zumbis mais rápidos (1,7 andando; 3,1–4,3 correndo); dano do zumbi 20 → 34 (3 tapas); tiros viram projéteis; facada +30 por acerto; marcador de acerto em X Pedidos do dono
2026-10-12 v0.1.1-dev: vida em facadas, zumbis andam até o round 4, grupos de até 4, faca 50 Rebalanceamento pedido pelo dono
2026-10-12 Zumbis, vida e rounds (v0.4); vida linear; teto de vivos 24 Pedido do dono: zumbis primeiro, rounds até 50
2026-10-12 Dinheiro separado de pontos; saldo inicial 500; pistola a 100 Pedido do dono (HUD estilo CoD Zombies)
2026-10-11 FOV 90 → 70 Pedido do dono após o primeiro teste
2026-10-11 v0.2 FPS Câmera FPS; inimigos atiram; teto de vivos 16; spread/alcance ajustados