O primeiro projeto do meu Laboratório é um jogo: NUTSHOT! Nut Wars: Treehouse Warfare. É uma guerra de estilingues entre esquilos, quatro contra quatro, que roda direto no navegador, no computador ou no celular, sem instalar nada.

O trailer do jogo, gravado dentro dele. Tem som: a trilha também é gerada pelo próprio jogo.

Jogue aqui, ou veja o código no GitHub.

O que tem no jogo

  • Quatro mapas, de dia e de noite: o Vale do Carvalho, a Floresta do Confronto, o Vale Gelado (um vilarejo de Natal na neve, com lago congelado que escorrega) e o Pântano Real.
  • Três modos: Domínio da Macadâmia, Capture a Bandeira e Mata-mata. Partidas de 5 minutos.
  • Quatro classes, cada uma com habilidade própria: o sniper, o de assalto, o tanque e o ninja.
  • Mira em primeira pessoa, com o estilingue no centro da tela e vento que desvia a noz em voo.
  • Progressão: níveis, desafios diários, chapéus, pelagens e cinco tipos de estilingue.
  • Trilha sonora gerada na hora pelo navegador. Não existe nenhum arquivo de áudio no jogo.
  • Controles de toque para celular.

E, claro, o golpe que dá nome ao jogo: acertar a virilha do rival. Se esse golpe decidir a partida, o jogo entra em câmera lenta.

Como foi feito

Eu não escrevi o código. O jogo foi feito em conversa com o Claude Opus 5.5, em poucas mensagens de direção. A primeira criou o jogo, e as seguintes foram o que um diretor de arte e um playtester diriam: "o loading ficou feio", "quero um mapa de Natal", "a água aparece por cima do estilingue", "a bandeira precisa ser vista de longe".

A cada rodada, a IA escrevia o código, abria o jogo num navegador automatizado, jogava partidas, tirava prints, analisava as imagens e corrigia o que estava errado antes de me devolver. Foi assim que ela achou bugs que eu nem tinha visto, como um travamento raro que só acontecia em um de cada quatro carregamentos do mapa de neve.

Por baixo, são tecnologias abertas: Three.js para os gráficos, Rapier para a física e Web Audio para o som. Não há modelos 3D baixados: cada árvore, esquilo e estilingue é gerado por código. As decisões técnicas, com o porquê de cada uma, estão no README do projeto.

O que eu aprendi

O trabalho não foi programar. Foi saber o que pedir: jogar, sentir o que estava errado e explicar com clareza. Escrevi mais sobre isso em três posts:

O próximo passo é o multiplayer, com servidores no Brasil, na Europa e nos EUA. Enquanto isso, os bots estão esperando por você.