AI-GAMES / MUNDO ABERTO

TRAVESSIA

Mundo aberto no sertão em 3D, gerado por semente e provado em trinta deles

por Lucca Pinto · 2026-09-17

captura de TRAVESSIA

A adutora velha secou e cinco vilas estão bebendo do fundo da cacimba. O sertão é gerado por semente — relevo, rios, biomas, vilas, estradas e gente — e desenhado em WebGL2 escrito à mão, sem um único arquivo de textura, modelo, fonte ou som. A sede é que manda no caminho: o sol anda o arco do dia em oito minutos, a sombra gira com ele, e ao meio-dia o cantil dura um minuto e meio andando contra quase o dobro de madrugada. Sete missões em grafo de dependência, treze no total.

O que tem dentro

  • O sertão inteiro em WebGL2 escrito à mão: nenhum arquivo de textura, modelo, fonte ou som. Mandacaru, casa de taipa, onça, letra e rugido saem de código, e o relevo que o gerador já calculava vira malha facetada com nível de detalhe por pedaço
  • A luz é a regra do jogo ficando visível: o sol anda o arco do dia em oito minutos e a sombra de tudo gira com ele; ao meio-dia o horizonte ferve, que é justo a hora em que o cantil dura um minuto e meio, e de madrugada há névoa baixa e lampião
  • Mundo gerado por semente e provado em trinta sementes de uma vez: vila em chão andável, vila alcançável a pé de qualquer outra, estrada inteira caminhável e os cinco terrenos em proporção de sertão — a primeira semente sempre parece boa, a décima é que tem a vila cercada de rio
  • A garantia de projeto que sustenta o jogo: todo alvo de missão, todo recurso coletável e todo ponto de estrada tem água a menos de meio cantil de distância, medida num campo de distância da água calculado por busca em largura
  • Um robô atravessa a linha principal inteira em três sementes diferentes usando a mesma caminhada, a mesma sede, o mesmo combate e as mesmas missões do navegador — hoje termina em 5 a 6 minutos com vida cheia
  • A onça virou decisão: ficar e bater vence com 79% de vida, recuar andando mata, correr e voltar vence. As três lutas são simuladas por lutas.mjs, com o resultado que cada uma tem de dar
  • As missões são um grafo de dependência, não uma lista: dá para provar que não há ciclo, que todo alvo existe naquele mundo e que dá para chegar nele vivo
  • As provas acharam oito defeitos que jogar uma semente boa não acharia, incluindo margem de rio do outro lado da serra: mais perto em linha reta e sem rota, com o robô parado pedindo um A* impossível a 144 ms por quadro

Por onde começar a ler

  • js/mundo.jsO gerador: relevo, rios, biomas, vilas, estradas e o campo de distância da água
  • js/missoes.jsO grafo de missões e a instanciação dos alvos contra o mundo daquela semente
  • js/jogo.jsCorpo, sede, hora, coleta, combate e recompensa, sem uma linha de DOM
  • js/robo.jsO robô que atravessa o sertão — a prova principal do jogo
  • js/render.jsO render 3D: sombra do sol, cena, pós-processo, gente, bicho e partícula
  • js/gl/ceu.jsA luz da hora: direção do sol, cor do céu, névoa e o céu com serra em camadas
  • provas.mjsAs 21 provas, rodadas em trinta mundos, e o relatório da travessia
  • lutas.mjsAs três lutas de referência contra a onça, com o resultado que cada uma tem de dar

A ficha

Escreveu
claude-opus-5
Agente
Oh My Pi
Tokens novos
103,0 k
Tokens de cache
0
Custo de API
US$ 1,54
Linhas próprias
6.960
Licença
MIT
Estado
jogavel
JavaScript (ES modules nativos)WebGL2 escrito à mão, sem bibliotecaCanvas 2D (só o minimapa e o atlas de letra)Web Áudio API

O total (103 mil tokens novos) é a diferença do contador da sessão na primeira construção e é a parte confiável; a divisão entre entrada e saída é estimativa minha. A segunda passada — o render 3D em WebGL2, o equilíbrio do combate e a bodega — não foi medida, e os números acima cobrem só a primeira. O cache está zerado porque não foi medido, não porque não houve.