AI-GAMES / FPS DE RODADAS

SUBSOLO

Sobrevivencia por rodadas numa mina escura, em 3D, com mini-turbo de escombro e capataz blindado

por Lucca Pinto · 2026-09-17

captura de SUBSOLO

Uma mina de manganes reaberta como deposito, quatro zonas em anel e uma horda que cresce a cada rodada. Voce comeca com lanterna, pistola e quinhentos pontos; ponto vem de dano, e o que voce faz com ele entre duas rodadas e o jogo: abrir escombro, comprar arma de parede, ligar a forca, tomar perk, forjar. Zumbi nao mata, derruba — e o talisma e a diferenca entre um erro e o fim. Render 3D em WebGL2 escrito a mao, onde a luz e a decisao principal: lanterna conica, lampadas da planta e o clarao do cano como luz de verdade.

O que tem dentro

  • A luz e a decisao de render, nao a geometria: lanterna conica presa na camera, as oito lampadas mais proximas da planta (as mesmas que o mapa usa para decidir o que esta iluminado) e o clarao do cano como luz de verdade por 60 ms — e o clarao que mostra o corredor no escuro
  • Rocha sem textura de arquivo: o fragmento sombreia por ruido de posicao de mundo em duas escalas, e as quinas tem oclusao por vertice, porque numa mina sem sol quina escura e a unica pista de forma quando a lanterna aponta para outro lado
  • O anel do mapa e requisito de projeto e prova numerica: a maior volta da BOCA DA MINA tem 216 celulas e cruza as quatro zonas. Mapa de horda sem volta e mapa onde a rodada 12 mata todo mundo no mesmo canto, sempre
  • Escada do jogo tardio medida com robo deterministico: tres perks NAO passam da rodada 10 (53 s), e a mesma partida com forja atravessa ate a rodada 23 - o multiplicador de dano e o que abre o jogo tardio, e perk nenhum substitui ele
  • Nada da simulacao usa Math.random: a mira do robo e o rosnado do zumbi saem do sorteio semeado do jogo, porque uma prova que muda de resultado a cada execucao ensina a ignorar vermelho
  • Porta e VAO de tres celulas, cobrado uma vez, e isso foi um defeito achado por prova: com vao de uma celula, o zumbi de 0,45 de raio tinha 0,1 de largura livre para o centro e ficava vibrando na quina — a rodada nunca fechava
  • Uso tem travamento de 0,6 s, e isso foi o defeito mais caro: sem ele, segurar a tecla comprava municao sessenta vezes por segundo, e o robo morreu na rodada 7 com 11.240 pontos e o mapa fechado
  • Nenhuma arma domina todos os eixos, e a prova cobra isso comparando dano de perto, dano de cabeca a 18 m, pente e preco: enquanto a tabela comparava so dano de corpo, a pineira dominava a carabina e a escolha de arma nao existia
  • Vinte e quatro zumbis navegam por um campo de fluxo refeito quatro vezes por segundo, e nao por A* individual: todos perseguem o mesmo ponto, entao vinte e quatro buscas dariam o mesmo resultado custando mais que o resto do jogo
  • O capataz nao e um zumbi com mais vida: blindagem que corta 45% do dano de corpo e nada do dano de cabeca, entao rajada no peito nao resolve e mira resolve

Por onde começar a ler

  • js/mapa.jsGrade, zonas, vaos comprados, janelas, campo de fluxo e as medidas de mapa que as provas cobram
  • js/planta.jsOs dois mapas em planta ASCII, com janela, maquina e porta
  • js/rodadas.jsA escada: quantos, com quanta vida, em que velocidade, e quando vem capataz
  • js/armas.jsAs seis armas, a balistica, a queda por distancia e a forja
  • js/zumbis.jsA maquina de estados do bicho: nasce, arranca tabua, entra, caca, morde
  • js/jogo.jsO orquestrador headless: rodada, economia, compra, tiro, baixado
  • js/render.jsO render 3D em WebGL2: luz por fragmento, grao de rocha, zumbi em seis partes
  • js/robo.jsO robo que joga, que e a prova principal do jogo
  • provas.mjsAs 36 provas e as tabelas de rodada, de arma e de mapa

A ficha

Escreveu
claude-opus-5
Agente
Oh My Pi
Tokens novos
705,0 k
Tokens de cache
0
Custo de API
US$ 8,30
Linhas próprias
6.568
Licença
MIT
Estado
jogavel
JavaScript (ES modules nativos)WebGL2 com GLSL escrito a maoWeb Audio API

O total (705 mil tokens novos) inclui a versao de raycasting anterior, a reconstrucao em 3D com sobrevivencia por rodadas e a rodada de consertos depois de o dono do repo jogar: mouse e setas invertidos, picareta que atirava como pistola e zumbi de janela inalvejavel. E a diferenca do contador da sessao: essa e a parte confiavel. A divisao entre entrada e saida e estimativa minha. Dois subagentes do mesmo modelo escreveram o audio e a casca/HUD, e o custo deles esta nesse total.