Defenda a águia em campos de batalha intermináveis de grama, neve e áreas industriais, ou em 35 mapas clássicos. Colete dez suprimentos e derrote tanques inimigos pesados, que precisam de quatro tiros para serem destruídos.
Uma proposta inicial baseada no projeto público do criador, não uma cópia literal do prompt original. O resultado pode variar.
Especificação de reconstrução derivada do projeto Three.js criado localmente no commit de runtime 670383f86f56c61e29e10d12424addf6f8defbe9 e verificada com a jogabilidade pública. Tributo independente de fã a Battle City (1985, Namco). Dados de mapas/ondas clássicos: gunnerson/battlecity (MIT); áudio coletado: JustoSenka/BattleCity (repositório MIT). Dezessete modelos gerados com Tripo P2. Esta é uma especificação derivada do projeto, não um prompt original de geração reproduzido literalmente.
Battle CityJogo de tanques 3DThree.jsTripoDefesa de tanquesMapas procedurais
O prompt
1. Objetivo do projeto
Criar Battle City 3D, um jogo de defesa com tanques para navegador, inspirado no clássico de Famicom de 1985. O jogador dirige um tanque, destrói uma onda de 20 inimigos, coleta suprimentos e protege o quartel-general da águia. Recriar a versão atual em 3D com perspectiva mostrada na mídia de referência, incluindo uma campanha com semente infinita e 35 layouts clássicos selecionáveis. Preservar as regras claras do arcade, dando profundidade real aos tanques, muros e cenários.
2. Estilo visual
Usar uma PerspectiveCamera do Three.js com campo de visão de 60 graus. A visão padrão do campo de batalha deve ficar atrás e acima do jogador, a cerca de 13 unidades do mundo, com elevação de 0,43 radianos. Acompanhar suavemente a posição e um ponto à frente do tanque; nunca girar a câmera automaticamente quando o tanque virar. Oferecer uma visão tática mais alta, órbita manual por arraste e zoom com a roda do mouse. Usar os quatro eixos cardeais do mapa para movimentação e disparos. Depois de orbitar, mapear as teclas direcionais para a direção cardeal mais próxima em relação à câmera; nunca transformar o comando do teclado em movimento diagonal. Fazer o chassi apontar imediatamente para coincidir com a direção do disparo e calibrar a altura dos projéteis e do clarão do cano de acordo com o canhão real de cada modelo.
Usar tanques sobre esteiras apoiados no chão, torres metálicas, tijolos de terracota, blocos de aço escuro, água azul, vegetação baixa e gelo refletivo. Estender o terreno além da área jogável, incluindo árvores, prédios em ruínas e névoa. Usar luz direcional quente, sombras suaves, preenchimento ambiente, tone mapping ACES e efeitos contidos de clarão do cano, recuo, faíscas e detritos quicando. A neve deve alterar a paleta do chão e das árvores; fases industriais devem privilegiar aço e prédios em ruínas.
Enquadrar o jogo com uma interface de comando verde-oliva escura, ação principal em amarelo quente, pontuação, vidas compartilhadas, ícones dos inimigos restantes, nome da fase e radar. Colocar a alternância de modelos Tripo 3D / Three.js acima do campo de batalha, exibindo o modo selecionado e uma prévia giratória do tanque. Usar um guia ilustrado de suprimentos localizado e indicadores de efeitos temporários. Manter o campo de jogo e os controles essenciais de toque visíveis em telas estreitas.
3. Mundo e cenas
Representar o campo de batalha como uma grade de 26 por 26 tiles, com meia largura de colisão do tanque de 0,72. Colocar a águia em (13,25), cercada por uma defesa de tijolos destrutível em forma de U. Os pontos de surgimento dos jogadores são (9,25) e (17,25); os portões inimigos ficam em (1,1), (13,1) e (25,1).
Oferecer duas campanhas: todos os 35 layouts clássicos com suas tabelas de ondas de 20 inimigos e um gerador infinito baseado em seed, alternando entre os biomas de grama, neve e industrial. Gerar corredores conectados com largura suficiente para o chassi inteiro, com conexões transitáveis entre os pontos de surgimento dos jogadores, os portões inimigos e os locais de coleta. Adicionar cobertura central de aço desencontrada para impedir uma linha de tiro direta entre o surgimento e a águia, mantendo o acesso entre ruas. Permitir selecionar o bioma inicial ou a fase clássica e sortear novamente um mapa aleatório. Levar a seed da partida, a pontuação, as vidas e as melhorias dos jogadores sobreviventes para a fase seguinte.
Tijolos são destrutíveis; blocos de aço bloqueiam projéteis comuns e tanques; a água bloqueia tanques, mas permite a passagem de projéteis; a vegetação oculta os modelos inimigos; o gelo reduz a tração. Manter o ambiente distante apenas decorativo, separado das colisões da jogabilidade.
4. Inventário de assets
Usar estes slots estáveis de modelos 3D, substituíveis de forma independente. Priorizar o jogador, o inimigo, o tanque pesado e a águia; depois, todos os dez modelos de suprimentos. Apoiar cada asset no ponto mais baixo e normalizar sua orientação, centralização e escala. Reutilizar templates em vez de carregar um modelo por inimigo.
- player: um tanque sobre esteiras amarelo-mostarda, com torre legível e canhão voltado para a frente; usado pelos tanques dos jogadores, com uma cor de aro separada para o segundo jogador.
- enemy: um tanque inimigo compacto sobre esteiras, reutilizado com tonalidades distintas para as variantes básica, rápida e poderosa.
- heavy: um tanque blindado visivelmente mais pesado, com malha separada da malha do inimigo padrão e quatro segmentos de blindagem visíveis acima dele.
- eagle: uma estátua metálica dourada de águia sobre o pedestal do quartel-general.
- pickup-star: uma estrela dourada de melhoria com cinco pontas.
- pickup-helmet: um capacete militar de proteção para criar um escudo temporário.
- pickup-clock: um relógio legível para congelar o movimento dos inimigos.
- pickup-shovel: uma pá para reforçar o quartel-general.
- pickup-life: um tanque em miniatura que representa uma vida extra.
- pickup-grenade: uma granada de mão para destruir inimigos ativos.
- pickup-ammo: uma caixa de munição para disparo rápido.
- pickup-repair: uma caixa de ferramentas de reparo para restaurar a blindagem.
- pickup-magnet: um ímã em forma de ferradura para coletar suprimentos à distância.
- pickup-boost: uma bateria de energia para aumentar temporariamente a velocidade.
- environment-building: um prédio de apartamentos em ruínas, desgastado pelo tempo, Tripo P2.0, orçamento solicitado de 1.800 triângulos.
- environment-tree: um pinheiro irregular com tronco visível, Tripo P2.0, orçamento solicitado de 1.100 triângulos.
- environment-bush: um arbusto baixo com folhas e tufos de grama, Tripo P2.0, orçamento solicitado de 650 triângulos.
Exibir os suprimentos como modelos colecionáveis giratórios e flutuantes, com aros coloridos e miniaturas correspondentes no guia. Renderizar prédios, árvores e arbustos repetidos usando instâncias compartilhadas de geometria e materiais. Apoiar as raízes dos prédios e das árvores no chão; enterrar ligeiramente a base dos arbustos para integrá-los ao terreno. Adicionar neve às superfícies voltadas para cima nas fases de neve. Manter paredes de tiles, água, gelo, malhas de projéteis, UI, luzes, partículas e proxies de colisão de forma procedural. Animar a água com ondas fluidas no espaço do mundo, normais variáveis e pequeno deslocamento da superfície, de modo contínuo entre tiles adjacentes. A versão Tripo usa 17 modelos gerados; a versão de comparação substitui os tanques e o ambiente por geometria criada via código, com as mesmas regras e colisões. Ambas são renderizadas com Three.js.
5. Jogabilidade e feedback
Oferecer modo solo e cooperação local para dois jogadores, com um conjunto compartilhado de três vidas. No solo, usar WASD ou as teclas de seta e Espaço/J para disparar. No cooperativo, o jogador um usa WASD e Espaço/J; o jogador dois usa as teclas de seta e Enter/teclado numérico 0. P/Escape pausa; C muda a câmera; 1/2 seleciona o modo de modelo. Em telas sensíveis ao toque, permitir manter pressionados simultaneamente o direcional e o botão de disparo, liberar os comandos quando o ponteiro for cancelado e disponibilizar as ações de pausar, retomar, avançar para a próxima fase e tentar novamente sem rolagem.
A velocidade do jogador é de 4,2 unidades por segundo, ou 6,3 com boost. Os inimigos incluem os tipos básico, rápido, poderoso e pesado; tanques pesados têm quatro pontos de vida e sobrevivem aos três primeiros acertos sem escudo. Destruir um tipo concede 100, 200, 300 ou 400 pontos; coletar qualquer suprimento concede 500 pontos. Concluir uma fase após derrotar 20 inimigos. Perder quando a águia for destruída ou quando as vidas compartilhadas acabarem sem nenhum jogador sobrevivente. Oferecer tentativa imediata, progressão explícita para a próxima fase e melhor pontuação salva localmente.
Implementar os dez suprimentos: a estrela aprimora o disparo em três níveis (projéteis mais rápidos, dois projéteis simultâneos e, por fim, projéteis capazes de destruir aço); o capacete cria um escudo por 12 segundos; o relógio congela os inimigos por 9 segundos; a pá reforça a base por 16 segundos; o mini tanque adiciona uma vida; a granada destrói inimigos ativos; a munição concede 14 segundos de disparo rápido, com até quatro projéteis ativos; o reparo adiciona dois pontos de vida, limitado a três; o ímã coleta suprimentos visíveis em um raio de cinco unidades por 20 segundos; o boost dura 12 segundos. Os modelos dos suprimentos duram 25 segundos e aparecem em locais alcançáveis, usando um baralho embaralhado para variar os tipos. A coleta pelo ímã deve respeitar obstáculos sólidos.
Usar amostras no estilo NES coletadas para a abertura da fase de 4,333 segundos, disparos, condução e marcha lenta, impactos em tijolos/aço, explosões de inimigos/jogadores, surgimento e coleta de suprimentos, vida extra, acerto na blindagem, gelo, pausa e fim de jogo. O projeto atual usa 15 faixas OGG de JustoSenka/BattleCity, commit 3a07004ba8e53baea74ff70d2ecc22b017eb9b20. Preservar a atribuição e o aviso de licença do repositório; descrevê-las como áudio coletado de um remake, sem alegar que são capturas perfeitas do hardware em nível de bit. Desbloquear o áudio após um gesto do usuário, calibrar os ganhos das amostras, oferecer volume/silenciar e sincronizar os sons aos eventos. Não adicionar música de batalha contínua não relacionada.
6. Implementação técnica
Usar TypeScript, Three.js 0.180.0 e Vite 7, com package.json e lockfile isolados. Manter a simulação independente da renderização, executada a 120 Hz. Usar AABBs sólidos para os chassis, movimento separado por eixo, limites e separação entre tanques, além de varreduras contínuas de projéteis até o contato mais próximo, incluindo colisão por movimento relativo entre projéteis opostos. Os projéteis devem surgir no chassi e percorrer o trajeto à frente para evitar atravessar paredes à queima-roupa. Adicionar aceleração/desaceleração no gelo e gravidade com quicadas amortecidas para os detritos. Esta é uma física arcade de chão, não um simulador de suspensão.
Carregar assets GLB da mesma origem usando GLTFLoader. Manter os proxies de colisão independentes da geometria dos assets. O runtime atual usa atributos quantizados e texturas WebP (1024 px para veículos/base; 512 px para suprimentos e ambiente), sem simplificação de geometria nem decodificador WASM. Limitar o carregamento a quatro workers, usar URLs versionadas por hash e intervalos de 256 KiB, com timeout de 20 segundos e até três tentativas por intervalo. Liberar a partida depois que os quatro modelos principais e o áudio estiverem prontos; carregar os assets de suprimentos e do ambiente em segundo plano e gerar apenas os tipos de suprimento cujos modelos estejam prontos. Trocar o modo de modelo preserva o estado da jogabilidade.
Oferecer UI em inglês, chinês simplificado, japonês e coreano. Selecionar um padrão com base no idioma do dispositivo, exceto zh-TW, zh-HK, zh-MO e zh-Hant, que devem usar inglês por padrão; persistir escolhas explícitas de idioma. Oferecer suporte a teclado, ponteiro em desktop e multitouch, pausando quando o foco for perdido. Manter todos os assets, créditos e scripts reproduzíveis locais ao projeto-fonte e entregar um diretório dist estático, sem credenciais privadas nem dependência de backend em runtime.
7. Critérios de conclusão
Entregar código-fonte editável, procedência dos assets e avisos de licença, um fluxo de desenvolvimento/build com npm e uma prévia estática jogável. Verificar a cena Tripo padrão, a comparação entre modelos, todos os biomas, um tanque pesado recebendo quatro acertos, todos os efeitos de suprimentos, pausar/retomar, derrota/tentativa novamente e progressão de fases. Testar 1.000 mapas com seed quanto à conectividade para a largura do chassi e a segurança dos pontos de surgimento, além de todos os mapas clássicos, atravessamento de paredes, disparos diagonais, separação entre tanques, impulso no gelo, comandos relativos à câmera em vários ângulos de yaw e trocas de modo que preservem o estado. Validar a UI localizada e os controles de dois dedos em telas estreitas, sem alegar testes em dispositivos físicos quando apenas emulação tiver sido usada. Comparar os frames reais de início e combate com as imagens/vídeo de referência; confirmar que os 17 modelos e as 15 faixas de áudio são carregados. Publicar usando o fluxo existente de Web Page do CMS e verificar a página pública final, em vez de considerar um registro salvo no CMS como uma implantação concluída.
Como usar este prompt
01
Comece com a ferramenta certa
Abra seu assistente de programação ou ferramenta 3D preferida. Use o modelo indicado no exemplo como ponto de partida e consulte as instruções dos projetos vinculados.
02
Escolha uma coisa para mudar
Troque o tema, o estilo artístico ou o cenário. Defina bem a câmera e a interação. Crie primeiro uma versão pequena e refine um detalhe de cada vez.
03
Dê elementos próprios à cena
Para um personagem ou objeto personalizado, crie um modelo 3D a partir de uma descrição curta ou imagem de referência e importe-o no projeto.
As prévias pertencem aos respectivos criadores. Consulte a fonte original e a licença do projeto antes de reutilizar código ou recursos.