Como quatro desenvolvedores e uma orquestra de inteligências artificiais construíram Myths' Valley, do pixel ao 3D, até o primeiro lugar brasileiro no Tripothon S1
Matheus Ché · Pedro Almeida
Ramon Santos · Renato Leal
Alpha Centauri · Myths' Valley · 2026
Quinze Dias no Vale
Como quatro desenvolvedores e uma orquestra de inteligências artificiais construíram Myths' Valley, do pixel ao 3D, até o primeiro lugar brasileiro no Tripothon S1.
Primeira edição digital, outubro de 2026. Versão 1.0, fechada em 14 de outubro de 2026.
© 2026 Alpha Centauri. Myths' Valley é um jogo derivado do universo narrativo de Batalha de Mitos, de Ramon Santana Santos. As imagens reproduzidas neste livro são do próprio projeto: capturas do jogo, pinturas, retratos e modelos gerados pela equipe com as ferramentas descritas no texto. Tripothon e Tripo são marcas da Tripo AI; Godot é marca da Godot Foundation; as demais marcas citadas pertencem aos seus donos.
Autoria: Matheus Ché, Pedro Almeida, Ramon Santos e Renato Leal, os quatro desenvolvedores do projeto. Texto organizado com o Claude Code (Anthropic), a partir dos registros do projeto: os históricos do Git dos dois repositórios, a documentação técnica, o diário público do site, as issues do GitHub e as anotações das sessões de trabalho. As interpretações e as sínteses são do texto; os fatos, as datas e os números têm fonte declarada no Apêndice E. Qualquer erro que tenha sobrevivido é de quem organizou, não de quem construiu o vale.
Tipografia: Literata (The Literata Project Authors) no texto, Cinzel (The Cinzel Project Authors) nos títulos, Caveat (The Caveat Project Authors) nos post-its, e Kalam (Indian Type Foundry), Gochi Hand (Huerta Tipográfica), Patrick Hand (Patrick Wagesreiter) e Indie Flower (Kimberly Geswein) nas notas de margem dos desenvolvedores, todas sob SIL Open Font License 1.1. Composição em EPUB 3.3 reflowável, com edição em folhas A4 (PDF e página paginada) e em página web contínua geradas da mesma fonte; o Apêndice D conta como.
mythsvalley.app.br · github.com/acentauric/myths-valley-3d
Para Pedro Nolasco da Encarnação,
que nunca soube que um dia seria o guia de um vale.
E para quem ficou acordado até o dia clarear
para que ele fosse.
Dicas e lições para acelerar seu trabalho com IA, uma ao fim de cada capítulo: em média uma a cada 9 minutos de leitura, com exemplos de automação de processos e de desenvolvimento de software fora dos jogos.
Build a world as a Gift.
Tripothon S1, chamada pública
O convite chegou por e-mail, como chegam as coisas que mudam um mês inteiro. A Tripo, empresa que faz modelos 3D a partir de texto e de imagem, anunciava a primeira edição de um concurso de construção de mundos: o Tripothon. Inscrições abertas em agosto; envios de 15 de setembro a 5 de outubro de 2026; júri até o dia 25; demonstrações ao vivo em sete cidades, de São Francisco a Tóquio, passando por São Paulo. Oitenta mil dólares em prêmios. E um tema de uma linha só, com um espaço em branco no fim: A Gift for ____. Um presente para alguém.
Ramon Santos leu o espaço em branco e soube na hora o nome que ia nele. Ele é o autor de Batalha de Mitos, um universo transmídia de grandes navegações e folclore brasileiro, e nos capítulos 6 e 7 dessa história há um pescador jovem chamado Pedro, de um arraial do Recôncavo Baiano em 1887, que recebe um convite sem assinatura para uma fazenda do outro lado do rio. O nome completo do pescador é Pedro Nolasco da Encarnação. É também o nome do tataravô de Ramon.
O presente, portanto, era óbvio e era impossível: um mundo para Pedro. Um lugar em que se pudesse chegar pelo píer, herdar uma casa de taipa, aprender com ele a viver entre a vila, a mata e a maré. Bom Jesus dos Pobres, em Saubara, um ano antes da Abolição. Em três dimensões, com gente que fala, com o mar de verdade da carta náutica e com a igreja igual à igreja. Em duas semanas.
A equipe que aceitou o desafio tinha quatro desenvolvedores e nenhum artista 3D. Ramon Santos, autor e diretor: a história, a identidade visual, o mapa real, o som, o site. Matheus Ché: os sistemas e as regras do jogo, e a disciplina de testes que atravessa este livro de ponta a ponta. Renato Leal: o mundo e a jogabilidade, do terreno às pontes, do pulo ao nado, e o primeiro modelo de árvore. Pedro Almeida: a semana da travessia, quando a vida, a luta, o save, o painel e a coleção chegaram ao vale. Todos da Alpha Centauri, todos com outros trabalhos durante a semana, todos com a mesma data no calendário.
O que esta crônica conta é como esse quarteto resolveu a equação impossível com duas decisões. A primeira foi de método: construir primeiro um jogo 2D em pixel art, pequeno e rápido de testar, para provar as regras (o relógio, a roça, a fé, as missões, o save), e só então levantar o vale em 3D sobre essas regras. A segunda foi de ferramenta: usar inteligência artificial em tudo em que ela servisse, de modelos a vozes, de código a testes, e cercá-la de processo onde ela pudesse enganar. Entre 21 de setembro e 5 de outubro, os dois repositórios do projeto receberam 701 commits sem contar os merges. Mais de oitenta por cento deles trazem a assinatura de uma sessão com um assistente de IA.
Não é um manual de nenhuma ferramenta, e não é um elogio à inteligência artificial. É o relato de uma jornada de engenharia, contada na ordem em que aconteceu, com as decisões, os números e os erros no lugar em que foram cometidos. Quem quiser um tutorial encontrará no vale documentação melhor do que qualquer resumo; quem quiser saber como foi está no lugar certo.
Tudo o que está aqui tem fonte. Os dois históricos do Git, com 365 e 392 commits escritos em prosa, no presente, dizendo o que mudou no jogo. As três dúzias de documentos de projeto, que a equipe escreveu como quem escreve para si mesma daqui a seis meses. O diário público do site, um dia por vez. As 261 issues do GitHub. E as anotações do próprio assistente de código, que ao longo dessas semanas guardou o que aprendeu numa memória de arquivos: quais portões são sensíveis ao tempo, por que o machado só chega na missão da ponte, como se conversa com o Tripo Studio pela extensão do navegador. Quando o texto diz "nós", é a equipe. Quando diz "o assistente", é a IA. Os dois aparecem muito.
No domingo 11 de outubro, num galpão de Alto de Pinheiros, em São Paulo, Myths' Valley ficou em primeiro lugar na etapa brasileira do Tripothon. O anúncio global sai no dia 25. Este livro foi fechado entre uma data e a outra, com o vale ainda em obras, como tudo o que presta.
21 a 28 de setembro de 2026. Um RPG de fazenda em pixel art nasce numa madrugada e, em oito dias, vira o laboratório de regras do jogo inteiro: o relógio, a roça, a fé, as missões, os portões que medem tudo isso, e a primeira ponte para a terceira dimensão.
Cria estrutura inicial do projeto Godot.
Primeiro commit, 00h56 de 21 de setembro de 2026
O primeiro commit do projeto tem hora: cinquenta e seis minutos depois da meia-noite de domingo. Até o fim daquele dia haveria setenta e cinco, quarenta e três de Matheus e trinta e dois de Ramon, num repositório que ainda se chamava pelo nome provisório e que ao anoitecer já se chamaria Myths' Valley. Lidos em sequência, os assuntos dos commits contam uma história que nenhum documento de design contaria com a mesma honestidade: "Monta a primeira versão jogável: mundo, jogador, ciclo de dia e estações"; "Corrige o ciclo do dia e adiciona casa, dormir e tutorial da Caipora"; "Adiciona enredo, Pedro como guia, inventário e lavoura"; "Gera sprites e áudio por IA, reescreve o tutorial e adiciona missões"; "Corta o mapa com um rio, dá profundidade à mata e abre três frentes"; "Ambienta o jogo no Recôncavo de 1880 e abre o sistema de obras".
Em menos de vinte e quatro horas, portanto, o jogo tinha um mundo gerado por semente com relevo, água, praia e mata; um jogador com colisão e câmera; um relógio que ia das seis da manhã às duas da madrugada e só virava o dia quando se dormia; quatro estações de vinte e oito dias que repintavam a mata; uma casa com cama; um inventário; uma roça em que se arava, plantava, regava e colhia no tile à frente; e um guia. O guia era, de início, a Caipora. Antes do almoço já era Pedro.
A decisão parece um desvio e é o contrário. Um jogo de vida no campo é feito de regras que se cruzam: o fôlego que a enxada gasta, a planta que não cresce no dia em que não foi regada, a missão que só abre quando a outra fechou, o save que precisa guardar tudo isso sem perder nada. Nada dessas regras depende de a câmera estar em cima ou atrás do personagem. Em pixel art, com tiles de dezesseis pixels e um motor que a equipe já conhecia, cada regra podia ser escrita, testada e corrigida em minutos. Em 3D, com modelos que ainda não existiam, cada teste custaria uma tarde.
Então o 2D virou o laboratório. Ao longo da primeira semana ele recebeu tudo o que o jogo precisava saber fazer, e cada coisa recebida ganhou um teste automático, um "portão", que mede se ela continua funcionando. Quando o 3D chegasse, as regras atravessariam com os portões junto. O capítulo 5 conta a travessia; este conta o que foi posto na mala.
A terceira decisão do dia foi geográfica e definiu o jogo inteiro. Em vez de um vale inventado, Ramon marcou no Google Earth, com traço vermelho, a planta de uma vila real de pescadores do Recôncavo: mar ao sul, serra ao norte, a vila numa faixa estreita ao longo da estrada da praia, praça para dentro, riacho descendo ao mar perto do píer, igreja na beira, cemitério subindo a encosta, mirante no alto. Com rótulos escritos à mão: PRAÇA, PIER, IGREJA, BAR, CEMITÉRIO, MIRANTE, RIO. O commit "Refaz o mapa na planta de Bom Jesus dos Pobres e dá dono a toda terra" é das primeiras horas da tarde.
"Toda terra tem dono" não era força de expressão. O jogador ara qualquer chão que seja seu, e não um canteiro marcado; os terrenos vizinhos, da Dona Zefa e do Seu Benedito, se ganham comprando, fazendo um favor ao dono, ou os dois, conforme a placa de cada um. Um rio corta o mapa de norte a sul, e a única passagem é um vau fechado por três paus caídos: sem machado não se atravessa, e é isso que segura o vilarejo do outro lado até o tutorial ensinar o que precisa. A ponte para a fazenda caiu; a missão não é derrubar pau, é reconstruir: doze tábuas e quatro cordas, serradas e torcidas na oficina. "É a primeira coisa que muda no lugar em vinte anos", diz o README, "e o Pedro repara nisso."
O commit das quatro da tarde, "Gera sprites e áudio por IA", marca a entrada das primeiras ferramentas generativas no projeto. Os bonecos de Pedro e do viajante, em quatro direções, vieram do PixelLab, um serviço de pixel art por descrição; a caminhada deles, seis quadros por direção, veio do mesmo lugar dias depois. A narração de abertura veio do ElevenLabs, na voz do narrador do próprio Batalha de Mitos. Ainda no mesmo dia, Ramon acrescentou ao repositório um roteiro que pedia à OpenAI uma imagem-conceito da tela inicial, e a imagem entrou como arte de fundo e painel entalhado do menu.
Vale notar o que a IA não fez naquele dia. O mapa foi desenhado à mão. O relógio, a roça, o inventário e a economia foram escritos como código, com um assistente de programação ao lado, mas por decisão humana em cada regra. A ambientação histórica, da arquitetura caiada ao ano de 1887, foi pesquisada por Ramon e registrada em documento antes de virar tile. O padrão que se repetiria nas duas semanas seguintes já estava posto: a IA gera o que é volume (sprites, vozes, variações, rascunhos de código) e as pessoas decidem o que é sentido.
Há uma frase no README do 2D que explica a filosofia de design melhor do que qualquer GDD. Dormir devolve um valor fixo de fôlego, quarenta no começo, e não uma fração do máximo. Quem destravar mil de fôlego nos talentos e não mexer no descanso continua acordando com quarenta. "Subir o teto sem subir o descanso é uma escolha ruim, e o jogo deixa fazer, porque escolha ruim que não existe não é escolha." O mesmo espírito está no custo das ações: o machado de aço abre a madeira de lei, mas aquele corte custa o dobro; quem quer pagar menos sobe a eficiência, não a ferramenta.
Esse gosto por regras com consequência, em vez de barras que só sobem, foi o que mais tarde fez o vale 3D parecer um lugar e não uma vitrine. E foi também o que tornou os testes indispensáveis: regra com consequência é regra que quebra calada quando alguém mexe ao lado. O capítulo 3 é sobre isso. Antes dele, porém, veio o dia mais longo.
Toda arte que custou crédito fica guardada. Automaticamente, sempre, sem exceção.
A regra do cofre, docs/PIXELLAB.md
Segunda-feira, 22 de setembro, é o dia com mais commits de toda a jornada: cento e nove, cinquenta e oito de Matheus e cinquenta e um de Ramon. O diário do site o chama de "o dia mais longo", e a lista do que entrou justifica o nome. De manhã, a arte dos marcos de fé, do mirante, das fruteiras, das mudas e das comidas. Depois, o sistema de fé em três caminhos, católica, candomblé e caboclo, cada um com árvore própria de talentos. Uma lagoa a leste e o mapa vinte tiles mais largo. As fruteiras com carência. As obras da casa em três eixos, casca, planta e mobília, cada uma dando atributo. As missões com checklist que se desrisca, separadas entre enredo e dia a dia, e uma bússola de três pontas. Doze testes de portão. Dez cordéis de verso original. E, no fim da tarde, um plano de implantação em sete fases, com as quatro primeiras riscadas antes da meia-noite: salvar e carregar, afinidade com os moradores, o roçado que se vê crescer, cartas e rituais, o arraial que cresce.
Enquanto isso, Ramon refazia a entrada do jogo. O menu inicial ganhou fundo e painel de madeira gerados pelo PixelLab através de um servidor MCP, o protocolo que deixa um assistente de código chamar uma ferramenta externa como quem chama uma função; ganhou duas músicas de tema geradas no ElevenLabs, uma de sessenta segundos escolhível nas opções; ícones de som em pixel art; um vídeo em laço feito no LTX; a fonte Almendra e a fonte Miva, esta criada pela própria equipe. Dezenas de commits pequenos de ajuste de layout, foco de teclado e proporção 16:9, no vaivém típico de quem está vendo a tela ganhar forma.
O commit mais importante do dia, para quem olha de longe, é o que menos muda o jogo: "Guarda toda arte gerada num cofre, automaticamente". A regra que ele instala merece ser lida inteira, porque é o primeiro exemplo de um padrão que o projeto repetiria com cada ferramenta de IA: uma política escrita, mecanizada na camada mais baixa possível, para que ninguém precise lembrar dela.
O problema era concreto. No PixelLab, o preço não é por chamada, é por quadro gerado; uma animação em modo template cobra por direção; um lote de objetos cobra pelo lote inteiro, mesmo sem nomear todos. Quando se geram quatro variantes de uma peça para escolher a melhor, três não têm destino no jogo: foram pagas, saíram da API e sumiam. "E são justamente essas que mais custam para refazer, porque a mesma semente com o mesmo texto não devolve o mesmo desenho." A solução foi copiar cada arte gerada para uma pasta de cofre no instante em que os bytes chegam, antes de qualquer decisão, junto com uma linha num registro: data, destino, semente e, o mais caro de perder, a descrição que gerou aquela peça. A cópia mora na camada da API, chamada de dentro do cliente, e não nos mais de vinte roteiros de geração: "pedir que cada um lembre de guardar é pedir que alguém esqueça". E um portão lê o código e reprova qualquer endpoint novo que escreva arte no disco sem passar pelo cofre.
O registro conta a própria história do dia. Três mirantes gerados em sequência, com a medida de simetria da torre calculada por script: 71,8% de simetria, escada de um lado só, recusada; 88,6%, bonita mas em três quartos, recusada; 95,9%, escolhida e instalada. Ao fim do projeto o cofre do 2D teria 534 gerações registradas. Nenhuma delas se perdeu.
A documentação do PixelLab é um pequeno tratado de economia de geração, escrito por quem pagou para aprender. O endpoint de objetos de mapa cobra uma geração, "do tamanho que for": uma casa de 128 pixels e uma árvore de 32 por 48 custam o mesmo, e foi por ele que a mata grande entrou, e não pelo lote de objetos, que teria custado dezesseis. A rotação não cobrou nada nas primeiras vezes e cobrou depois: "o preço dele não é fixo, e vale conferir o saldo antes e depois". Gerar com saldo insuficiente devolve um erro 402 sem cobrar, "então dá para sondar o preço tentando", com a ressalva de que sondar com um corpo válido gera de verdade.
Há lições ainda melhores sobre quando não gerar. A ponte caída foi pedida duas vezes ao PixelLab e voltou as duas como uma ponte inteira em perspectiva: o modelo desenha a ideia "ponte", não a ideia "ponte quebrada". O que resolveu foi partir da arte da ponte de pé e arrebentá-la em código: abrir o vão no meio, fazer os cotos cederem para a água, espalhar prancha solta. Sai de graça, casa a paleta exatamente, e, o que importa para o jogador, é visivelmente a mesma ponte que ele vai levantar depois. "Quando o que se quer é o estado estragado de uma arte que já existe, destruir por código ganha de gerar de novo." O mesmo valeu para esticar, a ponte do rio grande é a do riacho com o miolo repetido a cada onze pixels, medido por autocorrelação, e para emendar: a cerca de ferro foi desenhada tile a tile, porque "arte gerada não emenda".
Uma das cenas de abertura mostra Salvador vista do mar. Pedir a cena inteira ao gerador não funcionou: voltou "uma fita estreita de penhasco, sem torre". Então a torre foi gerada sozinha, e a escarpa, as duas cidades, a passarela e a baía foram pintadas em código. Antes disso, uma pesquisa: o elevador foi inaugurado em 1873 como Elevador Hidráulico da Conceição da Praia, tinha uma torre só, de alvenaria, com o ferro restrito à passarela; a segunda torre e o traço art déco são de 1930; o Mercado Modelo é de 1912 e por isso não aparece; o Forte de São Marcelo, redondo, dentro d'água, é do século XVII e aparece. É o tipo de cuidado que uma IA de imagens não tem sozinha e que o jogador do Recôncavo percebe.
O plano de implantação escrito naquele dia começa por um levantamento honesto do que já existia e por uma leitura de três referências do gênero. De Stardew Valley, cinco coisas: não dá para perder; o dia é a unidade e ele termina; cada ação contribui para um progresso visível; a estação traz oportunidade e ameaça juntas; a relação com os moradores é um segundo motor. "O item 3 é onde estamos mais fracos. O roçado do jogador muda pouco de aparência entre o dia 1 e o dia 60."
De Graveyard Keeper, a lição mais cara, por ser a do que não fazer: energia que obriga a dormir ou comer o tempo todo sem o jogo explicar por quê; correr de um lado para outro entre bancadas espalhadas; economia sem sentido. "Já temos fôlego, bancadas espalhadas e uma árvore de trinta nós. Estamos construindo exatamente o jogo que recebeu essas críticas, e não percebemos porque ainda não há conteúdo suficiente para doer." Daí três regras para o plano inteiro: toda bancada nova cabe no trajeto de uma existente; todo custo de fôlego novo vem com uma fonte de fôlego nova; toda receita nova responde "quanto isto rende por fôlego gasto". E o acerto a copiar: em certo ponto o jogador para de fazer e passa a mandar fazer, e o jogo muda de escala sem mudar de mecânica.
De Romestead, o favor dos deuses como progressão, que validava o desenho da fé, e o assentamento como personagem. E um item explicitamente recusado: carregar os recursos fisicamente, um de cada vez. "Nosso jogo é sobre trabalho de roça, e um inventário hostil trocaria trabalho por logística."
O que impressiona no plano não é a ambição, é a ordem. "Sete fases. A ordem não é por ambição: é por quanto cada uma desbloqueia das seguintes, e cada uma termina com o jogo jogável." A fase zero era salvar e carregar, "o buraco mais fundo do projeto": sem persistência, a carência de nove dias da mangueira, as vinte tábuas do mirante, a migração de fé, nada disso podia ser sentido por quem recomeça do zero a cada sessão. Saiu naquele mesmo dia, com um portão que salva, recarrega e compara vinte e dois campos, e com a regra que faria o sistema não apodrecer: todo campo público novo entra na tabela do que se guarda ou na lista do que fica de fora, com a razão escrita, e o portão cobra os dois.
Foi também nessa semana que o projeto abandonou, na prática, a convenção de commits semânticos com que Ramon o tinha inaugurado. A regra nova, escrita dias depois num documento próprio, pede que o assunto seja "uma frase em prosa, no presente, dizendo o que mudou no jogo", e não um rótulo de categoria. "A cabra do Seu Benedito dá motivo à pedra, e o Pedro explica de quem é o morro." A razão: uma fatia daqui quase nunca cabe num tipo só; a da cabra mexeu em geração de mundo, em diálogo, em missão e no portão que a segura, e feat(mundo): teria escondido três quartos disso. "O git log deste projeto se lê como a lista do que o jogo passou a fazer, que é exatamente o que se quer procurar nele meses depois."
Há uma consequência menos óbvia dessa regra para um projeto feito com IA. Um assistente que escreve o commit precisa, antes, saber dizer em uma frase o que mudou para quem joga. Quando não sabe, é sinal de que a fatia está mal cortada. Os commits em prosa viraram, sem ninguém planejar, um teste de compreensão aplicado ao próprio assistente a cada entrega.
O dia mais longo terminou com o jogo salvando, com os moradores lembrando de quem lhes dava presentes, com a roça mudando de aparência conforme o cuidado, com cartas de pacto que cobram todo dia e com um arraial que rende conforme a perícia de quem trabalha nele. Três dias de projeto. O que faltava era a prova de que tudo isso continuaria funcionando no dia seguinte, e no outro, quando alguém mexesse ao lado. Essa prova tem nome, e é o assunto do próximo capítulo.
Comportamento novo sem portão novo é comportamento que vai voltar a quebrar.
README do jogo 2D
Num projeto feito com inteligência artificial, a pergunta que importa não é "a IA escreve código bom?". É "como saber se o código continua bom depois que alguém, humano ou não, mexeu ao lado?". A resposta que Myths' Valley deu a essa pergunta é a espinha dorsal de todo o resto, e ela tem um vocabulário próprio. Um teste automatizado chama-se portão. Quebrar o código de propósito para conferir que o portão pega chama-se falsificar. E a regra de ouro, escrita no primeiro dia e repetida em todo documento desde então, é que cada fatia do jogo entra num commit com portão e falsificação.
Ao fim da primeira semana o 2D tinha 47 portões, "cada um roda sem janela e sai com código 1 quando reprova", e o nome de cada um "diz o defeito que ele existe para não deixar voltar". A lista, no README, é uma lista de perguntas. testar_recusas: o jogo sempre diz por que não deu? testar_relevo: o mundo não tem régua? testar_escolha: uma pergunta do diálogo não se responde por acidente? testar_interiores: todo móvel tem arte, e as casas não são a mesma casa oito vezes? testar_pedro: a cena do Pedro não se desmancha no meio, ele entra em casa sem esperar ninguém e entrega o machado na mão? testar_coveiro: a missão do cemitério, e o homem que recebeu o cargo sem a ferramenta?
O documento de instruções para agentes do 2D abre com uma seção cujo título dá nome a este capítulo, e que descreve duas falhas que aconteceram de verdade. A primeira: a rede de segurança fecha o teste. A cena em que Pedro vai buscar os machados tem um teto de vinte segundos, passado o qual ele simplesmente está na porta, porque "caminho bloqueado, malha sem rota ou cena aberta com ele do outro lado do rio não podem prender o tutorial para sempre; snap é feio e é melhor do que travado". Mas com a caixa de fala aberta Pedro não anda. O teste media, portanto, um Pedro congelado, e passava, resgatado pelo teto. Verde, e sem valor.
A segunda: a expectativa de quebra não casa por causa de um acento. O falsificador procura, literalmente, um trecho da mensagem de erro na saída do teste. "esta pedindo" não casa com "está pedindo", e a ferramenta reporta que o portão furou quando o portão está ótimo e quem errou foi a expectativa. A lição ficou escrita: escolha um pedaço da frase sem acento nenhum. Semanas depois, no 3D, a mesma armadilha voltaria por outra porta, com a saída do Godot chegando ao node com os acentos trocados, e a lição foi reescrita para o novo caso.
Um retrato só vale se for tirado de fora do que ele está medindo.
Lição do portão do povoado, docs/PLANO.md
O caso do povoado é o mais instrutivo. O portão devia pegar a perícia de um morador subindo enquanto ele estava parado. Olhava a conta de dias de roça; o dia parado era lançado no ofício "nada", que a roça nunca vê; o portão passava na quebra que existia para pegar. Comparar o caderno inteiro do morador resolveu. E um achado de passagem, que não dava erro nenhum: uma obra correta, catalogada, cobrada, com nome e resumo, e sem caminho até ela, porque mirava uma família de construções que o E nunca abriria. "Era o mesmo buraco por onde a fase inteira cairia, e por isso o primeiro portão do teste é o caminho até a obra e não o efeito dela."
A ferramenta que fecha o círculo nasceu de dois acidentes numa tarde: um sed com âncora frouxa apagou seis continue de uma vez, e uma rodada morta no meio deixou um arquivo sem uma linha. "Dano silencioso faz a rodada seguinte culpar o portão errado." Por isso o falsificador troca texto literal em vez de expressão regular, diz quantas trocas fez, separa "reprovou" de "nem compilou" e devolve tudo num bloco finally. As quebras ficam numa tabela, uma por linha, com o arquivo, o trecho a trocar, o trecho novo e a mensagem esperada. As vinte e cinco quebras do povoado estão lá até hoje.
Duas regras de convivência vieram junto. Não editar o repositório enquanto o falsificador roda, porque ele quebra um arquivo, testa e restaura, e uma edição no meio mede código que não é o do repositório. E não parar o falsificador à força, porque matar o processo pula o finally e deixa o arquivo quebrado: "depois de uma parada forçada, confira o git diff antes de qualquer outra coisa". Já aconteceu uma vez. A quebra "o banco escolhido vira o da frente" ficou no código e só apareceu quando a suíte rodou de novo.
O runner dos portões existe por um motivo caro, e o motivo está em caixa alta nos dois repositórios. Um teste do Godot que morre antes do quit() não encerra o processo: a árvore de cena fica girando, e o que se vê de fora é um Godot vivo e calado. Rodar os testes à mão exigia matar o processo pendurado, e matar pelo nome do executável já fechou o editor aberto de alguém no meio do trabalho, várias vezes, levando junto cena não salva, porque o binário do editor e o de console têm nomes parecidos e o de console levanta o outro como filho. "Matar só por PID, e só o que ele mesmo levantou." O runner tem teto de tempo por teste; com o teto, um travamento vira uma linha de saída em vez de um processo para alguém caçar.
Há uma segunda armadilha do motor que todo documento repete: erro de compilação não derruba o jogo. Um Parse Error deixa o nó sem script e a cena segue, e o estrago aparece longe de onde foi feito. "Já aconteceu: um IdiomaMenu.sufixo() sem o preload passou por onze testes e só reprovou no décimo segundo." Por isso a bateria conta também os erros de análise na saída de erro, e não só o código de saída. E por isso "travou" é um resultado tão ruim quanto "reprovou".
A terceira regra do método é sobre a voz do código. "O código diz o que faz, e o comentário guarda a decisão, a alternativa recusada e a armadilha que o próximo vai pisar." É uma regra sobre pessoas, mas é também uma regra sobre IA: o assistente que lê um arquivo com os porquês escritos faz a mudança certa na segunda tentativa, não na quinta. Os documentos do projeto são escritos no mesmo registro, para si mesmos daqui a seis meses, com o que deu errado no lugar em que deu errado. Boa parte deste livro é, literalmente, esses documentos relidos.
_OK além do código de saída.-Explicar diz o que rodaria e por quê; -Tudo força a bateria inteira antes de fechar build.tests/. Em 9 de outubro o autor declara a bateria inviável no ritmo em que estava, e abre a issue de prioridade máxima que o capítulo 14 discute.Quando os portões migraram para o 3D, uma classe nova de defeito apareceu: o portão sensível ao tempo. Um teste que espera n quadros de desenho e depois confere algo que se move depende de quantos passos de física cabem nesses quadros; sob a bateria completa cabem mais, e o portão falha na bateria e passa sozinho. O assistente anotou a cura na própria memória: contar passos de física em vez de quadros, ou perguntar por aritmética com a física do corpo desligada. Para reproduzir um "falha só na bateria", ocupar todos os núcleos com laços vazios, um por processador, e rodar o portão de novo. Mover o jogador só pela função de teleporte, porque escrever a posição direto deixa a referência de terra firme velha e a regra da queda no mar devolve o corpo meio segundo depois. Usar a máscara certa nos raios de diagnóstico, porque há uma superfície invisível para a câmera na altura da água que responde a qualquer raio sem máscara.
A lista tem dezenas de itens, e cada um custou uma bateria de cinquenta e cinco minutos. "Siga estes antes de declarar um portão instável, e escreva os novos contados em passos desde o começo." Esse acúmulo de lições, guardado onde a IA o relê a cada sessão, é talvez a parte menos visível e mais valiosa do uso de inteligência artificial no projeto: não a velocidade com que o assistente escreve, mas o fato de que ele para de repetir os erros que já cometeu.
O que pesa é o Modelo HD cru: cada geração chega com cerca de 1,9 milhão de triângulos e três texturas 2K. Isso é qualidade de cinema, não de jogo.
docs/arte/ASSETS_TRIPO.md
Na terça-feira 23 de setembro, às nove da noite, Ramon abriu uma branch chamada prototype/myths-valley-3d e registrou, antes de qualquer código, um documento de decisões de quatrocentas linhas.
É o texto mais metódico de todo o projeto, e vale lê-lo como um contrato consigo mesmo. Objetivo: uma experiência de dez a quinze minutos, em terceira pessoa, numa região pequena, com um ciclo de farming concluível e um morador que conversa. Prioridades, nesta ordem: velocidade de desenvolvimento, qualidade gráfica, capacidade de expansão. Referência visual: My Time at Evershine, "personagens estilizados, vegetação, iluminação agradável e composição de uma vila". Prazo: dois fins de semana, 26 e 27 de setembro e 3 e 4 de outubro, com a submissão no dia 5.
O documento decide manter o Godot, em vez de migrar para outro motor, para aproveitar as regras do 2D; escolhe o renderer Forward+, condicionado a teste na máquina-alvo; define o Tripo para "praticamente todos os modelos" e o Mixamo para as animações humanas; proíbe depender de modelagem manual ou de retopologia à mão; e desenha, para a conversa com moradores por IA, uma arquitetura inteira que nunca chegou a ser construída dentro do prazo: um serviço em TypeScript, chave do provedor como segredo no servidor, três componentes de memória por morador, falas roteirizadas de reserva quando a rede cair. A frase que resume a parte de IA dessa arquitetura virou princípio do projeto: "O código define os fatos do mundo. O LLM produz a fala do personagem sobre esses fatos."
Na mesma noite entrou o primeiro protótipo jogável: uma vila de formas simples, um personagem medieval de um arquivo FBX com sessenta e cinco ossos e nenhum clipe de animação, movido por um animador procedural improvisado. Horas depois, o mesmo personagem num GLB com onze clipes exportados do Tripo: repouso, caminhada e corrida escolhidos pela velocidade, oito gestos nas teclas de 1 a 8. "Isso ainda não valida o pipeline completo", registra o documento, com a cautela que o caracteriza. E, no mesmo commit em que configurou o servidor MCP do Tripo, Ramon anotou que as credenciais ficam no perfil local e que nenhuma chave entra no repositório. Esse cuidado com chaves, repetido para cada serviço, nunca foi quebrado nas duas semanas.
Na quarta-feira veio a primeira casa. Uma imagem de referência limpa, em perspectiva de três quartos, foi criada a partir do desenho da casa de Carro Quebrado e enviada ao Tripo Studio, no modelo H3.1: sessenta e cinco créditos. O GLB chegou com 1.915.732 triângulos e 64,8 megabytes; passou por um otimizador e entrou no jogo com 273.548 triângulos e 13 megabytes, no lugar de uma construção procedural à direita da praça. O original pesado ficou fora do Git. Nesse mesmo dia Renato Leal integrou o pau-brasil e escreveu o guia de imagem para modelo 3D, que nasceu de um erro instrutivo: a primeira referência tinha fundo cinza e sombra de estúdio, e o Tripo incorporou partes desse fundo "como um disco sob a árvore e placas atrás da copa". A referência com transparência real produziu uma malha limpa. O guia pede, desde então, fundo realmente transparente inclusive entre os galhos, vista de três quartos, luz suave, e um briefing escrito ao lado da imagem dizendo o que deve e o que não deve existir na malha.
O fim de semana de 26 e 27 de setembro foi o primeiro dos dois previstos, e rendeu trinta e três commits na sexta. O traço vermelho do Google Earth, exportado em KML, passou a orientar ruas, rios, áreas e pontos de interesse em escala horizontal 1:1; depois, por decisão de jogabilidade, a região inteira passou a "1 unidade = 4 metros", e a caminhada da fazenda à praça caiu de uns 890 metros para uns 220. O terreno, a costa e a mata passaram a ser construídos a partir dos vetores. As ruas ganharam textura de terra batida com sulcos de carro de boi; a praça, chão pisoteado com seixos, as duas procedurais e regeráveis por script.
À tarde, a Build 5 e as decisões que definem o vale até hoje. Dois estilos visuais, nunca misturados: Tripo, com os GLBs do Studio via um catálogo único, e Procedural, com tudo por código, inclusive o personagem; a mata e a orla trocam a malha conforme o estilo, e terreno, ruas, rios, mar, luz e som são iguais nos dois. Um ciclo de dia e noite com hora, velocidade e tecla para adiantar. Luzes de 1887: lampiões a óleo na praça e no adro, candeeiros nas portas, fogueira no terreiro e velas nas janelas, acendendo ao entardecer com tremeluzir. Som do lugar por proximidade: mata de dia e de noite em fusão contínua, mar no píer, riacho, fogueira, loops gerados no ElevenLabs. Sete moradores com postos por período, balão de fala e saudação em voz, cada um com uma voz da biblioteca brasileira do ElevenLabs. E Pedro, que acompanha o jogador e narra as missões, praça, capela, casa de pasto, roçado e píer, antes de escurecer.
Foi nesse dia que o Tripo deixou de ser uma ferramenta de clicar e virou uma linha de produção. "Retopologia e exportação de dezenas de peças não se faz clicando." O Studio é uma aplicação web que conversa com uma API, e um script colado no console do navegador, lote_studio.js, passou a repetir, na mesma sessão logada e com os mesmos cabeçalhos que a página envia, exatamente as chamadas da interface: a retopologia, o andamento, a exportação, o link do arquivo. O estado fica no armazenamento local do navegador, a aba precisa ficar visível porque o Chrome segura downloads de abas escondidas, e o script "não imprime nem guarda token: reaproveita os cabeçalhos da própria página".
O lote de 26 de setembro teve sessenta e sete retopologias, uma geração e um rig, e custou 2.755 créditos; o saldo ao fim do dia era de 17.950. Árvores, construções, adereços, os nove personagens em pose T e os itens de mão do 2D: machado, enxada, balde, cesto, moringa, farinha, peixe, jaca, cacho de banana. Pedro recebeu rig com esqueleto Mixamo e sete clipes de animação; no dia seguinte, os outros sete moradores receberam o mesmo, e a pose T acabou.
A mesma mangueira, medida no jogo em 26 de setembro, numa GTX 1660 Ti a 1080p:
| Versão | Triângulos | Resultado |
|---|---|---|
| Procedural, por código | 560 | leve, sem identidade |
| HD reduzido por script externo | 144.564 | folhas serrilhadas; abriu trincas de UV |
| HD → Malha Smart (10.000 quads) | 20.453 | limpa, quase igual ao HD |
Fluxo que ficou: Modelo HD (55 créditos, com a textura 8K desligada) → Retopologia Malha Smart (40 créditos) → exportar GLB com textura 1K para adereços e itens, 2K só para construções de destaque, árvores nomeadas e personagens. "Nunca 8K no jogo." Custo por asset pronto: cerca de 95 créditos. "O gargalo é a curadoria humana, não o crédito."
Houve também uma lição de memória de vídeo. Cada GLB traz três texturas, cor, normal e metal-rugosidade; com sessenta e sete modelos importados sem compressão, a memória de vídeo foi a 2,49 gigabytes. Uma linha no arquivo do projeto, que manda o importador comprimir texturas novas, e uma reimportação depois: 735 megabytes, sessenta quadros por segundo, a mesma aparência à distância de jogo. A consequência ficou documentada: texturas de interface precisam ser marcadas à mão como sem perda, porque o padrão novo as comprimiria também. Duas semanas depois, o assistente ainda tropeçaria nessa regra ao importar dois ícones novos, e a anotaria na própria memória.
Sábado, 27 de setembro: o fundo do mar passou a seguir a carta náutica DHN 1108 da Marinha, Baía de Todos os Santos, Porto de São Roque e proximidades, na escala de 1:15.000; a carta original não é redistribuída, o jogo leva só a grade de profundidade derivada. O jogador passou a nadar; a foz do rio apareceu; as ondas vieram em séries; o chão ganhou som por tipo de piso; o carregamento passou a ser em etapas, sem congelar. Domingo, 28: a Build 6, com a maré que sobe e desce de verdade e um tubarão que patrulha a água funda; a igreja do Bom Jesus modelada a partir de fotos do lugar real, junto com os coqueiros, as castanholas, as pedras da praia e do recife e os barcos sem letreiro; sete espécies da vegetação local de Saubara, manguezal, restinga e beira de rio; as músicas por período do dia; e a tela de carregamento com a identidade que a abertura usaria a partir dali, "Crônica do Recôncavo". Renato, nos mesmos dias, ligava os controles de mouse e o posicionamento seguro das casas, e refinava o terreno, a mata, a costa e o píer, e trazia as texturas de estrada ocre.
A outra metade da equipe não parou. Entre 24 e 28 de setembro o 2D recebeu o combate no mundo, com a vida como conta separada do fôlego, as criaturas da mata e o golpe de volta; a arte da onça em quatro direções, a toca e o couro; a trilha da fazenda pela mata, a pinguela, a passagem de pau de lei e a onça no penedo; a luta ensinada, com o golpe forte, a capoeira do candomblé e o bote anunciado; e a jararaca no brejo, com a peçonha e o chá que a corta. A geração dessas animações por texto rendeu um pequeno manual de prompt: "A jaguar pounces" visto de costas deu uma onça de pé, braços abertos; de frente, um tigre. "O que consertou foi dizer o que não pode: stays on all four legs, never standing upright, round rosettes (not stripes)." E a cobra não tem quadril: a folha de andar dos outros bichos é montada cortando a pose parada na altura das pernas, o que numa cobra dá uma cobra pulando; a da jararaca é desenhada, seis quadros de rastejo por direção.
Na sexta-feira 26 saiu a ida à fazenda: quando o jogador termina o que tinha para fazer, o dia cai, Pedro vem buscar e o arraial inteiro atravessa o rio. E veio a rodada do playtest, quinze achados de quem jogou, riscados ao longo dos dias seguintes: a fala pulada pelo martelo, o Pedro que atravessava o mapa para explicar missão ("ninguém atravessa o mapa para explicar missão: o Pedro fala de onde está"), a cena da chapada dentro da terra do vizinho, a lapa que não trancava a rampa, a receita que agora se aprende. Era o 2D cumprindo o papel para o qual nascera: errar primeiro, barato, para que o 3D errasse menos.
No domingo à noite, com seis builds de trabalho no 3D e quarenta e sete portões no 2D, o autor tomou a decisão que abre a segunda parte deste livro.
29 de setembro a 2 de outubro. O autor decide que o 3D vira o jogo completo. Mede-se, arquivo a arquivo, quanto do 2D atravessa sem reescrita; a resposta é quase tudo. Os sistemas cruzam o rio, cada jogo ganha a sua casa, e o vale passa a montar em cinco segundos.
Anotação de tipo é acoplamento tão real quanto chamada de função, e não aparece em busca nenhuma por nome.
Registro histórico do desenvolvimento 3D
Três decisões do autor, registradas em 29 de setembro, ordenam tudo o que veio depois: o 3D vira o jogo completo, e o 2D passa a ser a referência de regras; a migração é a prioridade, e a jam de 5 de outubro entra com o que estiver de pé; e o que o 3D já tem, fica. A terceira é a regra que manda nas outras. "Migrar aqui quer dizer acrescentar, e nunca refazer o que já está de pé." Asset 3D nunca é trocado por arte 2D; mecânica que já funciona no 3D continua dona do assunto dela; só nasce do zero o que o 3D não tem. "O teste de cada fatia: se ela apaga, reescreve ou aposenta código ou asset que hoje roda no 3D, ela está errada e precisa ser recortada de outro jeito."
Antes de mover uma linha, mediu-se. A pergunta era "quanto do 2D dá para aproveitar", e a resposta, arquivo a arquivo, foi "quase tudo, e por um motivo que não foi sorte: o 2D guarda regra em autoload e desenho em cena, e nunca misturou os dois". Dos trinta autoloads de lógica, vinte e cinco não citam um único tipo 2D: fôlego, vida, progressão, as duas teias, as três fés, inventário, cartas, coleção, receitas, cozinha, oficina, obras, venda, afinidade, povoado, luta, ritos, equipamento, jornada, relógio, áudio, efeitos, controles, telas e versão. Cinco mil, trezentas e vinte linhas de regra que rodam igual num jogo 3D. Dos cinco restantes, três eram falso positivo, e sobravam dois acoplamentos espaciais de verdade: o alvo da bússola, uma assinatura; e os terrenos, duas funções. Dos dezessete scripts de interface, dezesseis desenham por cima do jogo sem saber se ele é 2D ou 3D.
A única peça de arquitetura nova que a migração pediu chama-se Lugares. É um contrato de três funções que traduz nome de lugar em posição, e cada projeto implementa o seu: no 2D, embrulhando os trinta e sete acessores que já existiam (o vau, a oficina, o píer); no 3D, lendo as âncoras do construtor de mundo (Praça, Igreja, Píer, Roçado, Cemitério). A missão que antes apontava para uma coordenada passa a apontar para um nome, e quem resolve o nome é o mundo em que o jogo está rodando. "Ninguém planejou essa simetria, e é ela que torna a migração um trabalho de costura em vez de reescrita."
Trocar coordenada por texto, porém, troca erro de compilação por erro calado: uma coordenada errada não compila; um nome errado compila e some a bússola. Por isso o portão do 2D varre o próprio código-fonte atrás de todo nome escrito à mão e cobra cada um contra o contrato. E houve um achado ainda mais sutil: a função que resolvia o alvo declarava o tipo da posição como vetor bidimensional. A costura devolve um vetor 2D de um lado e 3D do outro; declarar o tipo faria ela servir só de um lado, "que é exatamente o que ela existe para evitar".
A ordem prevista para a travessia errou três vezes, e as três só apareceram medindo. O relógio, que parecia o sistema mais emaranhado por ser o único em que os dois jogos se sobrepunham, era o mais solto de todos: cento e vinte linhas, zero dependências. A fé dependia do calendário, e por isso o calendário tinha de vir antes, e não na penúltima fase. E o salvamento, "que parecia o mais emaranhado, atravessou sem uma linha de adaptação porque usa get_node_or_null em toda parte e degrada sozinho onde um sistema não existe". Uma dependência escapou de qualquer busca: o salvamento carimba o save com a versão do jogo, e a expressão regular que listava dependências não conhecia esse nome. O erro apareceu como um Parse Error no primeiro teste. O conserto saiu melhor do que a migração teria saído, com o 3D ganhando a própria versão, lida do histórico de builds dele.
Outra descoberta: o que prende um autoload ao 2D quase nunca é o tipo, é a entrada. O inventário não citava um tipo 2D sequer e mesmo assim não atravessava, porque doze linhas dependiam das ações de teclado desse projeto; "doze linhas de entrada prendiam 174 de regra". A separação virou regra: fica no 2D qual tecla aciona e que telas bloqueiam a tecla; atravessa o que a ação faz. O catálogo de itens parecia depender de quatro sistemas e os citava só em comentário. "Medir dependência por busca do nome superestima tanto quanto contar tipo subestima; os dois erros se cancelaram por acaso, e nenhum dos dois é medida."
Regra copiada é regra sem portão.
A objeção, e a resposta a ela
A recomendação inicial era uma pasta compartilhada lida pelos dois projetos. Não dá, e a razão é do motor: a raiz de recursos é a raiz de cada projeto. Link simbólico no Windows traz dois problemas piores. Então ficou a cópia conferida: o dono da regra é o 2D, sempre; o 3D tem um espelho; um script move o espelho; e um portão compara os dois byte a byte e reprova com o nome do arquivo que divergiu. A objeção do próprio plano foi respondida dando-lhe o portão. Em 1º de outubro, quatro arquivos já tinham divergido por uma regra que nasceu no 3D, o machado como item de encaixe de mão, e a dívida ficou escrita, com as duas saídas possíveis e a decisão deixada ao autor, enquanto o conserto que valia para os dois lados entrava nos dois à mão.
A travessia em si levou dois dias. Em 29 de setembro, o vale ganhou o outro lado da costura, fôlego, mochila com trinta espaços e um catálogo de cinquenta e um itens, as missões do Pedro em dados nos três idiomas, o calendário, a teia, as três fés e os sete moradores, o sistema de missões apontando para lugares daqui, venda e pesca, e o save de três vagas; e a Fase 2 fechou, com vinte e cinco arquivos compartilhados. Pedro Almeida assinou nesses dias a vida no vale, o caititu que anuncia o bote antes de morder, o painel J, a coleção, as obras com ganho no corpo e a fala longa com escolha de sim e não. Em 30 de setembro vieram a Dona Filó mandando o pirão ao Tonho, o almanaque como índice e página, os cordéis e o sinal da Caipora, o pacto firmado no lugar do mito, a pesca no mar e no rio, a cozinha no fogo do terreiro, a tábua serrada na bancada do roçado, a mochila na roda do mouse, e as séries da Dona Zefa e do Tonho inteiras. Renato fez os coqueiros caírem com machado e gastarem vigor, e voltarem em vinte e quatro horas de jogo.
Os dois repositórios, dia a dia. O 2D concentra a primeira semana; o 3D cresce a partir do primeiro fim de semana e domina a reta final. A tabela gêmea está no Apêndice B.
Uma decisão de desenho merece registro, porque é a primeira em que o 3D deliberadamente não copiou o 2D. O vale ganhou um mecanismo próprio de missão, o Caderno do Vale, em vez da checklist do 2D: "missão nova aqui pode ter padrão, formato e ordem diferentes do 2D, e o 2D é referência, não dono". O que se perdeu de propósito foi a lista de itens; missão do vale tem uma linha de andamento, escrita por quem conduz: "Juntar lenha: 1 de 2". A fila virou uma peça reutilizável, pendurada em cada morador, lendo um arquivo de dados por dono, com quatro tipos de meta, e cada um nasceu de uma missão do 2D que não caberia nos anteriores: juntar, da lenha do tutorial; derrubar, do capim do Damião; levar, do pirão da Filó e das seis canas da Candinha; falar, do "fale com o Cosme". Seis cadeias atravessaram com portão próprio, e um portão geral varre todas elas e cobra que toda missão seja cumprível: meta que a cadeia sabe medir, material que sai de algum lugar, morador procurado que mora aqui. "Missão nova entra nessa conta sozinha."
E uma armadilha para quem escrevesse a próxima: passo cujo lugar não resolve pula em silêncio, de propósito, para o vale a meio não travar numa âncora que falta. "A consequência é que um erro de digitação não quebra nada: só apaga o meio da missão, e ninguém fica sabendo." Aconteceu ao escrever a rede do Tonho, que apontava para uma oficina ausente, e o portão do Tonho passou a perguntar ao Lugares antes de jogar.
O 3D falava três línguas no menu, português, inglês e espanhol, e o vale em si nunca precisara traduzir nada. A migração acabava com essa folga: entravam 146 quilobytes de fala, missão e enredo, todos em português. O autor decidiu: tudo traduz. "O conteúdo triplica, e cada texto novo passa a nascer três vezes." A forma era a que o projeto já usava, três campos no mesmo objeto; e a regra virou exigível: um portão varre os arquivos declarados e reprova quando falta uma tradução, "e também quando a tradução é cópia do português, que é o jeito mais comum de uma tradução faltar sem parecer que falta". O que ainda não foi traduzido mora numa lista com a razão escrita de cada um: dívida registrada, não dívida esquecida. A primeira consequência prática foi tirar as missões do Pedro de dentro do código, porque "texto em constante de GDScript não tem como ser traduzido". E a tradução em si ficou com Ramon, por decisão do autor: "são 58 KB de prosa em registro regional, 'Bora pro píer', 'casa de pasto', 'o pão desta terra', e isso não é trabalho de tradutor automático nem de quem não tem ouvido para o tom".
O plano inteiro virou trinta e duas issues no GitHub, em dois marcos: Jam 04/10, com seis (missões nas âncoras que existem, mochila, fôlego no HUD, teclas das telas novas, o primeiro lote Tripo e a tradução), e Pós-jam, com as vinte e seis restantes. "A issue é a unidade de trabalho, e este documento é o porquê dela." A regra do corte da jam era uma frase: nada entra na demo sem portão.
O vale monta em cinco segundos, e não em vinte e nove.
Commit de 2 de outubro de 2026
A quarta-feira 1º de outubro foi um dia de arrumação, do tipo que não aparece no jogo e decide se ele continua existindo.
O autor decidiu separar o 3D do 2D em repositórios independentes. O vale passou a abrir na raiz de acentauric/myths-valley-3d, com um histórico que conserva apenas os commits exclusivos da linha 3D e os caminhos necessários a ela; os hashes mudaram com o recorte, mas autoria, datas e desenvolvimento foram preservados. Modelos GLB, FBX históricos e áudio WAV passaram para o Git LFS. O 2D ficou independente, o sincronizador entre os dois saiu, e os comentários que diziam "o 3D usa este arquivo" foram apagados. A issue que pedia a decisão, aberta de manhã, fechou à noite.
O diário do site registra um susto do dia: uma branch perdida na separação, com o sobrevoo novo do menu, foi recuperada no mesmo dia. E o histórico anterior ao recorte, cento e quarenta e nove commits do primeiro protótipo 3D até a Build 7, ficou guardado só na máquina de Matheus, em branches locais e numa pasta de backup, por decisão explícita: "não faça o upload do backup". O assistente anotou a instrução na memória para não voltar a oferecer.
No mesmo 1º de outubro, um levantamento "a partir do plano, dos documentos e das dívidas declaradas no código" abriu as issues de 33 a 62 do repositório novo. Lidas hoje, elas são o retrato do que faltava a quatro dias da submissão. A build Windows distribuível em ZIP, "a pasta inteira e não só o executável", testada por outra pessoa, em outra máquina, sem o editor. O número do build da jam, o histórico no jogo nos três idiomas e uma tag. O pacote de submissão: gravação do percurso real, prancha de assets, registro do pipeline Tripo → Godot, um LEIA-ME curto, a conferência do regulamento, "e declarar o que veio da base 2D: não afirmar elegibilidade sem verificar". O roteiro da demo e a relação com o tema: o percurso planejado em setembro, sementes, presente, morador que lembra, dependia da plantação e da conversa por IA, que ficaram fora da jam; o roteiro precisava ser refeito com o que o vale já tinha, "e dizer onde o presente aparece". As licenças de cada asset antes de publicar. E a issue 62, "Demo Day em São Paulo", com três caixas: decidido se a equipe vai; inscrição feita; build e material de apresentação para o dia.
A quinta-feira 2 de outubro teve só dois commits, os dois de Ramon, e um deles é o que dá nome ao diário daquele dia. A montagem do vale, a sequência de passos que transforma os vetores em terreno, ruas, mata e vila, caiu de vinte e nove para cinco segundos "mantendo o mundo idêntico bit a bit". A ressalva é a parte importante: uma otimização que mudasse a posição de uma árvore que fosse invalidaria os portões que medem o sobrevoo e a navegação, e a floresta é plantada por um gerador de números com semente, em que rejeitar um candidato desloca todas as árvores seguintes. O outro commit fez o sobrevoo do menu, a câmera que passeia pelo vale atrás do retábulo da abertura, contornar árvores e casas pelos lados, sem subir, por um trajeto gravado num arquivo de dados, e silenciou a tela de carregamento.
Esse sobrevoo tem uma ferramenta própria de planejamento, com um extrator de geometria em GDScript e um planejador em Python que pede numpy e scipy, e dois portões que reprovam quando o trajeto passa a menos de cinco metros de qualquer coisa. "Mexeu em árvore ou casa perto dele e os portões reprovaram: replaneje pelo roteiro em vez de afrouxar o portão." Dias depois, na máquina de Matheus, que não tem Python instalado, o assistente resolveria a dependência baixando um interpretador portátil para a pasta temporária da sessão, instalando as duas bibliotecas e avisando que nada ficou instalado na máquina. Três minutos. É um bom exemplo da fronteira entre o que uma IA faz sozinha e o que ela deve dizer que fez.
Em 1º de outubro, enquanto os repositórios se separavam, Ramon registrou no 2D o único commit dele daquele mês ali: as criaturas passam a nascer no primeiro dia de uma partida nova, e os testes usam partidas descartáveis. Era a última manutenção do laboratório. Daquele dia em diante, o 2D parou no tempo como referência, com 365 commits, 128 scripts, 47 portões e 1.783 imagens, e todo o esforço foi para o vale.
O segundo fim de semana da jam começava no dia seguinte, com um prazo que a página oficial do Tripothon dava em horário de ilha, o fuso mais tardio do planeta, e com uma lista do que ainda faltava que não cabia em dois dias. O que coube, e como, é a terceira parte deste livro.
3 a 5 de outubro. As primeiras builds públicas, as casas que se entram andando, a identidade em talha dourada, catorze mil créditos numa noite, uma investigação de desempenho de 684 linhas e a submissão ao Tripothon no último dia do prazo.
Os cômodos têm que ser em 3D mesmo. O 2D é só referência.
O autor, 3 de outubro de 2026
Sexta-feira, 3 de outubro, foi o dia em que o vale deixou de ser uma pasta no computador de quatro pessoas.
De manhã, Ramon fechou a Build 7, a primeira publicada para download, e à tarde a Build 8, com os créditos da equipe na tela "Sobre". O jogo passou a se atualizar pelo site: ao abrir o menu, o executável pergunta a uma API pela build mais nova, baixa o pacote, confere o SHA-256 do manifesto, extrai ao lado do executável, guarda o atual como .old e pede para reiniciar; na abertura seguinte, as sobras somem. "A distribuição ainda confia no servidor HTTPS: o hash vindo do mesmo servidor não equivale a uma assinatura independente da publicação", avisa o README, no tom de quem prefere dizer o limite a fingir que ele não existe. No mesmo dia, as partidas salvas e os arquivos de atualização passaram a ser validados antes de abrir.
O README reescrito naquela sexta merece uma pausa. Ele apresenta o jogo, Pedro, o Recôncavo, e depois faz uma coisa rara em material de concurso: declara, em inglês, o que existia antes do evento e o que foi feito durante. "De acordo com o relato de desenvolvimento do autor, o desenho do jogo, os protótipos jogáveis e essencialmente todos os assets foram desenvolvidos depois do convite por e-mail do evento, no período de desenvolvimento do Tripothon. O experimento 2D começou no mesmo período, e parte da lógica, dos dados e da interface foi adaptada dele para o 3D." As datas dos dois históricos do Git estão lá. O universo narrativo, esse sim, preexistia, e o texto diz isso também.
Do lado de Matheus, 3 de outubro foi o dia mais produtivo de todo o projeto: trinta e três commits, numa branch chamada "playtest de outubro". A tela do arraial passou a ser desenhada, com retratos, corações, barra de afinidade e presentes, e os retratos passaram a ser fotos tiradas do modelo 3D de cada morador, num estúdio de retrato que nasce, fotografa e some. O J virou um diário de missões, com o HUD, a seta e a bússola seguindo a missão acompanhada. O machado subiu para a mão; o relógio passou a perguntar antes de parar. A fé chegou ao chão do vale: os seis marcos, o rito, a troca e a teia da fé na tecla K; a Dona Zefa mostra os três lugares; no dia da festa de cada fé, quem é dela vai ao marco maior à tarde.
E a igreja do Bom Jesus abriu por dentro, "o primeiro cômodo do vale". A primeira versão teleportava o jogador para um cômodo a quatrocentas unidades de distância, com um escurecimento no meio. Durou poucas horas. O autor foi claro, "os cômodos têm que ser em 3D mesmo, o 2D é só referência", e, perguntado entre duas alternativas, escolheu "dentro da construção". A versão que ficou mede a casca do modelo com uma colisão temporária, remove a caixa de colisão da construção inteira, levanta paredes, porta e rampas por dentro, e põe cortinas de câmera que a mantêm do lado do jogador. Entra-se andando, Pedro entra atrás, o mapa e o save veem a posição real. A regra virou memória do assistente, para que nenhum interior futuro voltasse ao teleporte.
Pela mesma porta entraram, no mesmo dia, a casa herdada, "e a cama vira o dia"; a lavoura com a regra do roçado do 2D; os moradores andando pela malha de navegação; o cemitério do Damião, com mato, conserto, cercado e a capelinha de costas para o mar; as casas do Pedro e da Dona Zefa, cada uma com o interior de quem mora, a rede de pesca e os remos numa, as ervas secando e o pilão na outra; o tronco caído, a capelinha pobre e o mestre Quirino, chegados do Tripo num lote de dezoito peças; o saveiro do mestre, que encosta no píer uma vez por estação; as árvores que se cortam e voltam em um ano; a canoa sólida na medida do desenho; e a mochila mostrando o personagem em 3D com o que ele veste.
Os dez cordéis do 2D, dez folhetos de verso original escritos na primeira semana, pendem agora num barbante e abrem num papel em alta resolução com a capa de cada um. As capas vieram da OpenAI, pelo modelo de imagem gpt-image-2, com um roteiro que primeiro estima o custo sem gastar e só gera com pedido explícito, e com as cenas e o estilo num arquivo de dados ao lado. São xilogravuras, no sentido estrito: preto sobre papel pardo, goiva grossa, a tradição das capas de cordel do Nordeste. É um dos lugares em que a IA de imagem foi usada não para imitar uma foto, mas para prestar homenagem a uma técnica que o jogo cita.
gpt-image-2 a partir de um arquivo de cenas revisado a mão.No fim do dia havia duas pull requests abertas, a 73 e a 75, com o playtest de outubro e a casa do jogador, e uma main que tinha andado por baixo delas com o trabalho de Ramon e de Renato. A equipe estava com medo de quebrar o jogo juntando tudo na interface do GitHub, e o pedido do autor foi preciso: criar uma branch local de migração a partir da main remota, juntar nela todas as branches que cobriam as PRs, fazer a bateria inteira passar ali, consertar o que reprovasse, deixar a main local intocada e só empurrar quando ele autorizasse.
Foi assim que se descobriu quanto um merge esconde. O Git só avisa de conflito de texto. Depois de cada junção, o assistente conferiu à mão: os chamadores de qualquer função cuja assinatura mudou (uma função de botão de canto passou de pixels para índice de coluna, e um chamador que só existia numa das branches ficou fora da tela, sem erro nenhum); ramos duplicados num match, que o Git funde em silêncio; chaves repetidas nos dicionários de tradução, que no GDScript são erro de análise. Na segunda rodada, dois dias depois, a lista cresceu: texto e áudio gravado de tutorial que ensinavam uma mecânica que o outro lado mudara, com três falas do Pedro reescritas e regeradas no ElevenLabs; um tipo novo de morador mudo passando por um caminho antigo de conversa, balão vazio e relógio preso; um intervalo de verificação que a taxa de regeneração do outro lado ultrapassava; coisas postas por coordenada caindo dentro de zonas recém-plantadas; uma letra nova fixa no HUD que a tabela de atalhos não conhecia; e uma sobreposição desenhada numa camada abaixo da do HUD. "Quando um portão fica vermelho depois de um merge, primeiro pergunte se a métrica dele ainda vale no mundo juntado, antes de tocar no jogo."
Em 4 de outubro, perguntado sobre como juntar sua branch com uma main que tinha mudanças de design conflitantes de um colega, o autor respondeu: "faça o que for mais adequado dentro do enredo e mecânica do jogo". A instrução virou regra de trabalho para o assistente: resolver conflitos de design a favor do que os documentos do autor e os portões codificam naquele momento (lidos de novo, nunca de memória), manter o trabalho do colega que não conflita, provar pela bateria que o resultado é melhor do que qualquer um dos lados, e listar no corpo do commit e no relatório final cada mudança sobreposta, para que o autor possa levá-la à equipe. "Ainda assim, confirmar antes de passos para fora que o pedido não cobria: juntar na main, comentar nas PRs."
O desenho muda. Em 4 de outubro os documentos do autor tinham vigor e fôlego como dois medidores e a coluna do HUD dentro do menu; em 5 de outubro o autor pediu para trazer "tudo que ele fez" da atualização de Ramon e Renato, e a main passou a ter um corpo de três barras, vida, fôlego só para o nado e vigor para o esforço, e a coluna de ícones de volta no HUD. "Esse é o desenho vigente; o assistente marcou a reversão no relatório em vez de desfazê-la."
Às onze da noite de 3 de outubro, as builds 7 e 8 foram trazidas para a branch do playtest; às duas da manhã seguinte, o site do jogo mostrava um vale com download, diário e moradores. Faltavam dois dias.
Uma moldura dourada, o vale real como fundo e nada de decorativo somado ao que já é bonito.
Direção visual, mythsvalley.app.br/direcao
Sábado, 4 de outubro, foi o dia de Ramon: vinte e cinco commits, quase todos na entrada do jogo. A abertura passou a perguntar o idioma antes de carregar o vale, com o idioma do sistema sugerido na primeira vez e a prévia dos textos mudando conforme o botão sob o mouse. O menu ganhou a moldura em SVG compartilhada com o site, os filetes e a talha de acanto da home, preservada em nove fatias para esticar sem deformar os cantos. A versão e o build passaram a identificar a tela de entrada; o histórico virou páginas sem rolagem; os moradores e os assets ganharam fichas em cartões com prévia 3D que gira. As trilhas passaram a entrar e sair em fades. O jogo abre em tela cheia, F11 alterna. E o cursor virou escolha: um estudo de cinco propostas em SVG numa rodada, outra rodada "com a mão de indicador e setas limpas", e seis conjuntos no fim, com nomes de inventário de sacristia: Clássico, Ouro polido, Azulejo, Talha com punho, Pergaminho, Luz do lampião.
Esse conjunto tem nome, "Crônica do Recôncavo", e nasceu em 28 de setembro, quando a identidade visual do 3D foi gerada de uma vez com o modelo de imagem da OpenAI: o logotipo em talha dourada, com um azulejo azul ao centro do filete; as capas pintadas de dia e de noite; a rosa dos ventos; a moldura de retábulo. As fontes vieram do Google Fonts sob licença aberta: Cinzel para títulos e ações, Cormorant Garamond para o texto. A paleta é a de um retábulo baiano: ouro, creme, cobalto, laca, talha e papel. Este livro usa a mesma Cinzel nos títulos e as mesmas cores, por motivos óbvios; no texto corrido, troca a Cormorant pela Literata, feita para a leitura longa.
A página de direção do site resume a estética do projeto em sete áreas, e cada uma cabe numa frase. Direção visual: uma moldura dourada, o vale real como fundo e nada de decorativo somado ao que já é bonito. Arte 3D: os assets com identidade nascem no Tripo Studio, e só a versão leve entra no jogo, nunca o arquivo bruto em alta definição. Direção de mundo: o KML dá o terreno, o autor compõe o vale em cima, e o mundo muda com a hora e com a maré. Direção sonora: cada lugar tem a sua camada de som, cada pessoa tem uma voz, e o jogador manda no volume. Direção histórica e narrativa: Bom Jesus dos Pobres em 1887 é uma vila de pescadores às vésperas da Abolição, e deve ser reconhecível por quem é do Recôncavo. Direção técnica: regra separada de apresentação, lugares nomeados em vez de coordenadas, e nada entra sem portão. Decisões de projeto: concluir uma experiência pequena de ponta a ponta antes de ampliar, e registrar cada mudança com o impacto no prazo.
Renato passou o sábado no corpo do jogador. O HUD ganhou três barras alinhadas, com nomes traduzidos: vida, fôlego e vigor. Corrida, salto e as ações que gastam energia gastam vigor; só o nado em água funda consome fôlego, e, quando ele acaba, continuar nadando causa dano à vida. O nado parado ficou nivelado na água. Matheus, do seu lado, trouxe para a casa do jogador a tela cheia e o cursor de Ramon, pôs as vagas de salvamento em cartões com lápis e lixeira, deu a cada partida pontos de restauração, e vestiu as Mãos com luvas de couro, porque "no campo mãos do inventário, não é para armas, mas sim para luvas". O ícone das luvas veio do PixelLab, no mesmo estilo dos itens do 2D; o modelo, do Tripo.
E a chegada mudou de natureza. Em vez de um passeio por cinco lugares, Pedro apresenta a vila pelo que cada morador precisa: a chegada virou "os pedidos do arraial", e as obras passaram a se fazer em mutirão. É a primeira resposta concreta ao tema do concurso dentro do jogo, meses antes de qualquer tela de diálogo com IA: o presente não é um item, é o arraial se reconstruindo com a ajuda de quem chegou.
À noite, Ramon deu à travessia, a abertura narrada em que o jogador atravessa a baía de saveiro, uma narração própria "em trechos e um tema novo". O método vale registro, porque junta três IAs em série. O texto da narração vira voz no ElevenLabs, com o narrador do próprio Batalha de Mitos. A gravação inteira passa pelo Whisper, o modelo de transcrição da OpenAI, que devolve o instante de cada palavra. E um roteiro corta o áudio pelos tempos do Whisper, um trecho por legenda, para que o texto na tela apareça quando a voz chega nele. Dias depois, a mesma técnica seria pedida para sincronizar vídeos do LTX à narração, e para alinhar as legendas em inglês, espanhol e chinês.
Uma particularidade do trabalho de Ramon aparece no rodapé dos commits dele: dezesseis trazem o endereço de uma sessão do Claude Code na nuvem, em Linux. Isso teve consequência prática. Um arquivo de configuração versionado com um comando do Windows quebraria as sessões dele; e o runner de testes que ele reescreveu em 5 de outubro, testado em Linux, quebrou na máquina de Matheus, com o PowerShell 5.1, por duas razões miúdas: o caminho do projeto, que tem um espaço, chegava sem aspas ao motor, e um marcador de ordem de bytes entrava nos caminhos passados ao Git. O conserto saiu no mesmo dia, e a lição ficou na memória do assistente: configuração de máquina fora do repositório, com o comando de cada sistema documentado; e "quando a ferramenta dele chegar, rode aqui antes de confiar num vermelho".
Às onze e meia da noite, as quinze construções do vale viraram uma composição editável dentro do editor do Godot, e a branch de migração absorveu a main pela quarta vez no dia, "às 23h29". A junção foi empurrada com autorização. Faltava um dia.
O vale nunca chega a 60 FPS nesta máquina, em nenhum lugar e para nenhum lado.
Relatório de desempenho, 5 de outubro
O domingo da submissão começou de madrugada e não acabou. Quarenta e sete commits, vinte e dois de Matheus, vinte e dois de Ramon, três de Renato, numa sequência que o changelog registra hora a hora. Às primeiras horas, a lista ordenada das missões do 2D virou documento-base da migração, e o editor do Godot ganhou uma ponte: um addon que deixa o assistente ler e editar cenas e scripts com o projeto aberto, auditado antes de entrar, só respondendo no endereço local, mudo no jogo exportado e nos portões. O runner de Ramon passou a rodar só os portões que a mudança alcança, e Matheus o fez voltar a rodar no PowerShell 5.1.
Pela manhã, o jogo passou a começar em cima do saveiro, com Pedro conduzindo a chegada até a casa. Falar com os moradores virou a tecla E, que Pedro ensina; toda missão cumprida escurece a tela e festeja. As frentes do 2D que não pediam lugar novo chegaram de uma vez: armas, ofício, capoeira, a meta dos caititus, a caderneta, a primeira refeição. E as que pediam lugar chegaram com o lugar: a ponte do rio grande, cercada até a obra, com o socorro do mungunzá para quem esgota o fôlego no meio dela; o canteiro de obras no roçado; a chapada do Seu Benedito, de frente para o rio grande; a lapa e a cabra, com a rampa trancada; e a jornada da fazenda, com o portão baixo do capítulo 6 e o dia em que Pedro vem buscar.
O commit de Ramon das duas da tarde tem um assunto que é um inventário: "Chegam do Tripo os moradores, os bichos, os peixes, as casas e a flora da noite, e da OpenAI as texturas do chão". A noite anterior tinha sido a maior produção de assets do projeto, feita por uma ponte: o Playwright MCP, uma ferramenta de automação de navegador, conectado ao Chrome de verdade pela extensão oficial, com o usuário escolhendo a aba e aprovando a conexão. Por essa ponte, um segundo script, lote_producao.js, levou cada item de uma lista, chave, prompt, polígonos, textura, pose T, rig, pelo caminho inteiro: geração em alta definição, retopologia, rig quando pedido, animações prontas uma de cada vez, exportação. O estado ficava no armazenamento do navegador; rodar de novo continuava de onde parou.
O extrato da carteira do Studio registra o resultado: cento e vinte e cinco gerações, cento e cinquenta e oito retopologias e quarenta e dois rigs, 14.035 créditos. Catorze moradores novos, do vigário ao saveirista, em pose T, com rig e animações. Trinta e um bichos, do bode ao urubu, os quadrúpedes com o rig do Studio e o andar pronto, as aves paradas animadas pelo jogo. Dezessete peixes, raias e o tubarão, que nadam por shader. Vinte e cinco espécies de plantas de paisagismo e de mata atlântica, mais a gameleira. Doze casas novas e a casa de farinha. Dezesseis adereços de quintal, roça e trabalho, do galinheiro ao carro de boi. Nove objetos de ofício e itens de mão. E, por retopologia sobre o projeto original de cada árvore, trinta e duas versões leves e de longe, com a mesma forma e a mesma textura, para o nível de detalhe.
As texturas do chão vieram da OpenAI no mesmo dia: nove camadas, grama baixa, capim seco, folhiço de mata, terra batida varrida, barro vermelho, pedrisco, areia de restinga, lama de mangue e terra arada, contínuas, com a altura no canal alfa, misturadas por um shader conforme o solo. O vale, nas palavras do commit seguinte, "fica vivo: céu e chão de verdade, mata e quintais plantados, moradores com jornada, bichos, cardumes e a câmera sem salto".
Foi nesse vale vivo que o desempenho desabou. Entre a madrugada e a tarde, enquanto os lotes entravam, Matheus pediu ao assistente uma investigação, com uma regra: medir tudo, não mudar nada. O relatório tem 684 linhas e abre com um veredito em uma página. Numa GTX 1660 Ti de notebook, em tela cheia 1080p, no estilo Tripo, em 128 vistas do vale, 16 lugares por 8 rumos de câmera, o jogo fazia no mínimo 5,3 quadros por segundo, na mediana 13,4 e no máximo 30,1. Em 127 das 128 vistas, menos de trinta. Entre 1,9 e 8,9 milhões de triângulos por quadro. Carregamento do idioma até poder andar: cerca de 95 a 99 segundos, com um congelamento de 19 a 20 segundos num único quadro, duas vezes.
As causas, medidas uma a uma por testes A/B que ligavam e desligavam uma coisa de cada vez: triângulos demais, quase todos de vegetação, 17.601 instâncias e 46,7 milhões de triângulos no nível mais detalhado, com o tempo de GPU seguindo os triângulos quase em linha reta, dez milissegundos por milhão; todo modelo do Tripo desenhado dos dois lados, porque os GLBs chegam com faces duplas; a sombra do sol redesenhando 3,7 milhões de triângulos por quadro; e, na praça e na casa da estrada, uma espiral de física: com o quadro lento, o motor roda até oito passos de física por quadro para alcançar o relógio, cada passo custa mais de dezesseis milissegundos, e o jogo afunda a cinco quadros com a placa folgada. O minimapa desenhava o mundo 3D de novo a cada quadro. O vale era montado duas vezes, uma atrás do menu, outra no JOGAR. E um defeito de cache refazia uma grade vinte e três mil vezes, congelando a tela dezenove segundos por montagem; a correção era uma função de dez linhas.
Havia ainda um achado fora do jogo, na seção 4.7: a placa de vídeo do notebook estava presa num estado de energia baixo, a 17 watts de 60, com os limitadores de potência ativos desde que a máquina ligara. "Isso não é causa do jogo, mas multiplica todas as outras e vale cinco minutos de conferência antes de qualquer decisão."
As três vistas de referência, antes e depois do pacote de correções da Build 9. A tabela gêmea está no Apêndice B.
As decisões saíram da tabela "O que decidir hoje". Corrigir o cache da costa. Cortar a espiral de física com um teto de três passos por quadro. Minimapa a poucas atualizações por segundo. Descartar faces de trás nos modelos do Tripo, com conferência visual nas peças finas, varal, vela, cerca, folha de palmeira. Encurtar o alcance da vegetação pela metade, com clareiras de árvore-destaque. Trocar o MSAA por FXAA. Sombra em duas cascatas, mais curta. Segurar a tela de carregamento até o vale terminar de verdade. E não montar o vale uma vez só, "não hoje, risco médio, meio dia de trabalho, primeira obra depois da entrega". Com a placa ainda limitada, a Build 9 mediu 18,0 quadros na pior vista, 28,9 na mediana e 42,8 na melhor; a montagem caiu de 48 para 29 segundos; a etapa que congelava caiu de 19,6 para 1,9 segundos.
Para a build do concurso, uma decisão radical no menu: em vez de montar o vale inteiro só para o sobrevoo de fundo, a abertura passou a mostrar um vídeo. Ramon gerou no LTX, um serviço de vídeo por IA, oito clipes de oito segundos a partir das pinturas do próprio projeto, três para o sobrevoo em laço da tela de carregamento e cinco para uma cinemática de abertura, por cerca de onze dólares. O sobrevoo pintado, 21 segundos em laço sem emenda, virou o fundo do menu na edição Tripothon; a cinemática ficou no site. A carga do menu caiu de 28 segundos para cerca de 3. O preset de exportação "Windows Tripothon" ganhou uma feature que desliga a atualização automática, com a linha do rodapé dizendo "Edição Tripothon · atualização desativada" nos três idiomas, e um portão que finge a feature para testar.
A Build 9 foi exportada, carimbada "Edição Tripothon" e publicada no site como um ZIP de 1.085.272.196 bytes, com o SHA-256 registrado no relatório. Às oito da noite, Ramon fechou uma variante, a 9B, com o lobby em vídeo sempre ligado e o rótulo "Build #9B". Às nove e vinte e um, chegaram à main as dez correções do playtest de Matheus, o machado da ponte, o foco do E, o relógio na conversa, a festa suave, os avisos, junto com a junção das duas linhas de trabalho. Chegaram vinte e um minutos depois do corte da 9B.
Às dez da noite, numa transmissão ao vivo com a equipe testando a build, Ramon decidiu enviar a 9B como estava. A decisão está registrada, e o assistente a guardou na memória com a consequência: "vários 'bugs' vistos na live já estavam corrigidos na main; diagnosticá-los na 9B desperdiça trabalho". Na mesma live, Matheus apontou como crítico que o vigor regenerava sem teto, vinte por segundo parado, o que esvaziava a comida e os talentos de resistência; Renato disse que a intenção era regeneração passiva até a metade; Ramon decidiu que não entraria na submissão. A discussão virou a issue 45, e a reserva do dia voltaria no dia seguinte como conta própria.
O pacote enviado tinha o que o regulamento pedia: a demo jogável para Windows, a Build 9 e a 9B travada para o concurso; a gravação do percurso, com o sobrevoo e a caminhada gravados do próprio jogo e um teaser conceitual de trinta segundos com legendas em quatro línguas; a prancha visual de assets, com capturas, as pinturas, os retratos de 24 personagens e os 261 modelos do Tripo; e o diário público de construção, um post por dia de trabalho, de 21 de setembro a 5 de outubro. O prazo era meia-noite no fuso de Anywhere on Earth. A submissão foi feita.
6 a 11 de outubro. A noite das correções do playtest, um testador que joga sozinho com dez centavos de orçamento, 1.293 falas numa planilha, e um domingo em São Paulo.
A IA só entra quando o algoritmo trava.
Página do testador automático, mythsvalley.app.br
A submissão não parou nada. Segunda-feira, 6 de outubro, foi o dia com mais commits do repositório 3D: cinquenta e nove, trinta e nove de Matheus e vinte de Ramon, com o Demo Day marcado para dali a cinco dias. Os achados da transmissão da véspera viraram as issues de 80 a 98 antes do café: a reserva do dia que volta ao corpo, "a comida e os talentos voltam a valer"; o rio grande que deixa de dar passagem fora da ponte; o alto da tela que diz a tarefa e não o texto inteiro; a fogueira que volta ao modelo certo e apaga de dia; o som de cada golpe em pedra e galhada; as plaquinhas de nome e os balões só de perto, um balão por vez; o Pedro que vem junto quando o jogador apaga no tutorial; os quinze moradores novos entrando na teia social com fé, gosto e assuntos; toda cerca do vale deitando na encosta com as duas pontas no chão. Vinte e um commits numa branch de correções, empurrados para a main com autorização, e um a mais no mesmo dia: a ponte do rio grande caída de verdade, com um modelo próprio gerado pela ponte do Playwright, 190 créditos aprovados, e a obra que a põe de pé trocando um modelo pelo outro.
Ramon trabalhou a outra metade: toda casa do vale abrindo por dentro, mobiliada para quem mora, e o casarão da fazenda que se sobe por uma escadaria de pedra até um salão; a maré ligada, subindo e descendo de verdade, com o tubarão sumindo na baixa e o relógio dizendo se a água enche ou vaza; cada período do dia com a sua trilha, duas músicas novas do ElevenLabs para o entardecer e a madrugada; o clique que contorna as casas; só três placas de nome por vez; e, no fundo da mata, um vulto que fecha o jogo se o jogador lhe dá as costas, e as pegadas do Curupira que enlouquecem o mapa e a seta da missão por um minuto. Folclore como mecânica, não como enfeite.
Os catorze moradores que só acenavam passaram a falar nesse dia, nos quatro idiomas do menu, e o padre, o sacristão, a beata, o mercador, o guarda e o Pedro ganharam voz gerada em português; à noite, os nove que faltavam. O autor autorizou gastar crédito do ElevenLabs para as vozes, só em português, e cada um recebeu a sua: o padre com Borges, a beata com Katiuscia, a marisqueira com Ana Dias, a lavadeira com Ana Alice, da biblioteca brasileira; o sacristão, o mercador, o guarda, o pescador, a rendeira, a quituteira, o carpinteiro, o menino, a menina e o mestre do saveiro com vozes prontas do serviço; o Pedro seguiu com Weverton. "O teto de crédito da chave de API acabou no meio do lote": o que faltava gerar ficou declarado num campo voz pendente do arquivo de dados, cobrado por um portão, para que ninguém esquecesse de voltar. É a versão sonora da regra do cofre: dívida registrada, não dívida esquecida.
O cuidado com a convenção dos nomes merece nota. O roteiro de geração lê a lista de falas de cada morador e só gera arquivo para fala que tenha nome de áudio preenchido; "o nome do arquivo é decisão do arquivo de dados, e este script nunca gasta crédito com fala sem nome". O campo de leitura em voz alta, separado do texto do balão, aceita marcações de interpretação entre colchetes, um sussurro, uma risada. Cada arquivo é normalizado em volume, para que a beata e o guarda soem na mesma sala. E só o português tem voz: o texto em inglês, espanhol e chinês aparece no balão enquanto a voz segue em português, decisão de custo que o site declara.
Na terça-feira, 7 de outubro, Ramon abriu quarenta e sete issues em um dia, de 118 a 164, e a primeira delas apresenta um personagem novo: Jev. "Permitir observar o Jev jogando o protótipo 3D com controles reais e enviar correções durante a sessão, registrando-as como issues para resolver depois." Jev é um testador automático: abre o jogo num perfil isolado, lê o estado em texto, e joga com as teclas normais de andar, correr, falar e interagir, "sem teleporte nem avanço artificial de missões", com um orçamento de dez centavos de dólar por sessão e sem corte de tempo. Interrompe por falta de progresso, erro ou F8, e registra decisões, resultados e custo. A issue é honesta sobre o estado: "experimentos reais anteriores chegaram à etapa 5/16 da missão do Pedro; a campanha ainda não foi concluída pelo Jev".
No mesmo dia, o botão "Teste automático" entrou no menu, ao lado de Explorar, com um explorador determinístico que não usa API paga: um robô local que escolhe as ações pelas regras do jogo, "as mesmas observações dão a mesma escolha". A escada de decisão, desenhada na issue 183 e implementada em seguida, tem três degraus: o determinístico joga sozinho; quando trava, sem progresso por tantas ações, em laço ou com alvo inalcançável, a sessão escala para o Jev, que recebe o estado e as últimas vinte e quatro ações, sem imagens; se o Jev não destravar, escala para o GPT, com chave fora do jogo, dos argumentos, dos relatórios e do Git. Depois de destravar, volta ao determinístico. "A meta é concluir toda a história implementada, gastando IA só onde o algoritmo não resolve."
A sessão V21, de 7 de outubro, está publicada no site: 110 decisões em 483,4 segundos de tempo real, custo estimado de zero dólar contra um orçamento de dez centavos, nenhuma chamada de IA necessária, e dezessete bloqueios registrados em que o testador não conseguiu chegar perto de Pedro, cada um com instante e motivo. Cada sessão deixa um relatório, um registro de eventos, um resumo e capturas periódicas. O site faz questão de dizer o que isso não é: "uma sessão limpa não aprova o jogo; ela complementa os testes automatizados e o playtest humano, não os substitui".
Os commits de Matheus desse dia saem de um playtest humano e são numerados em fatias. Colher pede a enxada de novo; o E come o que está na mão; a festa só no fim da missão inteira, com o nome dela; a ponte abre sozinha ao fim do tutorial; a chegada ganha pista, areia e marcos. O Tonho só volta à rotina sem ninguém olhando. A caixa de fala, a mochila e o cartão do amanhecer passam a ser desenhados na tela do vale, em 1280 por 720, porque o jogador achou tudo "muito serrilhado": as telas vinham do 2D em 640 por 360 e eram escaladas, e o motor rasteriza as letras no tamanho da fonte, não no da camada. A ponte grande volta à vila, e as cercas das roças viram cercas de verdade, retas de canto a canto, em pé, com corpo que o pulo não passa. A fogueira pede lenha a cada três pratos; quarenta pedras soltas espalham-se pelo vale, e as pedras grandes viram alvo de dias, com picareta de aço e talento. E o Pedro narra, na voz dele, o arremate da chegada depois do convite lido.
Ainda em 7 de outubro, o autor pediu missões secundárias para os catorze moradores que nasceram no 3D e não existem no 2D. O plano foi escrito e as fases 0 a 3 implementadas no mesmo dia, em três commits: catorze favores de um passo, um por morador, trancados pela afinidade e pendurados por tabela; quatro arcos de enredo, a toalha do tio, a pedra atrás do altar, a madeira com letra e a luz na água; e nove pontes entre moradores e missões de ação, com a hora no passo de visitar. A matéria-prima já existia: "cada um deles já tinha ganchos escritos no arquivo de diálogos, assuntos que o 3D nunca mostrou; as missões citam essas linhas". No fim do dia, o vale contava 52 arquivos de missão e 154 passos, e as cenas do vale passaram a ser conduzidas por dados: "a engine conduz, a câmera mostra, o jogador assiste".
Quarta-feira, 8 de outubro, teve um pedido de outra natureza: "um documento estruturando todas as falas dos personagens, de diálogo e de missão, para validar e de referência para a geração de áudio; depois, analise a linha do tempo de cada fala contra a história e a mecânica". O gerador lê as falas de onde o jogo as lê, os moradores, os 52 arquivos de missão, os blocos de cena, a travessia, as broncas, os marcos, e escreve uma planilha sem dependência externa: 1.293 falas em 40 colunas, em nove grupos, da identificação à validação. Seiscentas e sessenta e uma tocam no 3D; 632 são herdadas do 2D e marcadas como "não toca", para que ninguém gere voz para elas. Duzentas e vinte e nove têm voz gravada. Trezentas e vinte e duas são faladas e ainda sem áudio: 57 mil letras, perto de 68 minutos; só o Pedro tem vinte mil letras a gravar.
A revisão, lida na ordem da história contra os capítulos 6 e 7 e contra os dados do jogo, receitas, alvos, horários e teclas, apontou 87 falas. Oito de prioridade alta ensinavam errado ou quebravam a história: a pedra do poço mandava a um lajedo que pede picareta de aço; o cercado do cemitério não dizia que corda é lenha; a dívida do Tonho zerava sem pagamento e era paga duas vezes; o Cosme embarcava num saveiro de amanhã e não saía do vale. O autor pediu "todas as correções, tanto na tabela quanto no jogo", com aviso quando uma fala tivesse áudio. Foram cinco levas no jogo, cada uma com os portões dela: 83 corrigidas, 3 mantidas, 1 com o autor. Vinte e duas gravações ficaram com o texto antigo, "a geração é paga e não foi feita; até lá, a voz antiga toca com o texto novo", listadas numa aba própria. E as decisões tomadas como suposição, o Cosme fica, o vale não tem terras à venda, a conta do Tonho se paga em réis, ficaram num README à espera do autor.
Havia também, nesse dia, o "!" dourado sobre a cabeça de quem tem missão por abrir e a tela de aceite, porque o jogador tinha dito que "continuo sem missões depois da introdução à vila; preciso falar com o NPC para destravar, mas isso não é óbvio; precisa seguir boas práticas de jogos de RPG". Entre quinta e sexta, Ramon abriu mais oitenta issues, do ícone do executável, que ainda era o do Godot, ao atualizador que recusava builds acima de 768 megabytes, até a de prioridade máxima sobre os testes, que o capítulo 14 discute. A Build 10 saiu nesses dias; o site, hoje, entrega a 11.
You make a world as a gift — for a person, a place, or a future that does not exist yet.
Página oficial do Tripothon S1
O Demo Day de São Paulo aconteceu num domingo, 11 de outubro, das onze da manhã às seis da tarde, em Alto de Pinheiros. A página do evento prometia apresentações ao vivo dos projetos selecionados, uma oficina prática em que todo mundo experimenta o Tripo, "traga um notebook", e a premiação da etapa. Foi a terceira das sete cidades: São Francisco tinha sido no dia 8, Tóquio no dia 9; Seul, Paris, Xangai e Barcelona viriam na semana seguinte. O concurso inteiro, na contagem da organização, tinha 460 projetos enviados e mais de três mil participantes de mais de trinta países.
O regulamento dividia o prêmio em bolsas. A global, julgada online: cinco, quatro e três mil dólares para os três primeiros, e oitocentos para o melhor uso de cada ferramenta parceira e o melhor projeto de cada trilha. As regionais presenciais: para os Estados Unidos, cinco mil ao primeiro; para as outras regiões, 2.500 ao primeiro, 1.500 ao segundo, 1.200 ao terceiro. Os critérios da trilha de jogos pesavam criatividade em trinta por cento, completude em vinte e cinco, aderência ao tema em vinte, potencial de viralizar em quinze e valor comercial em dez; os da trilha do Tripo, uso inventivo da ferramenta em trinta e cinco, sinergia com outras em vinte e cinco, contribuição da ferramenta em vinte. A página listava oitenta e seis jurados convidados do mundo inteiro, professores de universidades, diretores de arte, criadores independentes, entre eles sete brasileiros, de faculdades do SENAC em São Paulo e da Universidade Federal de Goiás.
Myths' Valley ficou em primeiro lugar na etapa brasileira. O site do jogo registra a manchete, "Tripothon S1 · primeiro lugar no Brasil", e o prêmio, 2.500 dólares, a bolsa máxima das regionais fora dos Estados Unidos. O anúncio dos vencedores globais está marcado para 25 de outubro, depois do período de júri, e é para lá que o projeto vai agora: a mesma submissão, julgada ao lado das de todas as cidades, nos critérios acima.
Um presente de resiliência, ancestralidade e folclore afro-brasileiro, de um descendente nascido cem anos depois.
A dedicatória da submissão
Vale olhar a submissão com os critérios na mão. Aderência ao tema: o jogo é literalmente um presente para uma pessoa, com nome, sobrenome e árvore genealógica, e o próprio arraial se reconstrói em mutirão com quem chega. Completude: três idiomas no menu e no texto do jogo, vozes, save em três vagas, seis cadeias de missão na data do envio, builds publicadas e um site com diário, galeria, almanaque e mapa. Uso inventivo da ferramenta: 261 modelos do Tripo, dos quais 24 personagens com rig e animação e 31 animais, produzidos por um pipeline documentado e automatizado, com um estilo procedural alternativo mantido para comparação, e, na trilha das sinergias, o Tripo encadeado ao ElevenLabs, à OpenAI, ao LTX, ao Whisper e a um motor aberto. Potencial comercial: um universo narrativo com público próprio, do qual o jogo é um desdobramento. O que o júri de São Paulo valorizou, só ele sabe; o que foi mostrado, está no site, e este livro conta como foi feito.
O domingo não encerrou o trabalho; mudou o prazo. As issues abertas em 11 de outubro, da 243 à 261, são a lista de quem viu o jogo ser jogado por estranhos: o tutorial das barras que abre durante a cena e deveria esperar; o balão de fala cortado pela faixa de cinema; a narração da abertura com a legenda antes da voz; os moradores que giram no próprio eixo à noite; a música de tensão quando o tubarão se aproxima; o quadrado branco na fachada da igreja; e dois pedidos de alma: "Pedro: animações contextuais conforme as falas, gestos de conversa, apontar, espanto", e "Viajante: muito mais falas, monólogo interior, com gatilhos novos como a pegada do Curupira". Há também as prioridades técnicas já abertas: gerar todas as vozes que faltam; os vídeos da introdução no ritmo da narração, alinhados pelo Whisper e terminando na igreja com o saveiro chegando; e a reforma dos testes, "prioridade máxima", de que o capítulo 14 trata.
Na terça-feira seguinte, os quatro desenvolvedores passaram cinco horas reunidos. O que se decidiu ali não está em nenhum documento que este livro tenha lido, e por isso não está aqui. O que se sabe é o que o site diz no fim da página do concurso: interiores, quintal e bichos estão em protótipo; a próxima etapa amplia a campanha e a história da fazenda, em que Pedro enfrenta a Matinta Pereira. Os capítulos 6 e 7 do livro, afinal, ainda não terminaram no jogo.
A orquestra de ferramentas e o lugar de cada uma; as regras que seguraram o vale quando o ritmo apertou; e o que não deu certo, contado com os números na mão.
O código define os fatos do mundo. O LLM produz a fala do personagem sobre esses fatos.
Decisões do protótipo 3D, 23 de setembro
Nenhuma ferramenta de inteligência artificial fez Myths' Valley. Foram pelo menos dez, cada uma num papel, e a palavra que melhor descreve o arranjo é a de uma orquestra: instrumentos diferentes, uma partitura escrita por pessoas, e um regente que decide quando cada um entra. Este capítulo é o mapa da orquestra, naipe por naipe, com o que cada instrumento produziu, quanto custou e onde está documentado. Os números são os dos repositórios e do site em 14 de outubro.
O instrumento mais presente é o menos visível no jogo. Os commits dos dois repositórios têm, na maioria, um rodapé de coautoria com um modelo da Anthropic: no 2D, 260 dos 353 commits sem merge; no 3D, 290 dos 348. Todos os commits de Matheus nos dois repositórios trazem essa assinatura, com quatro modelos ao longo das semanas, Claude Opus 5, Opus 5.5, Sonnet e Fable 5.1, usados pelo Claude Code numa máquina Windows. Noventa e nove dos cento e trinta commits de Ramon no 3D também trazem, e dezesseis deles apontam para sessões do mesmo assistente na nuvem, em Linux; os documentos dele registram ainda o uso do Codex, da OpenAI, para a integração do Tripo e do Playwright. Os vinte e sete commits de Renato não trazem assinatura de IA; os dezoito de Pedro Almeida trazem todos.
O que esses assistentes fizeram é o que os capítulos anteriores contam: escreveram código sob direção, mediram os dois projetos arquivo a arquivo antes da migração, redigiram a documentação no registro do projeto, rodaram e interpretaram baterias de testes, investigaram o desempenho com testes A/B, juntaram branches conferindo o que o Git não vê, organizaram as falas numa planilha e as revisaram contra a história. E guardaram o que aprenderam: a memória do assistente de Matheus, ao fim do período, tinha dezessete arquivos de lições, das armadilhas da bateria 3D à maneira de conversar com o Tripo Studio, relidos no começo de cada sessão.
Em volta do código, quatro pontes no protocolo MCP, que deixa um assistente chamar ferramentas externas: a do editor do Godot, que lê e edita cenas e scripts com o projeto aberto e roda o jogo; a de linha de comando do Godot, que abre o editor e lê a saída de depuração; a do Tripo, para gerar modelos pela API; e a do Playwright, que dirige o Chrome de verdade pela extensão oficial, com a pessoa aprovando a conexão. A do PixelLab serviu ao menu do 2D no segundo dia.
O Tripo Studio é a linha mestra dos assets 3D: 261 modelos GLB no jogo, dos quais 24 personagens, 26 construções, 80 plantas, 28 itens de mão, 39 adereços, 15 móveis, 31 animais, 17 peixes e uma criatura marinha, somando 1,54 milhão de triângulos nas versões leves. O fluxo obrigatório, Modelo HD, Malha Smart, GLB com textura de 1K ou 2K, está escrito no documento de assets e no de instruções para agentes, com a tabela de orçamento de polígonos por tipo de peça. Os créditos registrados: 2.755 no primeiro lote de 26 de setembro; 14.035 na noite de 5 de outubro; 190 na ponte do rio grande; 125 no tubarão e no viajante; mais os lotes menores da casa, dos marcos, do saveiro e das luvas. Cada peça promovida tem uma linha de origem na pasta dela, com a tarefa, a contagem de faces e a textura, e uma linha nos créditos, com a condição de uso: plano pago no momento da geração.
O PixelLab fez o equivalente no 2D: os bonecos em quatro direções, a caminhada, os 64 itens de 32 pixels, as construções de 1887, a flora, os bichos e as animações da luta. O repositório do 2D tem 1.783 imagens, e o cofre registra 534 gerações com o texto que pediu cada uma. No 3D, o PixelLab ficou restrito ao lugar da arte 2D, a interface: os ícones dos itens, da teia e das luvas.
O que o Tripo produziu, por categoria. Oitenta plantas e árvores, porque a mata é instanciada aos milhares e precisa de variedade e de versões leves para longe.
Tudo o que soa no vale veio do ElevenLabs: a narração de abertura e a da travessia, na voz do narrador do Batalha de Mitos; as 224 falas gravadas dos moradores, com uma voz escolhida para cada um na biblioteca brasileira do serviço, ou entre as vozes prontas quando o lote cresceu; cem efeitos sonoros, de passo por tipo de chão a marretada em pedra, do sussurro da mata ao assobio do Curupira; os loops de ambiente da mata, do riacho e da fogueira; e as músicas, uma por período do dia, mais os temas do menu, do roçado e da travessia. O site conta 104 faixas na trilha. Os roteiros de geração leem o texto de onde o jogo o lê, só geram o que falta, normalizam o volume e nunca imprimem a chave. O Whisper, da OpenAI, entra no fim da cadeia para alinhar a narração às legendas, palavra por palavra.
A identidade visual é do modelo de imagem da OpenAI: o logotipo em talha dourada, as capas de dia e de noite, a moldura do retábulo, a rosa dos ventos, os ícones de réis e de XP e os distintivos do painel, as dez capas de cordel em xilogravura, as nove texturas do chão em camadas, e as vinte cenas repintadas da galeria e da prancha de assets, cada uma a partir de uma captura real do jogo. O LTX transformou algumas dessas pinturas em vídeo: oito clipes de oito segundos, cerca de onze dólares, o sobrevoo em laço do menu e a cinemática do site. O teaser de trinta segundos foi montado em código, com o Remotion, com legendas em quatro línguas.
Dois instrumentos entraram na última semana. O testador automático, com o explorador determinístico sempre ligado e uma escada para o Jev e para o GPT quando o algoritmo trava, que o capítulo 10 descreve. E, no site, uma conversa com os moradores: o texto vai para a OpenAI, e as chamadas de voz passam pelo ElevenLabs durante a chamada, com a política de privacidade de cada serviço linkada no rodapé. A conversa dentro do jogo, com memória, planejada em 23 de setembro, continua na lista do pós-jam.
A tradução para inglês, espanhol e chinês simplificado do site e do menu também é de IA, e o site avisa: "A IA pode cometer erros de tradução", com o seletor de idioma apontando para o original em português. As falas regionais do jogo, por decisão do autor, não passam por tradutor automático.
O que faz dessas ferramentas uma orquestra, e não uma pilha de assinaturas, são as regras que valem para todas. Toda geração paga só acontece com pedido explícito, depois de o custo mostrado pela interface ter sido anunciado e aceito. Toda chave fica fora do Git, num arquivo de ambiente ou no perfil local, e nenhum roteiro a imprime ou a passa por argumento. Todo asset promovido ganha origem e crédito, com a licença verificada, e só entra o que permite uso comercial. Toda arte gerada que custou crédito fica guardada, com o texto que a pediu. A arte 2D é referência para a 3D, nunca produto dentro do vale. O código define os fatos; a IA produz o que é volume, sprite, voz, variação, rascunho; e as pessoas decidem o que é sentido, medem o resultado e escrevem por quê.
O gargalo é a curadoria humana, não o crédito.
docs/arte/ASSETS_TRIPO.md
A tabela completa das ferramentas, com o papel de cada uma e o lugar em que está documentada, está no Apêndice B. O que a tabela não mostra é a proporção: para cada hora de geração, várias de curadoria, de conferência de escala e colisão, de leitura de licença, de revisão de fala, de medição de desempenho. É nessa proporção que mora a diferença entre um jogo feito com IA e um jogo feito por ela.
Dívida registrada, não dívida esquecida.
Registro histórico do desenvolvimento 3D
Há um jeito de ler este livro como uma lista de ferramentas, e há outro, mais útil, de lê-lo como uma lista de regras. Quase todas foram escritas depois de um erro, custaram uma tarde ou uma bateria de testes, e foram postas onde uma pessoa ou um assistente as reencontraria na hora certa: no arquivo de instruções para agentes, num documento de projeto, na memória do assistente. Este capítulo as reúne, com o que custou aprender cada uma. São regras de um projeto específico, mas quase todas servem a qualquer equipe pequena que trabalhe rápido com inteligência artificial.
1. Cada fatia é um commit, com portão e falsificação. "Comportamento novo sem portão novo é comportamento que vai voltar a quebrar." E o portão só vale depois de furado de propósito pelo falsificador, porque um portão verde pode estar medindo um Pedro congelado. (Capítulo 3.)
2. O assunto do commit é uma frase em prosa, no presente, dizendo o que mudou no jogo. Para quem lê o histórico meses depois, e para o assistente que precisa saber resumir a fatia antes de entregá-la. (Capítulo 2.)
3. O comentário explica o porquê, não o quê. A decisão, a alternativa recusada e a armadilha que o próximo vai pisar. Os documentos seguem o mesmo registro; muitos têm uma seção "o que isto ensinou". (Capítulo 3.)
4. A regra fica separada da apresentação. Foi o que fez vinte e cinco dos trinta sistemas do 2D atravessarem para o 3D sem reescrita. O que prende uma regra ao jogo quase nunca é um tipo, é uma tecla. (Capítulo 5.)
5. Lugar tem nome, não coordenada. E o portão varre o código-fonte atrás de todo nome escrito à mão, porque nome errado compila e some a bússola. (Capítulo 5.)
6. Texto que o jogador lê nasce em dado, nos três idiomas, nunca em constante. O portão reprova a tradução que é cópia do português; o que falta fica numa lista com a razão. (Capítulo 5.)
7. O catálogo é a única fonte de cada peça, e os dois estilos nunca se misturam. Nenhum GLB instanciado fora do catálogo; nenhuma peça procedural dentro do estilo Tripo. (Capítulo 4.)
8. Nunca mate um processo do Godot pelo nome; só por PID, e só o que o próprio script levantou. Já fechou o editor aberto de alguém, várias vezes, com cena não salva. (Capítulo 3.)
9. Código de saída zero não prova nada. Erro de compilação não derruba o jogo; conte os erros de análise na saída. E um teste que estoura no meio trava em vez de reprovar, por isso todo portão tem teto de tempo. (Capítulo 3.)
10. Portão sensível ao tempo é escrito contando passos de física, nunca quadros. Reproduza "falha só na bateria" ocupando todos os núcleos; mova o jogador só pelo teleporte; meça progresso de um morador ao longo do caminho dele, não em linha reta. (Capítulo 3.)
11. Quando um portão fica vermelho depois de um merge, primeiro pergunte se a métrica dele ainda vale no mundo juntado. E confira o que o Git não vê: assinaturas mudadas, ramos duplicados, chaves repetidas, tutorial que ensina mecânica velha, coisa posta por coordenada dentro de zona nova. (Capítulo 7.)
12. A bateria completa é para fechar build, não para cada vírgula. A regra chegou tarde e custou caro; a issue de prioridade máxima que a formaliza é o assunto do próximo capítulo.
13. Geração paga só com pedido explícito, com o custo mostrado antes do clique. Consultas de saldo, histórico e estado são livres. CAPTCHA, dois fatores, e-mail e pagamento ficam com a pessoa. (Capítulo 9.)
14. Chave nunca entra no Git, nunca é impressa, nunca vai por argumento. Os roteiros leem a chave de um arquivo de ambiente ou do perfil local por uma função só, e o assistente é instruído a nunca lê-la. (Capítulo 4.)
15. Toda arte que custou crédito fica guardada, com o texto que a pediu. Na camada da API, para que ninguém precise lembrar. (Capítulo 2.)
16. Todo asset tem origem e crédito, com a licença verificada; só entra o que permite uso comercial. A carta náutica não é redistribuída; o jogo leva só a grade derivada. (Capítulo 4.)
17. A arte 2D é referência, não produto. O sprite vira imagem de entrada do Tripo; no vale, nenhuma arte 2D fora da interface. (Capítulo 5.)
18. O que a IA não consegue gerar bem, destrua ou emende por código a partir do que existe. A ponte caída, a ponte esticada, a cerca que emenda. (Capítulo 2.)
19. O código define os fatos; a IA produz a fala. A conversa livre nunca é necessária para concluir uma missão; sem rede, o jogo continua jogável com falas roteirizadas. (Capítulo 4.)
20. O assistente guarda o que aprende, e relê. Correções do autor viram memória de retorno, com o porquê; lições de ferramenta viram memória de referência; o que não está nos documentos nem no histórico vira memória de projeto. (Capítulo 3.)
21. A tarefa vem do board. Toda fatia nasce de uma issue, o commit cita o número no corpo, e o plano é riscado no mesmo commit que fecha a issue: "board e plano que discordam são dois planos". (Capítulo 5.)
22. Conflito de design se decide pelo enredo e pela mecânica do jogo, como os documentos do autor e os portões os leem hoje. Mantém-se o trabalho do colega que não conflita, prova-se pela bateria, e lista-se cada sobreposição no relatório. Passos para fora, como juntar na main, pedem confirmação. (Capítulo 7.)
23. A main sempre abre e roda. Branch de migração local, bateria verde em totalidade, e o envio só quando o autor autoriza. Buscar a main de novo antes da bateria final, porque ela anda enquanto a bateria roda. (Capítulo 7.)
24. Configuração de máquina fica fora do repositório. Um colega trabalha em Linux na nuvem, outro no PowerShell 5.1; o que é de cada sistema vai na documentação, não num arquivo versionado. (Capítulo 8.)
25. O documento diz o que sabe e o que não sabe. "Registro de decisões de trabalho e validações pendentes; não comprova implementação." "A distribuição ainda confia no servidor HTTPS." "Os requisitos mínimos continuam em medição." É o registro de Ramon, e é o que torna o projeto confiável para quem chega de fora. (Capítulos 4 e 7.)
Nem toda regra é de engenharia. Três decisões do autor ficaram na memória do assistente como regras de retorno, com a frase que as originou, para não serem desfeitas por engano numa sessão futura. Os interiores são cômodos reais dentro da própria construção, em que se entra andando: "os cômodos têm que ser em 3D mesmo". O machado só chega na missão da ponte, com Pedro buscando os machados do avô, vai para a barra de mão como qualquer item, e nenhuma ferramenta entregue troca sozinha o que o jogador segura: "o formato que orientei é o correto". E o relógio pode ser mexido pelo jogador, pausado, parado, adiantado, desde que com aviso, confirmação e registro no save: "pode manter a possibilidade de alterar o relógio, desde que tenha o aviso". São o tipo de coisa que um assistente, com a melhor das intenções, "simplifica" na quinta sessão; escritas, não são simplificadas.
Os testes do 3D inviabilizam o desenvolvimento.
Issue 242, "prioridade máxima", 9 de outubro
Um relato que só contasse os acertos seria, no registro deste projeto, um relato mal documentado. Os documentos do vale são cheios de frases como "não comprova implementação", "não é a causa", "fica para depois da entrega", e é justo que este livro termine a parte das lições com a lista do que não funcionou, ou não funcionou a tempo. Alguns itens são dívidas em andamento; outros, limites de método que a equipe reconheceu por escrito.
O relatório de 5 de outubro é claro: "o vale nunca chega a 60 FPS nesta máquina, em nenhum lugar e para nenhum lado". O "60" das medições antigas era de cenas mais leves e janelas menores. A Build 9 dobrou o desempenho e não chegou a trinta na mediana, com a placa limitada. O que leva a sessenta está listado na seção 9.3 do relatório e ainda está por fazer: montar o vale uma vez só, em vez de duas; modelos de árvore realmente leves; descarte por oclusão, porque dentro da igreja, olhando para a parede, o jogo desenha 8,9 milhões de triângulos do vale que está atrás dela; e física com menos consultas de terreno por indivíduo. Três dias depois da Build 9, uma issue registrava que o desempenho tinha caído de novo com as peças novas, e outra que o FPS caía abaixo de trinta no entardecer. A regressão tinha entrado "sem alarme", e essa é a causa de processo que o relatório nomeia: não havia portão de desempenho.
A 9B foi enviada vinte e um minutos antes de as dez correções do playtest chegarem à main. Os jurados jogaram, portanto, com o foco do E, o relógio na conversa e a festa suave do jeito antigo. Foi uma decisão consciente, tomada na transmissão ao vivo por quem tinha a responsabilidade, e o assistente a guardou como regra: "reproduza os achados da live numa build cortada da main atual primeiro". O teto do vigor, que a equipe discutiu na mesma noite, entrou no dia seguinte na forma da reserva do dia; a discussão sobre o teto em si continua numa issue.
O teto da chave do ElevenLabs acabou no meio do lote de vozes de 6 de outubro, e o que faltava ficou declarado num campo de dados, cobrado por um portão. Em 8 de outubro o documento das falas contava 322 falas faladas sem áudio, perto de 68 minutos, e 22 gravações com o texto antigo; dez dos moradores novos usam vozes nativas em inglês do serviço, "vale ouvir o sotaque no português antes de gerar o resto". A issue que pede todas as vozes que faltam está aberta.
O método dos portões, que fez o projeto chegar até aqui, virou o problema na segunda semana. Em 9 de outubro o autor abriu a issue de prioridade máxima: cerca de 230 portões, um por fatia, quase todos montando o vale inteiro mesmo para conferir o tamanho de um botão; o runner decidindo "o que foi afetado" por fecho de dependências, de modo que mudar um arquivo global, uma tradução, uma tela, o arquivo do projeto, disparava uns 200 portões; uma bateria de uma a três horas com quatro a seis Godots em paralelo e a CPU a cem por cento; e, naquele dia, a bateria rodada por lote, seis vezes duzentos portões, "o que travou a máquina e o trabalho por horas".
As decisões do autor estão na issue. Bateria completa só ao juntar na main, nunca por commit, por issue ou por lote. Montar o vale uma vez só, com os testes de integração rodando num único processo. Traduções e dados fora do critério de "afetado". Um framework de testes de unidade, GUT ou gdUnit4, para regras que rodam sem montar o mundo, em segundos. Rever a regra "um portão por issue": cada fatia acrescenta um caso a uma suíte existente, nunca um processo novo que monte o vale. Meta: no máximo vinte casos de integração, o modo completo em menos de dez minutos. É uma reforma do que este livro passou três capítulos elogiando, e é a lição mais importante dele: um método que funciona para quarenta e sete portões num jogo 2D não escala sozinho para duzentos e trinta num mundo 3D que leva meio minuto para montar. Os sinais estavam nas memórias do assistente desde 3 de outubro, "cada uma destas custou uma bateria de 55 minutos", "com 2 GB livres o runner roda um portão de cada vez e 109 portões levam mais de 80 minutos". Faltou a decisão de parar e reformar antes de a máquina travar.
Dois portões ficaram vermelhos na main por motivos anteriores a qualquer fatia recente, e foi preciso provar isso em vez de supor. O da navegação falha porque o caminho do píer à gameleira atravessa o casco do saveiro atracado; o pesado, que joga as missões do começo ao fim, falha num passo da chegada em que Pedro oscila em torno de um ponto conduzindo o jogador à casa da Zefa e nunca chega. A prova foi uma worktree separada, com o .godot e as texturas ignoradas copiados (1.590 arquivos, alguns com caminhos acima de 260 caracteres que o PowerShell 5.1 não copia), rodando a main pura. "Não é uma regressão de trabalho posterior: confira contra a main antes de culpar uma mudança."
A conversa livre com um morador, com memória entre sessões, que abre o documento de decisões de 23 de setembro e que ancorava o primeiro roteiro da demo (sementes, presente, morador que lembra), não entrou no prazo e segue na lista do pós-jam com "prioridade a confirmar". O roteiro da demo foi refeito com o que o vale tinha, e o presente apareceu de outro jeito. Os dois arquivos grandes de falas do 2D, o tutorial e os sete moradores, 58 quilobytes de prosa regional, continuam na lista do que falta traduzir, por decisão de que isso não é trabalho de tradutor automático. Quatro arquivos compartilhados entre o 2D e o 3D bifurcaram por uma regra que nasceu no 3D, e a escolha entre promover a regra ao 2D ou declarar a bifurcação continua com o autor.
O executável exportado usava o ícone do Godot, e o atualizador recusava builds acima de 768 megabytes, com a Build 9 pesando mais de um gigabyte; as duas issues têm "PRIORIDADE" no título. A ponte do Playwright precisa de uma pessoa na máquina para aprovar a conexão da extensão: numa noite, três tentativas ficaram penduradas até o tempo esgotar, e a regra virou "não repita; prepare o lote e peça aprovação quando a pessoa voltar". Os assets que um colega acrescenta precisam ser importados no Godot antes da bateria, ou três portões verdes aparecem vermelhos com "o script não compilou", porque a expressão regular do runner casa com a mensagem de recurso ausente. A máquina de Matheus não tem Python nem ffmpeg, e o planejador do sobrevoo e os roteiros de voz precisam dos dois; a solução portátil, numa pasta temporária, foi anotada para não ser reinventada. Dois ícones novos entraram comprimidos em VRAM porque o padrão do importador é para texturas 3D, e a regra de interface sem perda precisou ser aplicada à mão.
Portão que fica vermelho por motivo que não é defeito é portão que ensina a ignorar portão.
README do jogo 2D
Nada disso desmente o resultado; explica o tamanho dele. Um projeto de quinze dias que termina com uma issue de prioridade máxima sobre os próprios testes é um projeto que mediu o que fez. O capítulo seguinte é o último, e é sobre a única coisa que não foi medida.
O jogo não mostra dica de controle na tela: quem ensina é o Pedro.
README do jogo 2D
A dedicatória da submissão, escrita por Ramon, é uma árvore. Pedro Nolasco da Encarnação e Honorata de Jesus. Isaura de Jesus e Marcos da Paixão. Altamira de Jesus e Antônio de Santana. Odete de Jesus Santana e Paulo Costa Santos. E Ramon, "um descendente nascido cem anos depois". A frase que acompanha a árvore no site, em inglês, para o júri, diz: um presente de resiliência, ancestralidade e folclore afro-brasileiro. O espaço em branco do tema foi preenchido com um nome de 1887.
Há uma pergunta que este livro adiou de propósito: o que, exatamente, a inteligência artificial fez em Myths' Valley? A resposta mais curta é a contagem. Duzentos e sessenta e um modelos; vinte e três moradores com voz; cem efeitos sonoros; mil duzentas e noventa e três falas numa planilha; quinhentas e cinquenta assinaturas de coautoria em setecentos e um commits. A resposta mais honesta é outra: nenhum desses modelos escolheu onde ficar, nenhuma dessas vozes escolheu o que dizer, nenhum desses commits escolheu o que o jogo devia ser. O que a IA fez foi dar a quatro pessoas as mãos de quarenta. O que as pessoas fizeram foi decidir, medir e escrever por quê.
Talvez por isso a regra mais antiga do projeto seja também a que melhor o descreve. Ela está no README do 2D, desde o primeiro dia, e fala do tutorial: o jogo não mostra dica de controle na tela, quem ensina é o Pedro, e cada passo só é cobrado depois de ele explicar. Um jogo que confia num personagem para ensinar, em vez de numa interface, é um jogo que acredita que a presença de alguém vale mais do que a informação. Foi assim que Pedro ensinou o viajante a arar, e foi assim que a equipe trabalhou com as ferramentas: alguém explicando, um passo por vez, cobrando depois.
Quando este livro foi fechado, o vale tinha uma issue de prioridade máxima sobre os próprios testes, trezentas e vinte e duas falas sem voz, uma ponte que Pedro às vezes não atravessa, e um capítulo 7 por terminar, em que ele enfrenta a Matinta Pereira numa fazenda do outro lado do rio. O anúncio global do Tripothon sai em 25 de outubro. Em qualquer dos dois resultados, o presente já foi entregue: há um lugar em que se pode chegar pelo píer, herdar uma casa de taipa e aprender com Pedro a viver entre a vila, a mata e a maré. Ele não sabia que seria o guia de um vale. Agora é.
Saubara, outubro de 2026.
Os commits são os sem merge, contados em 14 de outubro de 2026 nos repositórios acentauric/myths-valley (2D) e acentauric/myths-valley-3d (3D). Os marcos vêm dos históricos, do changelog, do diário do site e das issues.
O convite A Tripo anuncia o Tripothon S1, primeiro hackathon de construção de mundos: tema "A Gift for ____", envios de 15/09 a 05/10, júri até 25/10, Demo Days em sete cidades.
2D nasce · 75 commits Primeiro commit às 00h56. Mundo, jogador, relógio e estações; casa, dormir, tutorial; Pedro como guia; inventário e lavoura; sprites e áudio por IA; rio, obras, mapa de Bom Jesus dos Pobres; o nome Myths' Valley.
O dia mais longo · 109 commits Cofre de arte gerada; fé em três caminhos; obras; missões com checklist; doze portões; dez cordéis; plano em sete fases com as fases 0 a 4 feitas; runner com teto e regra do PID. Menu com PixelLab MCP, músicas do ElevenLabs, vídeo do LTX, fontes Almendra e Miva.
A terceira dimensão · 66 + 5 commits Documento de decisões do protótipo 3D; primeiro passeio jogável com o personagem medieval; animações do Tripo; Tripo MCP. No 2D, a série da Dona Zefa, a dívida do Tonho, a igreja de 1652, o mapa igual à foto.
A primeira casa do Tripo · 26 + 3 Casa de Carro Quebrado (65 créditos; 1,9 milhão → 273 mil triângulos); pau-brasil e o guia de imagem para 3D; abertura 3D com narração. No 2D, combate, a onça, a mata atrás da crista.
KML e luta ensinada · 14 + 0 O KML do autor orienta ruas, rios e pontos de interesse; mapa com zoom. No 2D, a luta em três rodadas, a jararaca no brejo.
Build 5 · 8 + 33 1 unidade = 4 m; dois estilos; dia e noite; luzes de 1887; som por proximidade; sete moradores com voz; Pedro guia; lote de 66 peças pelo console do Studio (2.755 créditos); texturas em VRAM. No 2D, a ida à fazenda e os quinze achados do playtest.
O mar da carta náutica · 0 + 10 Batimetria da carta DHN 1108; nado; foz; ondas em séries; sons por chão; carregamento em etapas; moradores animados.
Build 6 · 26 + 7 Maré e tubarão; a igreja a partir de fotos; vegetação de Saubara; músicas por período; identidade "Crônica do Recôncavo" na carga; a identidade visual (logo, capas, moldura, rosa dos ventos) gerada na OpenAI.
A grande travessia · 24 + 26 Três decisões do autor; medição arquivo a arquivo; a costura Lugares; fôlego, mochila, calendário, teia, fés, moradores, missões, venda, pesca e save atravessam; Fase 2 fecha com 25 arquivos compartilhados; o board com 32 issues; o runner do vale.
O arraial pede coisas · 1 + 33 Cadeias de missão por morador; almanaque; cordéis e pacto; pesca, cozinha e oficina no vale; coqueiros caem com machado; a mochila na roda do mouse.
Cada jogo na sua casa · 4 + 7 Repositórios separados; Git LFS; a branch perdida recuperada; issues 33 a 62 (build ZIP, pacote de submissão, roteiro e tema, licenças, Demo Day).
Cinco segundos · 0 + 2 O vale monta em cinco segundos, idêntico bit a bit; o sobrevoo contorna árvores e casas.
Builds 7 e 8 · 0 + 41 Atualização pelo site com SHA-256; igreja e casas por dentro; a fé no chão do vale; cordéis com capas em xilogravura; retratos do modelo 3D; saveiro do Quirino; PRs 73 e 75 pela branch de migração; README com a declaração do que precede o evento.
Crônica do Recôncavo · 0 + 39 Idioma antes do vale; moldura SVG; fichas com prévia 3D; tela cheia; seis cursores; três barras; luvas de couro; a chegada como pedidos do arraial; narração da travessia cortada pelo Whisper; composição editável.
Build 9 e 9B, submissão · 0 + 47 Lote de level design pela ponte do Playwright (14.035 créditos); texturas do chão da OpenAI; o jogo começa no saveiro; frentes do 2D; investigação de desempenho (5,3 → 18 FPS na pior vista); vídeos do LTX; lobby em vídeo; 9B às 21h; dez correções às 21h21; live às 22h; envio antes da meia-noite AoE.
A noite da 9B · 0 + 59 Issues 80 a 98 corrigidas; a ponte caída e de pé (190 créditos); 23 vozes do ElevenLabs; toda casa por dentro; o vulto e o Curupira; maré ligada; bichos com as pernas do código.
Jev e as secundárias · 0 + 20 Playtest em seis fatias; teste automático no menu; sessão V21 do testador (110 decisões, US$ 0); missões secundárias dos catorze moradores, fases 0 a 3; cenas por dados; 47 issues num dia.
As falas · 0 + 16 O documento das 1.293 falas; 87 achados, 83 corrigidos em cinco levas; o "!" sobre a cabeça e a tela de aceite.
Prioridades Issues 165 a 242: ícone do executável, atualizador acima de 768 MB, vídeos da introdução com Whisper, e a reforma dos testes como prioridade máxima. Build 10.
São Paulo Demo Day em Alto de Pinheiros, 11h às 18h. Primeiro lugar na etapa brasileira, US$ 2.500. Issues 243 a 261 abertas no mesmo dia.
Depois Cinco horas de reunião da equipe. O site entrega a Build 11.
O anúncio global Fim do período de júri do Tripothon S1.
| Ferramenta | Papel no projeto | O que produziu | Onde está documentado |
|---|---|---|---|
| Claude Code (Anthropic): Opus 5, Opus 5.5, Sonnet, Fable 5.1 | Assistente de código, de documentação, de testes e de investigação; local no Windows e em sessões na nuvem (Linux) | Coautoria em 550 dos 701 commits; migração; relatórios; documento das falas | Rodapés dos commits; AGENTS.md dos dois repositórios; memória do assistente |
| Codex (OpenAI) | Assistente de código do autor na integração do Tripo e do Playwright | Configuração do Tripo MCP; automação do Studio | docs/ferramentas/TRIPO_MCP.md, TRIPO_PLAYWRIGHT.md |
| Tripo Studio e Tripo CLI/MCP | Modelos 3D de texto e de imagem; retopologia Malha Smart; rig e animações | 261 GLB; 24 personagens com rig; 31 animais; 17 peixes | docs/arte/ASSETS_TRIPO.md; ORIGEM.md de cada pasta; assets/CREDITOS.md |
| PixelLab | Pixel art do 2D; ícones de interface do 3D | Bonecos em 4 direções, caminhadas, 64 itens, cenário de 1887, animações de luta; 534 gerações no cofre | docs/PIXELLAB.md (2D); assets/sprites/cofre/REGISTRO.tsv |
| ElevenLabs: Eleven v3, Multilingual v2, Music, Sound Effects | Vozes, narração, música e efeitos | 224 falas gravadas; 100 efeitos; músicas por período; narração da travessia | docs/sistemas/AUDIO.md; tools/elevenlabs/; assets/CREDITOS.md |
| Whisper (OpenAI) | Transcrição com tempos por palavra | Corte da narração em trechos alinhados às legendas | tools/elevenlabs/gerar-travessia.ps1, alinhar_travessia.py |
| OpenAI gpt-image-2 e gpt-image-1 | Identidade visual, texturas, ícones, pinturas | Logo, capas, moldura, rosa dos ventos; 10 capas de cordel; 9 texturas de chão; 8 ícones; 20 pinturas | tools/openai/; identidade/ORIGEM.md; cordeis/ORIGEM.md; materiais/ORIGEM.md |
| LTX (Lightricks) | Vídeo a partir das pinturas | 8 clipes de 8 s; sobrevoo em laço do lobby; cinemática do site | tools/ltx/gerar-videos-tripothon.ps1; assets/CREDITOS.md |
| Jev (TypeSafe) e GPT (OpenAI) | Testador automático, em escada sobre o explorador determinístico | Sessões de jogo registradas; V21 com 110 decisões e US$ 0 | tools/jev/; mythsvalley.app.br/teste-automatico; issues 118, 159, 183 |
| OpenAI e ElevenLabs no site | Conversa por texto e por voz com os moradores | Chat do site | mythsvalley.app.br (rodapé) |
| Tradução por IA | Inglês, espanhol e chinês do site e do menu | 235 frases do menu; páginas do site | mythsvalley.app.br/projeto |
| Ferramenta | Uso |
|---|---|
| Godot 4.7.2 Standard, GDScript | Motor dos dois jogos: Compatibility no 2D, Forward+ no 3D |
| Google Earth e KML | A planta real de Bom Jesus dos Pobres, desenhada pelo autor, que vira o terreno |
| Carta náutica DHN 1108 (Marinha do Brasil) | A batimetria da baía, derivada e não redistribuída |
| Mixamo (Adobe) | Esqueleto e animações humanas, pelo rig do Tripo Studio |
| Git, GitHub, Git LFS | Dois repositórios, 261 issues, PRs fechadas por branch de migração |
| PowerShell, node, Python | Os runners, os roteiros de geração e as ferramentas de mapa |
| Playwright MCP (extensão do Chrome) | A ponte que dirige o Tripo Studio na sessão logada do usuário |
| Laravel 13, PHP 8.3, Remotion | O site e o teaser montado em código |
| Fontes Cinzel, Cormorant Garamond, Almendra (OFL) e Miva (da equipe) | A identidade tipográfica |
| Medida | Jogo 2D | Jogo 3D |
|---|---|---|
| Commits (com merges) | 365 | 392 |
| Commits sem merges | 353 | 348 |
| Com assinatura de coautoria de IA | 260 | 290 |
| Commits de Matheus Ché / com IA | 258 / 258 | 173 / 173 |
| Commits de Ramon Santos / com IA | 95 / 2 | 130 / 99 |
| Commits de Renato Leal / com IA | 0 | 27 / 0 |
| Commits de Pedro Almeida / com IA | 0 | 18 / 18 |
| Primeiro e último commit | 21/09 00h56 · 01/10 | 23/09 21h01 · 08/10 |
| Linhas de GDScript | 49.006 | 138.067 |
| Arquivos .gd | 128 | 369 |
| Autoloads | 42 | 38 |
| Portões de teste | 47 | 159 |
| Arquivos compartilhados do 2D no 3D | — | 25 |
| Arquivos de missão (JSON) | — | 52 |
| Modelos GLB | 0 | 264 |
| Arquivos de áudio | 37 | 311 |
| Vozes gravadas (mp3) | — | 224 |
| Efeitos sonoros | — | 100 |
| Imagens (png, jpg, webp) | 1.783 | 188 |
| Gerações no cofre do PixelLab | 534 | — |
Três commits de 24 e 26 de setembro saíram, por engano, de outra conta logada na máquina de Renato e estão somados aos dele. O site do jogo publica contagens próprias, feitas em outras datas e com outros critérios (por exemplo, 525 commits em três repositórios incluindo o site, 94.224 linhas de GDScript no 3D, 123 portões), e por isso difere desta tabela.
| Dia | 2D | 3D | Dia | 2D | 3D |
|---|---|---|---|---|---|
| 21/09 | 75 | 0 | 30/09 | 1 | 33 |
| 22/09 | 109 | 0 | 01/10 | 4 | 7 |
| 23/09 | 66 | 5 | 02/10 | 0 | 2 |
| 24/09 | 26 | 3 | 03/10 | 0 | 41 |
| 25/09 | 14 | 0 | 04/10 | 0 | 39 |
| 26/09 | 8 | 33 | 05/10 | 0 | 47 |
| 27/09 | 0 | 10 | 06/10 | 0 | 59 |
| 28/09 | 26 | 7 | 07/10 | 0 | 20 |
| 29/09 | 24 | 26 | 08/10 | 0 | 16 |
| Medida | Antes | Build 9 |
|---|---|---|
| FPS na pior vista | 5,3 | 18,0 |
| FPS na vista mediana | 12,9 | 28,9 |
| FPS na melhor vista | 30,1 | 42,8 |
| Quadro mediano | 77 ms | 35 ms |
| Triângulos por quadro (mediana) | 5,7 M | 1,8 M |
| Montagem do vale | 48 s | 29 s |
| Carga do menu | 48 s | ~3 s (lobby em vídeo) |
| Categoria | Modelos | Categoria | Modelos |
|---|---|---|---|
| Plantas e árvores | 80 | Construções | 26 |
| Adereços | 39 | Personagens | 24 |
| Animais | 31 | Peixes e raias | 17 |
| Itens de mão | 28 | Mobília | 15 |
| Criatura marinha | 1 |
| Data | Lote | Créditos / custo |
|---|---|---|
| 24/09 | Casa de Carro Quebrado, Modelo HD | 65 créditos |
| 26/09 | 67 retopologias, 1 geração, 1 rig | 2.755 créditos |
| 04/10 | Tubarão (105) e viajante com 13 animações (20) | 125 créditos |
| 05/10 | Level design: 125 gerações, 158 retopologias, 42 rigs | 14.035 créditos |
| 05/10 | 8 clipes do LTX, 1920×1080, 8 s cada | ≈ US$ 11 |
| 06/10 | Ponte caída e de pé | 190 créditos |
| 07/10 | Sessão V21 do testador automático | US$ 0,0 de 0,10 |
Este livro foi produzido no mesmo espírito do jogo que descreve: a partir de fontes declaradas, com ferramentas de inteligência artificial sob direção humana, e com o formato escolhido depois de uma pesquisa sobre o que os formatos consagrados de livro digital exigem. Esta nota resume essa pesquisa e as decisões que ela orientou.
EPUB é o formato aberto de livro digital mantido pelo W3C, na versão 3.3 (recomendação de 2023, com correções em 2024 e 2025). É o formato que a maioria das lojas e leitores aceita, inclusive os Kindle recentes, que convertem EPUB por baixo e recebem EPUB pelo serviço de envio da Amazon. Um EPUB é um arquivo ZIP com regras: o primeiro item do pacote é um arquivo chamado mimetype, sem compressão, contendo exatamente application/epub+zip; um diretório META-INF com container.xml aponta para o documento de pacote; o pacote (.opf) traz os metadados Dublin Core obrigatórios, identificador único, título e idioma, mais a data de modificação em UTC, o manifesto com todos os recursos e a espinha com a ordem de leitura; e um documento de navegação em XHTML, declarado no manifesto com a propriedade nav, deve conter exatamente um sumário (toc) e pode conter marcos (landmarks) como capa, página de rosto e início do texto. Os tipos de mídia centrais incluem JPEG, PNG, SVG e WebP para imagens, TTF, OTF, WOFF e WOFF2 para fontes, CSS e XHTML. O leiaute padrão é reflowable: o texto reflui no tamanho que o leitor escolher.
PDF é o formato de leiaute fixo: páginas de tamanho definido, tipografia controlada, o mesmo em qualquer tela. É o melhor para imprimir e para ler num tablet ou computador; é o pior num telefone, porque não reflui. A guia de acessibilidade da DAISY lembra que leiautes fixos dificilmente cumprem o requisito de refluxo das diretrizes de acessibilidade web, e por isso ele acompanha o EPUB, não o substitui.
Os formatos do Kindle (MOBI, AZW3, KPF) são derivados ou proprietários; o MOBI é antigo e já não é aceito pelo envio da Amazon. A escolha prática em 2026 é produzir o EPUB bem feito e deixar a conversão às plataformas. As especificações de capa da Amazon, usadas aqui como referência de mercado, pedem uma imagem JPEG em RGB com proporção de pelo menos 1,6 de altura por largura, idealmente 1.600 por 2.560 pixels.
A ordem das partes segue a prática editorial, influenciada pelo Chicago Manual of Style e adaptada ao digital: capa; folha de rosto; página de créditos; dedicatória; sumário; prólogo; o corpo em partes e capítulos; epílogo; apêndices; e a nota sobre a equipe. As guias de autopublicação recomendam manter as páginas preliminares enxutas, para que a amostra que as lojas mostram chegue ao primeiro capítulo, e mover agradecimentos e notas longas para o fim. A dedicatória vai sem título, em itálico, centrada; a epígrafe de cada capítulo tem no máximo quatro linhas, com a atribuição em redondo.
Para uma narrativa de não ficção, as mesmas guias sugerem o prólogo e o epílogo como molduras, caixas laterais para o material que interromperia a história, citações de destaque usadas com parcimônia, e um ornamento de abertura por capítulo. Este livro usa todos: a caixa de fundo escuro para listas e tabelas, a citação com filete dourado à esquerda para uma frase do projeto, a rosa dos ventos do jogo na abertura de cada parte, e uma pausa para a prática ao fim de cada capítulo, com dicas e lições para acelerar o trabalho com IA também fora dos jogos. O tempo de leitura de cada capítulo é calculado a 220 palavras por minuto, e cada pausa diz em que minuto da leitura ela cai. Cada gráfico tem uma tabela gêmea no Apêndice B, para quem lê sem imagens ou com leitor de tela, e toda imagem tem texto alternativo.
O corpo é composto em Literata, a fonte que o Google desenhou para a leitura longa de livros digitais, de olho grande e serifas firmes, que segura bem na tela e no papel; os títulos ficam em Cinzel, a fonte de ações e títulos do jogo. Na margem dos parágrafos, as notas manuscritas dos quatro desenvolvedores têm cada uma a sua caligrafia e a sua tinta: Kalam em azul para Matheus, Gochi Hand em vermelho-terra para Ramon, Patrick Hand em verde para Renato e Indie Flower em violeta para Pedro. Todas são de licença aberta e vão embutidas no EPUB. As cores são as da identidade "Crônica do Recôncavo": papel, laca, talha, ouro e cobalto. Toda medida do corpo é relativa, em em, sem larguras fixas, com imagens limitadas a cem por cento da coluna; é o que a DAISY recomenda para que o conteúdo reflua a 400% de zoom sem rolagem horizontal. Na edição paginada, a folha é A4, 210 por 297 milímetros, com margens de 23 a 26 milímetros, texto com hifenização em português, cabeçalho corrido com o nome do capítulo, número de página no rodapé, capa sangrada e páginas preliminares sem cabeçalho. O sumário dessa edição traz o número da página de cada capítulo e de cada pausa.
O texto foi escrito por um assistente de código, o Claude Code, a pedido de Matheus Ché, a partir dos históricos do Git, dos documentos do projeto, do diário e das páginas do site, das issues do GitHub e da memória do próprio assistente, que acompanhou o projeto desde a primeira semana. As citações entre aspas são literais dessas fontes; as datas e os números foram conferidos nos repositórios em 14 de outubro de 2026. As notas manuscritas nas margens são comentários em primeira pessoa dos quatro desenvolvedores, redigidos a partir dos commits de cada um, com a data e o assunto do commit como fonte. As imagens são do acervo do projeto: capturas do jogo, pinturas, retratos e uma composição feita para a capa com uma das pinturas e o logotipo.
Os capítulos foram escritos como fragmentos de HTML e montados por um roteiro em node em três formas a partir da mesma fonte: o EPUB 3.3, com um validador de XML a cada documento e a conferência final pelo EPUBCheck 5.4.0; uma página web contínua; e a edição em folhas A4, paginada no navegador pelo Paged.js e convertida em PDF pelo Chrome, com sumário de marcadores. As imagens foram preparadas com a biblioteca sharp, e os gráficos são SVG estáticos, com a paleta de duas cores validada pelo verificador de daltonismo e contraste da metodologia de visualização de dados usada: cobalto e telha sobre papel, com separação de cor acima de vinte unidades e contraste acima de quatro para um.
Todas as fontes do projeto são públicas ou estão nos repositórios da equipe. Os caminhos de arquivo referem-se aos repositórios em 14 de outubro de 2026.
acentauric/myths-valley: README.md; AGENTS.md; docs/GDD.md; docs/PLANO.md; docs/ARQUITETURA.md; docs/PIXELLAB.md; docs/AUDIO.md; docs/DIRECAO_VISUAL_INTRO.md; docs/enredo/README.md; .agents/rules/commits.md; assets/sprites/cofre/REGISTRO.tsv. https://github.com/acentauric/myths-valleyacentauric/myths-valley-3d: README.md; AGENTS.md; docs/projeto/DECISOES_PROTOTIPO_3D.md; docs/projeto/HISTORICO_DESENVOLVIMENTO_3D.md; docs/projeto/CHANGELOG_3D.md; docs/projeto/DESEMPENHO_05_10_2026.md e a pasta de dados e fotos; docs/projeto/RETOMADA_04_10_2026.md; docs/projeto/VALIDACAO.md; docs/projeto/MISSOES_SECUNDARIAS.md; docs/arte/ASSETS_TRIPO.md; docs/arte/IMAGEM_PARA_MODELO_3D.md; docs/ferramentas/TRIPO_MCP.md, TRIPO_PLAYWRIGHT.md e GODOT_MCP.md; docs/falas/README.md; assets/CREDITOS.md; data/historico_3d.json; tools/ltx, tools/openai, tools/elevenlabs, tools/pixellab, tools/tripo. https://github.com/acentauric/myths-valley-3dMatheus Ché cuida dos sistemas e das regras. Construiu a maior parte do jogo 2D e levou ao 3D o save, a mochila, as missões, o almanaque e os talentos; trabalhou a campanha, o vigor, as interações, as cenas e os bancos de teste que acompanham o avanço do vale. No Git, 258 commits no 2D e 173 no 3D, todos em sessões com o Claude Code.
Pedro Almeida entrou na semana da travessia dos sistemas. Levou ao vale a vida e a queda que acorda na porta da casa de taipa, o caititu que anuncia o bote, as três vagas de salvamento, o painel J, a coleção, as obras com ganho no corpo, a fala longa com escolha de sim e não, os cordéis e o pacto no lugar do mito, a pesca, a cozinha e a oficina. No Git, 18 commits no 3D, todos com coautoria de IA.
Ramon Santos é o autor de Batalha de Mitos e o diretor de Myths' Valley: o enredo, a identidade visual, o mapa real, o som e a paisagem. Conduziu o Tripo do primeiro modelo ao lote de level design, implementou as histórias, os moradores e os bichos no 3D, e fez o site, as traduções, os vídeos e a publicação das builds. É tataraneto de Pedro Nolasco da Encarnação. No Git, 95 commits no 2D e 130 no 3D, parte deles de sessões na nuvem.
Renato Leal é o mundo e a jogabilidade: o terreno, a mata, a costa e as texturas do chão; o pau-brasil e o guia de imagem para modelo 3D; os controles de mouse, o pulo, a câmera, os rios, o píer e as pontes; o machado na mochila, o corte dos coqueiros, o nado, o vigor, o fôlego e o HUD. No Git, 27 commits no 3D, sem assinatura de IA.
Os rodapés de coautoria registram também os assistentes: Claude Opus 5, Opus 5.5, Sonnet 5 e 5.5 e Fable 5.1, pelo Claude Code; e o Codex, pelos documentos de ferramentas. A equipe é da Alpha Centauri. O jogo está em mythsvalley.app.br, com download para Windows, diário, galeria, almanaque, mapa e a conversa com os moradores.