AI-GAMES / DEFESA DE TORRE

GUARDRAIL

Defesa de torre onde as torres são modelos e o cluster tem VRAM contada

por Lucca Pinto · 2026-09-17

captura de GUARDRAIL

Você defende o pipeline e as torres são os modelos: o preço por milhão de tokens vira o custo de compra, o benchmark vira o dano, os tokens por segundo viram a cadência, a janela de contexto vira o alcance e a taxa de alucinação vira a chance de errar o tiro. Cada modelo come VRAM de um cluster de tamanho fixo — estourar o orçamento deixa todas as suas torres mais lentas, e a pergunta do jogo deixa de ser quanta torre cabe no mapa para ser quantos modelos cabem no cluster. Vinte e três pragas, quarenta ondas, três mapas e um robô que atravessa tudo.

O que tem dentro

  • As torres são modelos e nenhum atributo é inventado: preço por milhão de tokens vira custo, benchmark vira dano, tokens por segundo viram cadência, janela de contexto vira alcance, latência do primeiro token vira tempo de mira e taxa de alucinação vira chance de errar — o DeepSeek R1 pensa 2,4 segundos antes do primeiro tiro porque é isso que ele faz na vida real
  • O orçamento de compute é a mecânica central: cada modelo ocupa VRAM de um cluster de tamanho fixo e estourar o teto deixa todas as torres mais lentas, o que transforma quantizar, servir em batch, fazer offload e rotear MoE em decisões de partida e não em enfeite temático
  • Onze torres com dois caminhos de upgrade de três níveis cada, e subir um acima do nível 1 fecha o outro para sempre: o Llama 8B vira dano semântico pelo fine-tune ou metralhadora de RUÍDO pelo enxame local, e não dá para ter os dois
  • Cinco tipos de dano que se resolvem de formas diferentes, provado par a par: ARMADURA DE VOLUME só cai para área, ESCUDO SEMÂNTICO só para semântico, MODO ANÔNIMO precisa de detecção, GOLPE é burro demais para o modelo sofisticado levar a sério e só o TOKEN cru entra inteiro, e o DEEPFAKE só quebra com RUÍDO adversarial
  • Um robô de estratégia deliberadamente simples atravessa as 40 ondas nos três mapas com 11, 13 e 13 de integridade, e foi ele que achou os sete defeitos que jogar uma partida boa não acharia — inclusive dois estados invencíveis: um VIÉS sorteado num tipo de dano que nenhuma torre produzia e um OVERFITTING que decorava os cinco tipos
  • A prova que mais rendeu olha da trilha para a laje em vez de olhar da laje para a trilha: a ILHA CENTRAL passava na verificação antiga e mesmo assim tinha 55% da espiral fora do alcance de qualquer torre possível — meio minuto por onda vendo a praga andar sem levar um tiro

Por onde começar a ler

  • js/dados.jsOnze torres com caminhos de upgrade, cinco tipos de dano, cinco modos de servir e vinte e três pragas — e a conversão de cada dado real de modelo em atributo de jogo
  • js/jogo.jsA simulação inteira sem uma linha de DOM: ondas, mira, dano, resistência, orçamento de compute, auras, chefes e economia, em passo fixo de 1/60
  • js/mapas.jsOs três mapas como cantos ortogonais e retângulos de laje, mais o corredor de voo que o INFERÊNCIA NA BORDA usa
  • js/render.jsCanvas 2D com fundo pré-renderizado, selos de torre e de praga em cache e nenhum shadowBlur no laço quente
  • js/icones.jsAs onze silhuetas das torres em caminho de canvas, sem nenhum arquivo de imagem: a forma separa as onze em cinza e com desfoque, as três que não atiram dividem a cor de aço e a barra de base, e as três da mesma casa se separam por 3, 6 e 12 raios
  • js/robo.jsO robô que joga sozinho as 40 ondas — a prova principal do jogo
  • provas.mjsAs 61 provas, o relatório das três travessias e a medição de custo por quadro com a tela cheia

A ficha

Escreveu
claude-opus-5
Agente
Oh My Pi
Tokens novos
165,0 k
Tokens de cache
0
Custo de API
US$ 2,48
Linhas próprias
6.681
Licença
MIT
Estado
jogavel
JavaScript (ES modules nativos)Canvas 2DWeb Áudio API

O total (165 mil tokens novos) é a diferença do contador da sessão e é a parte confiável; a divisão entre entrada e saída é estimativa minha. Saiu mais caro que o jogo de mundo aberto porque metade do trabalho foi equilíbrio: o robô rodou as 40 ondas dezenas de vezes e cada vez que ele morria era um defeito de projeto para consertar, não um número para subir. O cache está zerado porque não foi medido, não porque não houve.