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.
Game Design (GDD v0.2)
v0.2 — decisões confirmadas pelo dono do projeto: primeira pessoa (FPS), militares contra forças hostis, mapa com caixas de cobertura. Objetivo estratégico: servir de modelo reutilizável para outros jogos de tiro (Arquitetura, ADR-009).
v0.4 (2026-10-12): o primeiro inimigo implementado é o zumbi (ADR-012), com rounds até o 50;
Escabre opções/pausa (ADR-014). As seções sobre o fuzileiro hostil descrevem um inimigo futuro. Números em vigor: Balanceamento.
1. Visão
Survivors é um jogo de tiro em primeira pessoa, de sobrevivência por rounds. Você é um soldado numa arena militar fechada. A cada round uma porta se abre e forças hostis entram atirando. Abater inimigos rende pontos; pontos compram armas e munição na Armaria. A partida termina quando sua vida chega a zero. A meta é chegar o mais longe possível.
Pilares
- Fluido — 60 FPS, resposta imediata, reinício em segundos.
- Simples — uma arena, quatro armas, um tipo de inimigo no início. Regras que cabem numa frase.
- Cobertura importa — o inimigo atira de volta; caixas e contêineres bloqueiam tiros e são a ferramenta de sobrevivência.
- Escolha significativa — o único "upgrade" é o que comprar e quando; economia apertada de propósito.
- Reutilizável — regras e números são dados; o núcleo de tiro (movimento, armas, dano, IA, rounds, loja) é separado do conteúdo do jogo.
Fora de escopo (MVP)
Multiplayer, campanha, inventário complexo, ragdoll, destruição, sprint, vários mapas, veículos.
2. Loop central
┌────────────────────────────────────────────────────────┐
│ Intermissão (10 s) ──► Porta abre ──► Round ativo │
│ ▲ compra na Armaria hostis entram │
│ │ use cobertura/atire │
│ └──── todos abatidos ◄────────── ganhe pontos │
└────────────────────────────────────────────────────────┘
HP = 0 em qualquer momento ──► Game Over
3. Câmera e controles (ADR-002 — aceita)
- Câmera: primeira pessoa, altura dos olhos 1,7 m, FOV 70° (ajustável), cursor travado, arma visível na mão (viewmodel).
- Mira: o centro da tela (retícula). Tiro sai da câmera.
| Ação | Entrada |
|---|---|
| Mover | W A S D |
| Olhar | Mouse (sensibilidade ajustável) |
| Atirar / golpear | Botão esquerdo (segurar = automático nas armas automáticas) |
| Recarregar | R |
| Trocar arma | 1 2 ou roda do mouse (até duas armas) |
| Faca | toque em V = golpe rápido e volta para a arma · segurar V (0,3 s) = equipa a faca, que fica na mão até escolher uma arma (1/2/scroll) |
| Pular / agachar | Espaço / Ctrl (ou C) |
| Correr | segurar Shift (gasta fôlego) |
| Interagir / comprar | F |
| Opções / pausa | Esc (voltar ao jogo, menu principal ou sair) |
| Resumo da partida | segurar TAB (kills, dinheiro, pontos, tiros, tempo) |
| Debug FPS | F3 |
| Terminal (dev) | ' abre/fecha · comandos: help, give <arma>, ammo, money <valor>, kill [n], stats, weapons, round <n>, spawn [n], killall, god, pos, tp <x> <z>, menu, play, quit |
Pulo de ~1 m (não sobe nas caixas de 1,2 m) e agachar (olhos a 1,0 m: as caixas baixas passam a cobrir o jogador por inteiro; velocidade × 0,5). Corrida (v0.1.3): segurar Shift andando para a frente dá × 1,5 de velocidade enquanto houver fôlego (4 s); a barra de fôlego fica abaixo da vida no HUD e volta sozinha ao parar de correr.
Inventário (estilo Apex)
O jogador carrega até duas armas e a faca, que não ocupa slot. Pegar uma terceira arma troca a que está na mão. HUD no canto inferior esquerdo: munição pente / reserva, nome da arma atual, os dois slots e a faca.
Opções e atalhos
A tela OPCOES (menu inicial) permite remapear as 12 ações de teclado e ajustar o vídeo: modo de tela (janela / tela cheia), resolução, VSync, FOV (55–100) e sensibilidade do mouse (0,2x–3,0x). As teclas da tabela acima são os padrões. Tudo é salvo em %APPDATA%\Survivors\settings.cfg. Atirar (botão esquerdo) e a tecla do terminal (') são fixos por enquanto.
4. Jogador
| Atributo | Valor |
|---|---|
| Vida máxima | 100 |
| Regeneração | começa após 5 s sem dano; 25 HP/s |
| Velocidade | 5,0 m/s |
| Colisão | cápsula 0,4 m de raio × 1,8 m |
| Início | Faca + Pistola (pente cheio + reserva cheia), 0 pontos |
5. Armas
Todas na mesma tabela (data-driven). Números finais em Balanceamento. Todo tiro é um projétil (voa em linha reta e é testado contra os volumes dos inimigos e a geometria do mapa — ADR-015; a faca acerta na hora). Tiro na cabeça: dano × 2.
| Slot | Arma | Tipo | Dano | Cadência | Pente / Reserva | Recarga | Alcance | Preço |
|---|---|---|---|---|---|---|---|---|
| 1 | Faca | Melee, cone frontal | 55 | 1,7/s | — | — | 1,9 m | grátis |
| 2 | Pistola | Projétil, semi-auto | 25 | 4/s | 12 / 96 | 1,3 s | 60 m | grátis |
| 3 | Escopeta | 8 projéteis por disparo | 8 × 14 | 1,2/s | 6 / 42 | 2,4 s | 15 m efetivos | 500 |
| 4 | Fuzil | Projétil, automático | 20 | 10/s | 30 / 180 | 2,0 s | 80 m | 1000 |
Papéis:
- Faca — nunca fica sem munição; recompensa risco (pontos maiores). Plano B.
- Pistola — precisa e barata; carrega o início.
- Escopeta — dano explosivo de perto; punida à distância.
- Fuzil — dano contínuo e longo alcance; consome munição rápido e perde precisão em rajada longa.
Regras gerais:
- Spread: desvio angular; o fuzil acumula (2° → 5°) e recupera em 0,3 s sem atirar. Parado/mirando reduz; recuo visual leve.
- Recarga: trocar de arma cancela. Munição do pente é mantida.
- Vazio: clicar recarrega se houver reserva; sem reserva, troca para a faca.
- Cobertura: tiros param no primeiro obstáculo (parede, caixa, contêiner). Não há penetração no MVP.
6. Inimigos — Forças hostis (ADR-007 — aceita)
Fuzileiro hostil (MVP)
Soldado inimigo com fuzil. Avança até ter linha de visada a uma distância confortável, então para (ou desloca-se de lado) e dispara rajadas.
| Atributo | Round 1 | Escala |
|---|---|---|
| Vida | 60 | × 1,10 por round (tiro na cabeça × 2) |
| Velocidade | 3,0 m/s | + 0,1 m/s por round, teto 4,5 |
| Distância preferida | 10–16 m | fixa |
| Rajada | 3 tiros, 0,15 s entre tiros | fixa |
| Pausa entre rajadas | 1,5 s | fixa |
| Dano por tiro | 6 | fixo |
| Imprecisão | cone de 4° | fixa |
| Colisão | cápsula 0,4 m × 1,8 m (cabeça = esfera 0,15 m) |
Comportamento:
- Sem linha de visada → move-se em direção ao jogador (contornando obstáculos).
- Com linha de visada e dentro da distância → mantém posição, mira com atraso (0,4 s de "telegrafia") e dispara.
- Muito perto (< 6 m) → recua para a distância preferida.
- Mantém separação dos demais; os tiros dos inimigos também são bloqueados por cobertura.
- Feedback ao jogador: traçante visível, som, e indicador de direção de dano no HUD.
Futuros (M3)
Rusher corpo a corpo, Granadeiro (arremesso), Pesado (blindado, lento), Atirador de elite (dano alto, telegrafia longa), Chefe a cada 5 rounds.
7. Rounds
Para o round N (começando em 1):
| Parâmetro | Fórmula |
|---|---|
| Inimigos no round | 6 + 4·(N−1) |
| Vivos simultâneos (teto) | min(16, 6 + 2·N) |
| Vida do inimigo | 60 · 1,10^(N−1) (arredondar) |
| Velocidade | min(3,0 + 0,1·(N−1), 4,5) |
| Intervalo entre spawns | max(0,8, 2,5 − 0,1·(N−1)) s |
| Bônus ao limpar | 50 + 25·N pontos |
Spawn: um inimigo por vez logo à frente da Porta, respeitando o teto de vivos. O round termina quando todos foram gerados e abatidos. Tabela dos 10 primeiros rounds: Balanceamento.
8. Economia
| Evento | Pontos |
|---|---|
| Acertar um inimigo | +10 (tiro na cabeça +20) |
| Abater | +60 |
| Abater com faca | +130 |
| Limpar round | 50 + 25·N |
| Compra | Preço |
|---|---|
| Escopeta | 500 |
| Fuzil | 1000 |
| Munição (reserva cheia) — Pistola / Escopeta / Fuzil | 60 / 100 / 150 |
Metas de ritmo (validar em playtest): escopeta ao fim do round 1–2; fuzil no round 3–4; necessidade real de munição no round 4+.
9. Mapa
Arena quadrada 40 × 40 m (x, z ∈ [−20, 20]), paredes de 4 m. O jogador nasce no centro (0, 0), de frente para a porta.
N (−Z)
┌──────────────[ PORTA ]──────────────┐
│ ▼ spawn │
│ ▓▓▓▓ ▒▒ ▒▒ ▓▓▓▓ │
│ │
│ ▒▒ ▒▒ │
O │ ☻ │ L
│ ▒▒ ▒▒ │
│ │
│ ▓▓▓▓ ▒▒ ▒▒ ▓▓▓▓ │
│ ┌ARMARIA┐ │
└─┴───────┴───────────────────────────┘
S (+Z)
▓ = contêiner (alto, 6×2,4×2,4 m) ▒ = caixa (baixa, 2×1,2×1,2 m)
| Elemento | Posição (aprox.) | Notas |
|---|---|---|
| Porta de spawn | parede norte, centro (0, −20), 4 m | Fecha/abre por round; spawn em (0, −18) |
| Armaria | canto sudoeste, x∈[−19,−9], z∈[10,19] | 3 balcões (1 m de altura): Pistola/munição, Escopeta, Fuzil |
| Contêineres | 4, nos cantos internos (±14, ±10) | Cobertura total: escondem o jogador por inteiro |
| Caixas | 8, dispostas em ± 7 m e centro-sul | Cobertura baixa (1,2 m): protege o corpo, expõe a cabeça; também serve de apoio |
Regras de nível:
- Sempre existe uma cobertura a ≤ 6 m de qualquer ponto da arena.
- Os inimigos usam as mesmas coberturas para bloquear a linha de tiro; não se escondem (MVP).
- A Armaria fica longe da porta (~38 m): comprar exige se expor e voltar.
10. Interface
- Marcador de acerto: um X em volta da retícula — branco ao acertar, amarelo ao matar, vermelho ao matar com tiro na cabeça (o X fica um pouco maior em tiros na cabeça).
- HUD: retícula central; vida (inferior esquerdo); arma e munição
pente / reserva(inferior direito); pontos (superior direito); round (superior central). - Indicador de dano direcional (arco vermelho na borda, apontando o atirador) e vinheta ao ficar com pouca vida.
- Prompt contextual: "[F] Comprar Escopeta — 500".
- Telas: Menu → Jogo → Game Over (round, abates, pontos, recorde) → reiniciar.
11. Estilo visual e áudio
- Visual: low-poly facetado, paleta militar (oliva, cáqui, cinza-chumbo); inimigos com acento vermelho/escuro para leitura.
- Iluminação: luz direcional + ambiente; sombras simples. Prioridade: legibilidade e desempenho.
- Áudio (M2): tiro por arma, recarga, hit/headshot, passos, morte, compra, porta, tiros inimigos com direção.
12. Condições de fim e métricas
- Derrota: HP ≤ 0.
- Sucesso (por partida): round alcançado, abates, pontos. Recorde local salvo.
- Metas técnicas: 60 FPS com 16 inimigos vivos em GPU integrada; reinício < 2 s; input-to-motion no mesmo frame.