Cópia offline do documento “ZombiAdA: revisão final e fatia jogável”. Original online: claude.ai.
ZombiAdA: revisão final e fatia jogável
· @u_sQiEPHaNdr6EEnPriLe2PA
Resumo
A fatia do Jardim Aurora pode ser jogada do começo ao fim no navegador: Zombiada, versão 7. A partida dura uns 15 a 20 minutos. Você saqueia a rua, encontra o sinalizador e resgata ou perde a Helena e o Davi. Depois sobrevive à horda de 300 e chama o helicóptero da laje da Casa 8.
Ela junta o trabalho de todos os times: Bestiário, Arsenal, Mapa, Fluidos, Explosões, Veículos, Personagens e Sobreviventes. Com 1.500 zumbis ativos, a simulação gasta 1,2 a 1,5 ms por quadro (mediana). Falta a medição de FPS numa placa de vídeo de verdade.
O que a fatia integra
A fatia usa o que cada time entregou. As adaptações para caber no navegador estão na última coluna.
| Time | O que está no jogo | Adaptação na fatia |
|---|---|---|
| Bestiário | 13 tipos com habilidade própria: Saltador derruba, Espreitador dorme e acorda, Inchado estoura e deixa cheiro por 60 s, Cego persegue som, Devorador come corpos e se cura, Brutamonte golpeia em arco, Farejador segue rastro, Afogado puxa para a piscina, Carbonizado queima, Gritador chama a horda. Pirâmide de corpos contra muro. Faixas de relevância R0 a R3 | Mordida mata em 120 s (aceleração de debug; o real é 48 h mais 2 a 4 min) |
| Arsenal | Glock 17, Remington 870, AK-47, Remington 700, faca, granada M67 e molotov (garrafa, gasolina ou cachaça, mais isqueiro) | 9 mm em 35 de dano, como no Bestiário; o Guia do corpo diz 30 |
| Mapa | Rua das Acácias, 8 casas com chave, muros de quintal de 1,8 m que dá para pular, porta com tranca e tábua, laje da Casa 8 com escada, piscina da Casa D, ônibus tombado na avenida norte | Uma rua em vez do bairro inteiro |
| Fluidos | Poças que secam das bordas para dentro, pegadas de sangue, respingo na parede com escorrido, bile do Inchado, chuva que atrasa a secagem | 512 decalques em dois pools |
| Explosões | Bola de fogo com faixas de calor, detritos, onda de choque, reação em cadeia (botijão, barril, carro), muro que quebra e abre caminho, fogo que fica no chão e zumbi em chamas | Tetos de 6 explosões em 4 s por área |
| Veículos | Carro em frente à Casa 6: dirigir, atropelar (acima de 8 m/s mata e arranca membros), bater, motor pegar fogo e explodir | Física arcade, sem suspensão |
| Personagens | Fôlego, fome, sede, infecção, caída, agachar, pular muro, mochila e diário | Atributos fixos |
| Sobreviventes | O simulador da página roda dentro do jogo. Helena, Davi, Cícero e Sandra têm rotina e rádio. Boletim das 20h da Jéssica. Se ninguém ajudar, Helena sai às 6h do dia 4 e pode virar zumbi com o sinalizador no corpo. Mortes viram notícia e diário | Dia começa no 3; 1 dia de jogo = 60 min reais |
Desempenho medido
A simulação cabe com folga no orçamento de 16,6 ms por quadro. Os números abaixo são só de CPU, num Chromium sem placa de vídeo (renderização por software), então o FPS desse ambiente não vale.
| Cenário | Zumbis | Simulação, mediana | Pior quadro |
|---|---|---|---|
| Bairro cheio, sem horda | 2.000 | 0,6 a 1,1 ms | 9 a 11 ms |
| Horda final entrando | 1.500 | 1,2 a 1,4 ms | 15 a 20 ms |
| Horda final e 6 explosões em cadeia | 1.460 | 1,3 a 1,5 ms | 22 a 27 ms |
| 3 dias do simulador de sobreviventes | 104 NPCs | 2,7 a 5,4 ms, uma vez por dia de jogo | não se aplica |
Os picos aparecem em sistemas que custam menos de 0,1 ms na mediana, como o dos NPCs. Isso indica coleta de lixo ou ruído da máquina virtual, e não um sistema caro. Na tela, são 84 draw calls e 0,7 milhão de triângulos com a horda. O medidor F3 mostra FPS, simulação, render e GPU no seu computador.
Inconsistências entre os briefs
Ainda há dois números sem dono final: o dano do 9 mm e a velocidade do Corredor. O resto já tem decisão, e o Mapa alinhou seu brief na rodada de hoje (documento v8).
| # | Tema | Decisão da revisão | Situação |
|---|---|---|---|
| B1 | Pilha de rede | Unity Transport com host autoritativo, sem Mirror | Mapa alinhado; depende da escolha de engine |
| B2 | Modelo de dano | Vida total decide a morte pelo tronco, segmentos decidem o desmembramento, penetração em pontos do Arsenal | Usado na fatia |
| B3 | Números das armas | Arsenal é a fonte | Aberto: 9 mm está em 35 no Bestiário e na fatia, mas o Guia do corpo diz 30 |
| B4 | Velocidades | Bestiário é a fonte (Lento 1,4 m/s, Corredor 5,5 m/s) | Aberto: Personagens ainda usa 6,0 |
| B5 | Infecção | 48 h de jogo e reanima em 2 a 4 min; 120 s só como debug | Mapa alinhado |
| B6 | Unidades de tempo | Cosmético em segundos reais, mundo em horas de jogo | Usado na fatia |
| B7 | Jogadores | Aceite medido com 4 e com 8 | Mapa alinhado |
| B8 | Banda de rede | Típico 32 KB/s, pico 64 KB/s por cliente | Orçamento abaixo |
| I1, I2 | Relevância e replicação | Uma relevância R0 a R3; replicação do Bestiário | Mapa alinhado; usado na fatia |
| I8 | Porta | Golpe direto na vaga de ataque mais pressão da pilha | Mapa alinhado |
| I9 | Nomes | Lento em todo lugar | Mapa alinhado |
| I10 | Histórias cruzadas | Nascimentos, mortes e relações no simulador | Usado na fatia (rádio, diário, zumbi com nome) |
| I11 | População do mundo | Cerca de 37 mil em dados por bloco de 64 m, até 2.000 materializados | Mapa alinhado |
Orçamento para a engine final
No PC alvo (GTX 1060, Ryzen 5 2600, 1080p médio), o host fecha em 8,7 ms de CPU na thread principal e 13,8 ms de GPU. No pior caso, com 2.000 zumbis, a GPU vai a 21,8 ms (30 FPS). O detalhe por sistema está em checklist-e-orcamento.md.
| Recurso | Teto |
|---|---|
| CPU, thread principal do host | 8,7 ms, com 3 ms de folga |
| GPU típica / pior caso | 13,8 ms / 21,8 ms |
| Zumbis materializados (R0 e R1) | 2.000 no mundo, divididos entre os jogadores |
| Triângulos na tela | 2,5 M típico, 3,5 M pior caso |
| Rede por cliente a 30 Hz | 27,6 KB/s típico, teto 64 KB/s |
| Ragdolls simultâneos | 16, num pool de 24 |
A fatia confirma a parte de simulação desse orçamento: horda, flow field fatiado, pirâmide, explosões e NPCs cabem em menos de 2 ms na mediana, sem threads.
Pendências
O próximo passo depende de duas coisas suas: o FPS no seu computador e a escolha de engine e repositório.
Medir o FPS com F3 durante a horda final, no seu computador
Escolher a engine e o repositório do jogo final (cartão de decisão aberto na conversa)
Fechar o 9 mm entre Bestiário e Arsenal (30 ou 35)
Personagens trocar o Corredor para 5,5 m/s e reescrever o aceite do M1 contando o fôlego (a folga de 14 m contra o Corredor Fresco/Jovem dá cerca de 11 m: 6,96 contra 6,46 m/s por 7,7 s)
Bestiário renumerar a seção 12 duplicada e manter só a tabela atual
Os fontes da fatia estão em implementacao/jogo-web/ (src, shell.html, build.py e os testes em t/).