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 águajs/missoes.jsO grafo de missões e a instanciação dos alvos contra o mundo daquela sementejs/jogo.jsCorpo, sede, hora, coleta, combate e recompensa, sem uma linha de DOMjs/robo.jsO robô que atravessa o sertão — a prova principal do jogojs/render.jsO render 3D: sombra do sol, cena, pós-processo, gente, bicho e partículajs/gl/ceu.jsA luz da hora: direção do sol, cor do céu, névoa e o céu com serra em camadasprovas.mjsAs 21 provas, rodadas em trinta mundos, e o relatório da travessialutas.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.