Quinze Dias no Vale
Capa do e-book Quinze Dias no Vale: uma pintura da vila de Bom Jesus dos Pobres vista do mar ao amanhecer, com a igreja branca na praia, um saveiro de vela e o píer; sobre ela, o título em letras douradas e o logotipo de Myths' Valley em talha dourada.
Logotipo de Myths' Valley em talha dourada, com um azulejo azul ao centro do filete.

Quinze Dias no Vale

Como quatro de­sen­vol­ve­do­res e uma or­ques­tra de in­te­li­gên­ci­as ar­ti­fi­ci­ais cons­truí­ram Myths' Valley, do pixel ao 3D, até o pri­mei­ro lugar bra­si­lei­ro no Tri­pothon S1

Matheus Ché · Pedro Al­mei­da

Ramon Santos · Renato Leal

Alpha Cen­tau­ri · Myths' Valley · 2026

Quinze Dias no Vale
Como quatro de­sen­vol­ve­do­res e uma or­ques­tra de in­te­li­gên­ci­as ar­ti­fi­ci­ais cons­truí­ram Myths' Valley, do pixel ao 3D, até o pri­mei­ro lugar bra­si­lei­ro no Tri­pothon S1.

Pri­mei­ra edição di­gi­tal, ou­tu­bro de 2026. Versão 1.0, fe­cha­da em 14 de ou­tu­bro de 2026.

© 2026 Alpha Cen­tau­ri. Myths' Valley é um jogo de­ri­va­do do uni­ver­so nar­ra­ti­vo de Ba­ta­lha de Mitos, de Ramon San­ta­na Santos. As ima­gens re­pro­du­zi­das neste livro são do pró­prio pro­je­to: cap­tu­ras do jogo, pin­tu­ras, re­tra­tos e mo­de­los ge­ra­dos pela equipe com as fer­ra­men­tas des­cri­tas no texto. Tri­pothon e Tripo são marcas da Tripo AI; Godot é marca da Godot Foun­da­ti­on; as demais marcas ci­ta­das per­ten­cem aos seus donos.

Au­to­ria: Matheus Ché, Pedro Al­mei­da, Ramon Santos e Renato Leal, os quatro de­sen­vol­ve­do­res do pro­je­to. Texto or­ga­ni­za­do com o Claude Code (Anth­ro­pic), a partir dos re­gis­tros do pro­je­to: os his­tó­ri­cos do Git dos dois re­po­si­tó­ri­os, a do­cu­men­ta­ção téc­ni­ca, o diário pú­bli­co do site, as issues do GitHub e as ano­ta­ções das ses­sões de tra­ba­lho. As in­ter­pre­ta­ções e as sín­te­ses são do texto; os fatos, as datas e os nú­me­ros têm fonte de­cla­ra­da no Apên­di­ce E. Qual­quer erro que tenha so­bre­vi­vi­do é de quem or­ga­ni­zou, não de quem cons­truiu o vale.

Ti­po­gra­fia: Li­te­ra­ta (The Li­te­ra­ta Pro­ject Authors) no texto, Cinzel (The Cinzel Pro­ject Authors) nos tí­tu­los, Caveat (The Caveat Pro­ject Authors) nos post-its, e Kalam (Indian Type Foun­dry), Gochi Hand (Huerta Ti­po­grá­fi­ca), Pa­trick Hand (Pa­trick Wa­ges­rei­ter) e Indie Flower (Kim­berly Geswein) nas notas de margem dos de­sen­vol­ve­do­res, todas sob SIL Open Font Li­cen­se 1.1. Com­po­si­ção em EPUB 3.3 re­flowá­vel, com edição em folhas A4 (PDF e página pa­gi­na­da) e em página web con­tí­nua ge­ra­das da mesma fonte; o Apên­di­ce D conta como.

myths­val­ley.app.br · github.com/acen­tau­ric/myths-valley-3d

Para Pedro No­las­co da En­car­na­ção,
que nunca soube que um dia seria o guia de um vale.

E para quem ficou acor­da­do até o dia cla­re­ar
para que ele fosse.

Pausas para a prática

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.

  1. 1Comece pelo meio mais baratoaos 10 min
  2. 2Guarde, limite e não gere à toaaos 19 min
  3. 3Teste o que a IA escreve, e teste o testeaos 28 min
  4. 4Especifique a entrada e o orçamentoaos 38 min
  5. 5Migre medindo, não adivinhandoaos 48 min
  6. 6Organize a casa enquanto andaaos 53 min
  7. 7Junte com cuidado e escreva as decisõesaos 61 min
  8. 8Encadeie especialistasaos 67 min
  9. 9Meça, retome e confirme o custoaos 76 min
  10. 10Determinístico primeiro, IA quando travaaos 86 min
  11. 11Apresente o trabalho com evidênciaaos 91 min
  12. 12Uma orquestra, uma partituraaos 98 min
  13. 13Um kit mínimo para começar amanhãaos 104 min
  14. 14Revise o método quando ele começar a custaraos 111 min
A casa de taipa do vale, pintada e reduzida a pixels grossos, como no jogo 2D.
Parte I

O pixel

21 a 28 de se­tem­bro de 2026. Um RPG de fa­zen­da em pixel art nasce numa ma­dru­ga­da e, em oito dias, vira o la­bo­ra­tó­rio de regras do jogo in­tei­ro: o re­ló­gio, a roça, a fé, as mis­sões, os por­tões que medem tudo isso, e a pri­mei­ra ponte para a ter­cei­ra di­men­são.

Ca­pí­tu­lo um · 21 de se­tem­bro

O vale nasce em pixel


Cria es­tru­tu­ra ini­ci­al do pro­je­to Godot.

Pri­mei­ro commit, 00h56 de 21 de se­tem­bro de 2026

O pri­mei­ro commit do pro­je­to tem hora: cin­quen­ta e seis mi­nu­tos depois da meia-noite de do­min­go. Até o fim da­que­le dia ha­ve­ria se­ten­ta e cinco, qua­ren­ta e três de Matheus e trinta e dois de Ramon, num re­po­si­tó­rio que ainda se cha­ma­va pelo nome pro­vi­só­rio e que ao anoi­te­cer já se cha­ma­ria Myths' Valley. Lidos em sequên­cia, os as­sun­tos dos com­mits contam uma his­tó­ria que nenhum do­cu­men­to de design con­ta­ria com a mesma ho­nes­ti­da­de: "Monta a pri­mei­ra versão jo­gá­vel: mundo, jo­ga­dor, ciclo de dia e es­ta­ções"; "Cor­ri­ge o ciclo do dia e adi­ci­o­na casa, dormir e tu­to­ri­al da Cai­po­ra"; "Adi­ci­o­na enredo, Pedro como guia, in­ven­tá­rio e la­vou­ra"; "Gera spri­tes e áudio por IA, re­es­cre­ve o tu­to­ri­al e adi­ci­o­na mis­sões"; "Corta o mapa com um rio, dá pro­fun­di­da­de à mata e abre três fren­tes"; "Am­bi­en­ta o jogo no Recôn­ca­vo de 1880 e abre o sis­te­ma de obras".

Em menos de vinte e quatro horas, por­tan­to, o jogo tinha um mundo gerado por se­men­te com relevo, água, praia e mata; um jo­ga­dor com co­li­são e câmera; um re­ló­gio que ia das seis da manhã às duas da ma­dru­ga­da e só virava o dia quando se dormia; quatro es­ta­ções de vinte e oito dias que re­pin­ta­vam a mata; uma casa com cama; um in­ven­tá­rio; uma roça em que se arava, plan­ta­va, regava e colhia no tile à frente; e um guia. O guia era, de início, a Cai­po­ra. Antes do almoço já era Pedro.

Por que começar em duas dimensões

A de­ci­são parece um desvio e é o con­trá­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 pre­ci­sa guar­dar tudo isso sem perder nada. Nada dessas regras de­pen­de de a câmera estar em cima ou atrás do per­so­na­gem. Em pixel art, com tiles de de­zes­seis pixels e um motor que a equipe já co­nhe­cia, cada regra podia ser es­cri­ta, tes­ta­da e cor­ri­gi­da em mi­nu­tos. Em 3D, com mo­de­los que ainda não exis­ti­am, cada teste cus­ta­ria uma tarde.

Então o 2D virou o la­bo­ra­tó­rio. Ao longo da pri­mei­ra semana ele re­ce­beu tudo o que o jogo pre­ci­sa­va saber fazer, e cada coisa re­ce­bi­da ganhou um teste au­to­má­ti­co, um "portão", que mede se ela con­ti­nua fun­ci­o­nan­do. Quando o 3D che­gas­se, as regras atra­ves­sa­ri­am com os por­tões junto. O ca­pí­tu­lo 5 conta a tra­ves­sia; este conta o que foi posto na mala.

Tela inicial do jogo 2D em pixel art: a igreja branca e o casario numa encosta de coqueiros, a baía com saveiros ao pôr do sol, o logotipo dourado de Myths' Valley e um painel de madeira com os botões Continuar, Jogo Novo, Opções e Créditos.
O menu do jogo 2D. O lo­go­ti­po, os pai­néis e o ce­ná­rio saíram do Pi­xel­Lab; a trilha, do Ele­ven­Labs; a fonte Miva é cri­a­ção da equipe. Esta tela é de 23 de se­tem­bro, dois dias depois do pri­mei­ro commit.

O mapa é Bom Jesus dos Pobres

A ter­cei­ra de­ci­são do dia foi ge­o­grá­fi­ca e de­fi­niu o jogo in­tei­ro. Em vez de um vale in­ven­ta­do, Ramon marcou no Google Earth, com traço ver­me­lho, a planta de uma vila real de pes­ca­do­res do Recôn­ca­vo: mar ao sul, serra ao norte, a vila numa faixa es­trei­ta ao longo da es­tra­da da praia, praça para dentro, riacho des­cen­do ao mar perto do píer, igreja na beira, ce­mi­té­rio su­bin­do a en­cos­ta, mi­ran­te no alto. Com ró­tu­los es­cri­tos à mão: PRAÇA, PIER, IGREJA, BAR, CE­MI­TÉ­RIO, MI­RAN­TE, RIO. O commit "Refaz o mapa na planta de Bom Jesus dos Pobres e dá dono a toda terra" é das pri­mei­ras horas da tarde.

Foto aérea de Bom Jesus dos Pobres com anotações em vermelho desenhadas à mão: as ruas, a praça, o píer, a igreja, o bar, o cemitério, a casa, o mirante na encosta e dois rios marcados em azul.
A planta da vila, de­se­nha­da sobre a foto aérea. Esta imagem ori­en­tou o mapa do 2D e, dias depois, o KML que virou o ter­re­no do 3D. O roçado do jo­ga­dor fica para dentro, a nor­des­te da igreja; o rio grande, com a fa­zen­da do ca­pí­tu­lo 6 do outro lado, fica a leste.

"Toda terra tem dono" não era força de ex­pres­são. O jo­ga­dor ara qual­quer chão que seja seu, e não um can­tei­ro mar­ca­do; os ter­re­nos vi­zi­nhos, da Dona Zefa e do Seu Be­ne­di­to, se ganham com­pran­do, fa­zen­do um favor ao dono, ou os dois, con­for­me a placa de cada um. Um rio corta o mapa de norte a sul, e a única pas­sa­gem é um vau fe­cha­do por três paus caídos: sem ma­cha­do não se atra­ves­sa, e é isso que segura o vi­la­re­jo do outro lado até o tu­to­ri­al en­si­nar o que pre­ci­sa. A ponte para a fa­zen­da caiu; a missão não é der­ru­bar pau, é re­cons­truir: doze tábuas e quatro cordas, ser­ra­das e tor­ci­das na ofi­ci­na. "É a pri­mei­ra coisa que muda no lugar em vinte anos", diz o README, "e o Pedro repara nisso."

A primeira arte gerada

O commit das quatro da tarde, "Gera spri­tes e áudio por IA", marca a en­tra­da das pri­mei­ras fer­ra­men­tas ge­ne­ra­ti­vas no pro­je­to. Os bo­ne­cos de Pedro e do vi­a­jan­te, em quatro di­re­ções, vieram do Pi­xel­Lab, um ser­vi­ço de pixel art por des­cri­ção; a ca­mi­nha­da deles, seis qua­dros por di­re­ção, veio do mesmo lugar dias depois. A nar­ra­ção de aber­tu­ra veio do Ele­ven­Labs, na voz do nar­ra­dor do pró­prio Ba­ta­lha de Mitos. Ainda no mesmo dia, Ramon acres­cen­tou ao re­po­si­tó­rio um ro­tei­ro que pedia à OpenAI uma imagem-con­cei­to da tela ini­ci­al, e a imagem entrou como arte de fundo e painel en­ta­lha­do do menu.

Folha de sprites de Pedro em pixel art: quatro linhas, uma por direção, com seis quadros de caminhada cada, em 48 pixels de altura, chapéu de palha e camisa clara.
Pedro em quatro di­re­ções. A folha de ca­mi­nha­da gerada no Pi­xel­Lab: 48 pixels de altura, seis qua­dros por di­re­ção. No 3D, Pedro ga­nha­ria um corpo do Tripo e clipes de ani­ma­ção; mas foi este boneco que en­si­nou o pri­mei­ro tu­to­ri­al.

Vale notar o que a IA não fez na­que­le dia. O mapa foi de­se­nha­do à mão. O re­ló­gio, a roça, o in­ven­tá­rio e a eco­no­mia foram es­cri­tos como código, com um as­sis­ten­te de pro­gra­ma­ção ao lado, mas por de­ci­são humana em cada regra. A am­bi­en­ta­ção his­tó­ri­ca, da ar­qui­te­tu­ra caiada ao ano de 1887, foi pes­qui­sa­da por Ramon e re­gis­tra­da em do­cu­men­to antes de virar tile. O padrão que se re­pe­ti­ria nas duas se­ma­nas se­guin­tes já estava posto: a IA gera o que é volume (spri­tes, vozes, va­ri­a­ções, ras­cu­nhos de código) e as pes­so­as de­ci­dem o que é sen­ti­do.

O que o 2D sabia fazer no fim do primeiro dia

"Escolha ruim que não existe não é escolha"

Há uma frase no README do 2D que ex­pli­ca a fi­lo­so­fia de design melhor do que qual­quer GDD. Dormir de­vol­ve um valor fixo de fôlego, qua­ren­ta no começo, e não uma fração do máximo. Quem des­tra­var mil de fôlego nos ta­len­tos e não mexer no des­can­so con­ti­nua acor­dan­do com qua­ren­ta. "Subir o teto sem subir o des­can­so é uma es­co­lha ruim, e o jogo deixa fazer, porque es­co­lha ruim que não existe não é es­co­lha." O mesmo es­pí­ri­to está no custo das ações: o ma­cha­do de aço abre a ma­dei­ra de lei, mas aquele corte custa o dobro; quem quer pagar menos sobe a efi­ci­ên­cia, não a fer­ra­men­ta.

Esse gosto por regras com con­sequên­cia, em vez de barras que só sobem, foi o que mais tarde fez o vale 3D pa­re­cer um lugar e não uma vi­tri­ne. E foi também o que tornou os testes in­dis­pen­sá­veis: regra com con­sequên­cia é regra que quebra calada quando alguém mexe ao lado. O ca­pí­tu­lo 3 é sobre isso. Antes dele, porém, veio o dia mais longo.

Ca­pí­tu­lo dois · 22 de se­tem­bro

O dia mais longo


Toda arte que custou cré­di­to fica guar­da­da. Au­to­ma­ti­ca­men­te, sempre, sem ex­ce­ção.

A regra do cofre, docs/PI­XEL­LAB.md

Se­gun­da-feira, 22 de se­tem­bro, é o dia com mais com­mits de toda a jor­na­da: cento e nove, cin­quen­ta e oito de Matheus e cin­quen­ta e um de Ramon. O diário do site o chama de "o dia mais longo", e a lista do que entrou jus­ti­fi­ca o nome. De manhã, a arte dos marcos de fé, do mi­ran­te, das fru­tei­ras, das mudas e das co­mi­das. Depois, o sis­te­ma de fé em três ca­mi­nhos, ca­tó­li­ca, can­dom­blé e ca­bo­clo, cada um com árvore pró­pria de ta­len­tos. Uma lagoa a leste e o mapa vinte tiles mais largo. As fru­tei­ras com ca­rên­cia. As obras da casa em três eixos, casca, planta e mo­bí­lia, cada uma dando atri­bu­to. As mis­sões com chec­klist que se des­ris­ca, se­pa­ra­das entre enredo e dia a dia, e uma bús­so­la de três pontas. Doze testes de portão. Dez cor­déis de verso ori­gi­nal. E, no fim da tarde, um plano de im­plan­ta­ção em sete fases, com as quatro pri­mei­ras ris­ca­das antes da meia-noite: salvar e car­re­gar, afi­ni­da­de com os mo­ra­do­res, o roçado que se vê cres­cer, cartas e ri­tu­ais, o ar­rai­al que cresce.

En­quan­to isso, Ramon re­fa­zia a en­tra­da do jogo. O menu ini­ci­al ganhou fundo e painel de ma­dei­ra ge­ra­dos pelo Pi­xel­Lab atra­vés de um ser­vi­dor MCP, o pro­to­co­lo que deixa um as­sis­ten­te de código chamar uma fer­ra­men­ta ex­ter­na como quem chama uma função; ganhou duas mú­si­cas de tema ge­ra­das no Ele­ven­Labs, uma de ses­sen­ta se­gun­dos es­co­lhí­vel nas opções; ícones de som em pixel art; um vídeo em laço feito no LTX; a fonte Al­men­dra e a fonte Miva, esta criada pela pró­pria equipe. De­ze­nas de com­mits pe­que­nos de ajuste de layout, foco de te­cla­do e pro­por­ção 16:9, no vaivém típico de quem está vendo a tela ganhar forma.

O cofre

O commit mais im­por­tan­te do dia, para quem olha de longe, é o que menos muda o jogo: "Guarda toda arte gerada num cofre, au­to­ma­ti­ca­men­te". A regra que ele ins­ta­la merece ser lida in­tei­ra, porque é o pri­mei­ro exem­plo de um padrão que o pro­je­to re­pe­ti­ria com cada fer­ra­men­ta de IA: uma po­lí­ti­ca es­cri­ta, me­ca­ni­za­da na camada mais baixa pos­sí­vel, para que nin­guém pre­ci­se lem­brar dela.

O pro­ble­ma era con­cre­to. No Pi­xel­Lab, o preço não é por cha­ma­da, é por quadro gerado; uma ani­ma­ção em modo tem­pla­te cobra por di­re­ção; um lote de ob­je­tos cobra pelo lote in­tei­ro, mesmo sem nomear todos. Quando se geram quatro va­ri­an­tes de uma peça para es­co­lher a melhor, três não têm des­ti­no no jogo: foram pagas, saíram da API e sumiam. "E são jus­ta­men­te essas que mais custam para re­fa­zer, porque a mesma se­men­te com o mesmo texto não de­vol­ve o mesmo de­se­nho." A so­lu­ção foi copiar cada arte gerada para uma pasta de cofre no ins­tan­te em que os bytes chegam, antes de qual­quer de­ci­são, junto com uma linha num re­gis­tro: data, des­ti­no, se­men­te e, o mais caro de perder, a des­cri­ção que gerou aquela peça. A cópia mora na camada da API, cha­ma­da de dentro do cli­en­te, e não nos mais de vinte ro­tei­ros de ge­ra­ção: "pedir que cada um lembre de guar­dar é pedir que alguém es­que­ça". E um portão lê o código e re­pro­va qual­quer end­point novo que es­cre­va arte no disco sem passar pelo cofre.

O re­gis­tro conta a pró­pria his­tó­ria do dia. Três mi­ran­tes ge­ra­dos em sequên­cia, com a medida de si­me­tria da torre cal­cu­la­da por script: 71,8% de si­me­tria, escada de um lado só, re­cu­sa­da; 88,6%, bonita mas em três quar­tos, re­cu­sa­da; 95,9%, es­co­lhi­da e ins­ta­la­da. Ao fim do pro­je­to o cofre do 2D teria 534 ge­ra­ções re­gis­tra­das. Ne­nhu­ma delas se perdeu.

Quanto custa de verdade

A do­cu­men­ta­ção do Pi­xel­Lab é um pe­que­no tra­ta­do de eco­no­mia de ge­ra­ção, es­cri­to por quem pagou para apren­der. O end­point de ob­je­tos de mapa cobra uma ge­ra­ção, "do ta­ma­nho 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 ob­je­tos, que teria cus­ta­do de­zes­seis. A ro­ta­ção não cobrou nada nas pri­mei­ras vezes e cobrou depois: "o preço dele não é fixo, e vale con­fe­rir o saldo antes e depois". Gerar com saldo in­su­fi­ci­en­te de­vol­ve um erro 402 sem cobrar, "então dá para sondar o preço ten­tan­do", com a res­sal­va de que sondar com um corpo válido gera de ver­da­de.

Arte-conceito da tela inicial: vista aérea em pixel art de uma vila de casas caiadas e telhados de barro numa encosta de mata, igreja branca à esquerda, baía com saveiros à direita, pôr do sol alaranjado, e um painel de madeira com os botões Jogar, Opções, Créditos e Sair.
O con­cei­to da tela ini­ci­al. Gerado por Ramon com a API de ima­gens da OpenAI em 21 de se­tem­bro e in­te­gra­do ao menu no dia se­guin­te, antes de a versão em pixel art do Pi­xel­Lab tomar o lugar dele. A com­po­si­ção, igreja à es­quer­da, baía à di­rei­ta, so­bre­vi­veu a todas as ver­sões.

Há lições ainda me­lho­res sobre quando não gerar. A ponte caída foi pedida duas vezes ao Pi­xel­Lab e voltou as duas como uma ponte in­tei­ra em pers­pec­ti­va: o modelo de­se­nha a ideia "ponte", não a ideia "ponte que­bra­da". O que re­sol­veu foi partir da arte da ponte de pé e ar­re­ben­tá-la em código: abrir o vão no meio, fazer os cotos ce­de­rem para a água, es­pa­lhar pran­cha solta. Sai de graça, casa a paleta exa­ta­men­te, e, o que im­por­ta para o jo­ga­dor, é vi­si­vel­men­te a mesma ponte que ele vai le­van­tar depois. "Quando o que se quer é o estado es­tra­ga­do de uma arte que já existe, des­truir por código ganha de gerar de novo." O mesmo valeu para es­ti­car, a ponte do rio grande é a do riacho com o miolo re­pe­ti­do a cada onze pixels, medido por au­to­cor­re­la­ção, e para emen­dar: a cerca de ferro foi de­se­nha­da tile a tile, porque "arte gerada não emenda".

O Elevador Lacerda de 1887

Uma das cenas de aber­tu­ra mostra Sal­va­dor vista do mar. Pedir a cena in­tei­ra ao ge­ra­dor não fun­ci­o­nou: voltou "uma fita es­trei­ta de pe­nhas­co, sem torre". Então a torre foi gerada so­zi­nha, e a es­car­pa, as duas ci­da­des, a pas­sa­re­la e a baía foram pin­ta­das em código. Antes disso, uma pes­qui­sa: o ele­va­dor foi inau­gu­ra­do em 1873 como Ele­va­dor Hi­dráu­li­co da Con­cei­ção da Praia, tinha uma torre só, de al­ve­na­ria, com o ferro res­tri­to à pas­sa­re­la; a se­gun­da torre e o traço art déco são de 1930; o Mer­ca­do Modelo é de 1912 e por isso não apa­re­ce; o Forte de São Mar­ce­lo, re­don­do, dentro d'água, é do século XVII e apa­re­ce. É o tipo de cui­da­do que uma IA de ima­gens não tem so­zi­nha e que o jo­ga­dor do Recôn­ca­vo per­ce­be.

O plano, e o que três jogos ensinam

O plano de im­plan­ta­ção es­cri­to na­que­le dia começa por um le­van­ta­men­to ho­nes­to do que já exis­tia e por uma lei­tu­ra de três re­fe­rên­ci­as do gênero. De Star­dew Valley, cinco coisas: não dá para perder; o dia é a uni­da­de e ele ter­mi­na; cada ação con­tri­bui para um pro­gres­so vi­sí­vel; a es­ta­ção traz opor­tu­ni­da­de e ameaça juntas; a re­la­ção com os mo­ra­do­res é um se­gun­do motor. "O item 3 é onde es­ta­mos mais fracos. O roçado do jo­ga­dor muda pouco de apa­rên­cia entre o dia 1 e o dia 60."

De Gra­veyard Keeper, a lição mais cara, por ser a do que não fazer: ener­gia que obriga a dormir ou comer o tempo todo sem o jogo ex­pli­car por quê; correr de um lado para outro entre ban­ca­das es­pa­lha­das; eco­no­mia sem sen­ti­do. "Já temos fôlego, ban­ca­das es­pa­lha­das e uma árvore de trinta nós. Es­ta­mos cons­truin­do exa­ta­men­te o jogo que re­ce­beu essas crí­ti­cas, e não per­ce­be­mos porque ainda não há con­teú­do su­fi­ci­en­te para doer." Daí três regras para o plano in­tei­ro: toda ban­ca­da nova cabe no tra­je­to de uma exis­ten­te; todo custo de fôlego novo vem com uma fonte de fôlego nova; toda re­cei­ta nova res­pon­de "quanto isto rende por fôlego gasto". E o acerto a copiar: em certo ponto o jo­ga­dor para de fazer e passa a mandar fazer, e o jogo muda de escala sem mudar de me­câ­ni­ca.

De Ro­mes­te­ad, o favor dos deuses como pro­gres­são, que va­li­da­va o de­se­nho da fé, e o as­sen­ta­men­to como per­so­na­gem. E um item ex­pli­ci­ta­men­te re­cu­sa­do: car­re­gar os re­cur­sos fi­si­ca­men­te, um de cada vez. "Nosso jogo é sobre tra­ba­lho de roça, e um in­ven­tá­rio hostil tro­ca­ria tra­ba­lho por lo­gís­ti­ca."

O que im­pres­si­o­na no plano não é a am­bi­ção, é a ordem. "Sete fases. A ordem não é por am­bi­ção: é por quanto cada uma des­blo­queia das se­guin­tes, e cada uma ter­mi­na com o jogo jo­gá­vel." A fase zero era salvar e car­re­gar, "o buraco mais fundo do pro­je­to": sem per­sis­tên­cia, a ca­rên­cia de nove dias da man­guei­ra, as vinte tábuas do mi­ran­te, a mi­gra­ção de fé, nada disso podia ser sen­ti­do por quem re­co­me­ça do zero a cada sessão. Saiu na­que­le mesmo dia, com um portão que salva, re­car­re­ga e com­pa­ra vinte e dois campos, e com a regra que faria o sis­te­ma não apo­dre­cer: todo campo pú­bli­co novo entra na tabela do que se guarda ou na lista do que fica de fora, com a razão es­cri­ta, e o portão cobra os dois.

Commits em prosa

Foi também nessa semana que o pro­je­to aban­do­nou, na prá­ti­ca, a con­ven­ção de com­mits se­mân­ti­cos com que Ramon o tinha inau­gu­ra­do. A regra nova, es­cri­ta dias depois num do­cu­men­to pró­prio, pede que o as­sun­to seja "uma frase em prosa, no pre­sen­te, di­zen­do o que mudou no jogo", e não um rótulo de ca­te­go­ria. "A cabra do Seu Be­ne­di­to dá motivo à pedra, e o Pedro ex­pli­ca de quem é o morro." A razão: uma fatia daqui quase nunca cabe num tipo só; a da cabra mexeu em ge­ra­ção de mundo, em diá­lo­go, em missão e no portão que a segura, e feat(mundo): teria es­con­di­do três quar­tos disso. "O git log deste pro­je­to se lê como a lista do que o jogo passou a fazer, que é exa­ta­men­te o que se quer pro­cu­rar nele meses depois."

Há uma con­sequên­cia menos óbvia dessa regra para um pro­je­to feito com IA. Um as­sis­ten­te que es­cre­ve o commit pre­ci­sa, antes, saber dizer em uma frase o que mudou para quem joga. Quando não sabe, é sinal de que a fatia está mal cor­ta­da. Os com­mits em prosa vi­ra­ram, sem nin­guém pla­ne­jar, um teste de com­pre­en­são apli­ca­do ao pró­prio as­sis­ten­te a cada en­tre­ga.


O dia mais longo ter­mi­nou com o jogo sal­van­do, com os mo­ra­do­res lem­bran­do de quem lhes dava pre­sen­tes, com a roça mu­dan­do de apa­rên­cia con­for­me o cui­da­do, com cartas de pacto que cobram todo dia e com um ar­rai­al que rende con­for­me a pe­rí­cia de quem tra­ba­lha nele. Três dias de pro­je­to. O que fal­ta­va era a prova de que tudo isso con­ti­nu­a­ria fun­ci­o­nan­do no dia se­guin­te, e no outro, quando alguém me­xes­se ao lado. Essa prova tem nome, e é o as­sun­to do pró­xi­mo ca­pí­tu­lo.

Ca­pí­tu­lo três · O método

Portão que passa não é portão que mede


Com­por­ta­men­to novo sem portão novo é com­por­ta­men­to que vai voltar a que­brar.

README do jogo 2D

Num pro­je­to feito com in­te­li­gên­cia ar­ti­fi­ci­al, a per­gun­ta que im­por­ta não é "a IA es­cre­ve código bom?". É "como saber se o código con­ti­nua bom depois que alguém, humano ou não, mexeu ao lado?". A res­pos­ta que Myths' Valley deu a essa per­gun­ta é a es­pi­nha dorsal de todo o resto, e ela tem um vo­ca­bu­lá­rio pró­prio. Um teste au­to­ma­ti­za­do chama-se portão. Que­brar o código de pro­pó­si­to para con­fe­rir que o portão pega chama-se fal­si­fi­car. E a regra de ouro, es­cri­ta no pri­mei­ro dia e re­pe­ti­da em todo do­cu­men­to desde então, é que cada fatia do jogo entra num commit com portão e fal­si­fi­ca­ção.

Ao fim da pri­mei­ra semana o 2D tinha 47 por­tões, "cada um roda sem janela e sai com código 1 quando re­pro­va", e o nome de cada um "diz o de­fei­to que ele existe para não deixar voltar". A lista, no README, é uma lista de per­gun­tas. testar_re­cu­sas: o jogo sempre diz por que não deu? testar_relevo: o mundo não tem régua? testar_es­co­lha: uma per­gun­ta do diá­lo­go não se res­pon­de por aci­den­te? testar_in­te­ri­o­res: 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 des­man­cha no meio, ele entra em casa sem es­pe­rar nin­guém e en­tre­ga o ma­cha­do na mão? testar_co­vei­ro: a missão do ce­mi­té­rio, e o homem que re­ce­beu o cargo sem a fer­ra­men­ta?

Dois modos de um portão verde não valer nada

O do­cu­men­to de ins­tru­ções para agen­tes do 2D abre com uma seção cujo título dá nome a este ca­pí­tu­lo, e que des­cre­ve duas falhas que acon­te­ce­ram de ver­da­de. A pri­mei­ra: a rede de se­gu­ran­ça fecha o teste. A cena em que Pedro vai buscar os ma­cha­dos tem um teto de vinte se­gun­dos, pas­sa­do o qual ele sim­ples­men­te está na porta, porque "ca­mi­nho blo­que­a­do, malha sem rota ou cena aberta com ele do outro lado do rio não podem pren­der o tu­to­ri­al para sempre; snap é feio e é melhor do que tra­va­do". Mas com a caixa de fala aberta Pedro não anda. O teste media, por­tan­to, um Pedro con­ge­la­do, e pas­sa­va, res­ga­ta­do pelo teto. Verde, e sem valor.

A se­gun­da: a ex­pec­ta­ti­va de quebra não casa por causa de um acento. O fal­si­fi­ca­dor pro­cu­ra, li­te­ral­men­te, um trecho da men­sa­gem de erro na saída do teste. "esta pe­din­do" não casa com "está pe­din­do", e a fer­ra­men­ta re­por­ta que o portão furou quando o portão está ótimo e quem errou foi a ex­pec­ta­ti­va. A lição ficou es­cri­ta: es­co­lha um pedaço da frase sem acento nenhum. Se­ma­nas depois, no 3D, a mesma ar­ma­di­lha vol­ta­ria por outra porta, com a saída do Godot che­gan­do ao node com os acen­tos tro­ca­dos, e a lição foi re­es­cri­ta para o novo caso.

Um re­tra­to só vale se for tirado de fora do que ele está me­din­do.

Lição do portão do po­vo­a­do, docs/PLANO.md

O caso do po­vo­a­do é o mais ins­tru­ti­vo. O portão devia pegar a pe­rí­cia de um mo­ra­dor su­bin­do en­quan­to ele estava parado. Olhava a conta de dias de roça; o dia parado era lan­ça­do no ofício "nada", que a roça nunca vê; o portão pas­sa­va na quebra que exis­tia para pegar. Com­pa­rar o ca­der­no in­tei­ro do mo­ra­dor re­sol­veu. E um achado de pas­sa­gem, que não dava erro nenhum: uma obra cor­re­ta, ca­ta­lo­ga­da, co­bra­da, com nome e resumo, e sem ca­mi­nho até ela, porque mirava uma fa­mí­lia de cons­tru­ções que o E nunca abri­ria. "Era o mesmo buraco por onde a fase in­tei­ra cairia, e por isso o pri­mei­ro portão do teste é o ca­mi­nho até a obra e não o efeito dela."

O falsificador

A fer­ra­men­ta que fecha o cír­cu­lo nasceu de dois aci­den­tes numa tarde: um sed com âncora frouxa apagou seis continue de uma vez, e uma rodada morta no meio deixou um ar­qui­vo sem uma linha. "Dano si­len­ci­o­so faz a rodada se­guin­te culpar o portão errado." Por isso o fal­si­fi­ca­dor troca texto li­te­ral em vez de ex­pres­são re­gu­lar, diz quan­tas trocas fez, separa "re­pro­vou" de "nem com­pi­lou" e de­vol­ve tudo num bloco finally. As que­bras ficam numa tabela, uma por linha, com o ar­qui­vo, o trecho a trocar, o trecho novo e a men­sa­gem es­pe­ra­da. As vinte e cinco que­bras do po­vo­a­do estão lá até hoje.

Duas regras de con­vi­vên­cia vieram junto. Não editar o re­po­si­tó­rio en­quan­to o fal­si­fi­ca­dor roda, porque ele quebra um ar­qui­vo, testa e res­tau­ra, e uma edição no meio mede código que não é o do re­po­si­tó­rio. E não parar o fal­si­fi­ca­dor à força, porque matar o pro­ces­so pula o finally e deixa o ar­qui­vo que­bra­do: "depois de uma parada for­ça­da, con­fi­ra o git diff antes de qual­quer outra coisa". Já acon­te­ceu uma vez. A quebra "o banco es­co­lhi­do vira o da frente" ficou no código e só apa­re­ceu quando a suíte rodou de novo.

Nunca mate o Godot pelo nome

O runner dos por­tões existe por um motivo caro, e o motivo está em caixa alta nos dois re­po­si­tó­ri­os. Um teste do Godot que morre antes do quit() não en­cer­ra o pro­ces­so: a árvore de cena fica gi­ran­do, e o que se vê de fora é um Godot vivo e calado. Rodar os testes à mão exigia matar o pro­ces­so pen­du­ra­do, e matar pelo nome do exe­cu­tá­vel já fechou o editor aberto de alguém no meio do tra­ba­lho, várias vezes, le­van­do junto cena não salva, porque o bi­ná­rio do editor e o de con­so­le têm nomes pa­re­ci­dos e o de con­so­le le­van­ta o outro como filho. "Matar só por PID, e só o que ele mesmo le­van­tou." O runner tem teto de tempo por teste; com o teto, um tra­va­men­to vira uma linha de saída em vez de um pro­ces­so para alguém caçar.

Há uma se­gun­da ar­ma­di­lha do motor que todo do­cu­men­to repete: erro de com­pi­la­ção não der­ru­ba o jogo. Um Parse Error deixa o nó sem script e a cena segue, e o es­tra­go apa­re­ce longe de onde foi feito. "Já acon­te­ceu: um IdiomaMenu.sufixo() sem o preload passou por onze testes e só re­pro­vou no décimo se­gun­do." Por isso a ba­te­ria conta também os erros de aná­li­se na saída de erro, e não só o código de saída. E por isso "travou" é um re­sul­ta­do tão ruim quanto "re­pro­vou".

Comentário explica o porquê

A ter­cei­ra regra do método é sobre a voz do código. "O código diz o que faz, e o co­men­tá­rio guarda a de­ci­são, a al­ter­na­ti­va re­cu­sa­da e a ar­ma­di­lha que o pró­xi­mo vai pisar." É uma regra sobre pes­so­as, mas é também uma regra sobre IA: o as­sis­ten­te que lê um ar­qui­vo com os porquês es­cri­tos faz a mu­dan­ça certa na se­gun­da ten­ta­ti­va, não na quinta. Os do­cu­men­tos do pro­je­to são es­cri­tos no mesmo re­gis­tro, para si mesmos daqui a seis meses, com o que deu errado no lugar em que deu errado. Boa parte deste livro é, li­te­ral­men­te, esses do­cu­men­tos re­li­dos.

Captura do jogo 3D na praça de Bom Jesus dos Pobres: Pedro, de camisa branca e colete escuro, ao lado de um cachorro caramelo e de um banco de madeira; o balão de fala explica os controles; no alto, o relógio marca 9h da manhã com as barras de vida, fôlego e vigor; à direita, a coluna de botões do HUD; embaixo, a barra de mão com o machado no espaço 1 e o minimapa.
A cap­tu­ra que o re­la­tó­rio de de­sem­pe­nho usou como base. Praça, nove da manhã, 5 de ou­tu­bro. Cada ele­men­to desta tela, do balão à barra de mão, tem um portão que o mede; a tela em si foi medida 128 vezes na­que­le dia, de 16 lu­ga­res e 8 rumos.

O portão, do 2D ao 3D

O que o assistente aprendeu sobre o tempo

Quando os por­tões mi­gra­ram para o 3D, uma classe nova de de­fei­to apa­re­ceu: o portão sen­sí­vel ao tempo. Um teste que espera n qua­dros de de­se­nho e depois con­fe­re algo que se move de­pen­de de quan­tos passos de física cabem nesses qua­dros; sob a ba­te­ria com­ple­ta cabem mais, e o portão falha na ba­te­ria e passa so­zi­nho. O as­sis­ten­te anotou a cura na pró­pria me­mó­ria: contar passos de física em vez de qua­dros, ou per­gun­tar por arit­mé­ti­ca com a física do corpo des­li­ga­da. Para re­pro­du­zir um "falha só na ba­te­ria", ocupar todos os nú­cle­os com laços vazios, um por pro­ces­sa­dor, e rodar o portão de novo. Mover o jo­ga­dor só pela função de te­le­por­te, porque es­cre­ver a po­si­ção direto deixa a re­fe­rên­cia de terra firme velha e a regra da queda no mar de­vol­ve o corpo meio se­gun­do depois. Usar a más­ca­ra certa nos raios de di­ag­nós­ti­co, porque há uma su­per­fí­cie in­vi­sí­vel para a câmera na altura da água que res­pon­de a qual­quer raio sem más­ca­ra.

A lista tem de­ze­nas de itens, e cada um custou uma ba­te­ria de cin­quen­ta e cinco mi­nu­tos. "Siga estes antes de de­cla­rar um portão ins­tá­vel, e es­cre­va os novos con­ta­dos em passos desde o começo." Esse acú­mu­lo de lições, guar­da­do onde a IA o relê a cada sessão, é talvez a parte menos vi­sí­vel e mais va­li­o­sa do uso de in­te­li­gên­cia ar­ti­fi­ci­al no pro­je­to: não a ve­lo­ci­da­de com que o as­sis­ten­te es­cre­ve, mas o fato de que ele para de re­pe­tir os erros que já co­me­teu.

Ca­pí­tu­lo quatro · 23 a 28 de se­tem­bro

A terceira dimensão


O que pesa é o Modelo HD cru: cada ge­ra­ção chega com cerca de 1,9 milhão de tri­ân­gu­los e três tex­tu­ras 2K. Isso é qua­li­da­de de cinema, não de jogo.

docs/arte/ASSETS_TRIPO.md

Na terça-feira 23 de se­tem­bro, às nove da noite, Ramon abriu uma branch cha­ma­da prototype/myths-valley-3d e re­gis­trou, antes de qual­quer código, um do­cu­men­to de de­ci­sões de qua­tro­cen­tas linhas. É o texto mais me­tó­di­co de todo o pro­je­to, e vale lê-lo como um con­tra­to con­si­go mesmo. Ob­je­ti­vo: uma ex­pe­ri­ên­cia de dez a quinze mi­nu­tos, em ter­cei­ra pessoa, numa região pe­que­na, com um ciclo de far­ming con­cluí­vel e um mo­ra­dor que con­ver­sa. Pri­o­ri­da­des, nesta ordem: ve­lo­ci­da­de de de­sen­vol­vi­men­to, qua­li­da­de grá­fi­ca, ca­pa­ci­da­de de ex­pan­são. Re­fe­rên­cia visual: My Time at Evershi­ne, "per­so­na­gens es­ti­li­za­dos, ve­ge­ta­ção, ilu­mi­na­ção agra­dá­vel e com­po­si­ção de uma vila". Prazo: dois fins de semana, 26 e 27 de se­tem­bro e 3 e 4 de ou­tu­bro, com a sub­mis­são no dia 5.

O do­cu­men­to decide manter o Godot, em vez de migrar para outro motor, para apro­vei­tar as regras do 2D; es­co­lhe o ren­de­rer Forward+, con­di­ci­o­na­do a teste na má­qui­na-alvo; define o Tripo para "pra­ti­ca­men­te todos os mo­de­los" e o Mixamo para as ani­ma­ções hu­ma­nas; proíbe de­pen­der de mo­de­la­gem manual ou de re­to­po­lo­gia à mão; e de­se­nha, para a con­ver­sa com mo­ra­do­res por IA, uma ar­qui­te­tu­ra in­tei­ra que nunca chegou a ser cons­truí­da dentro do prazo: um ser­vi­ço em Ty­peS­cript, chave do pro­ve­dor como se­gre­do no ser­vi­dor, três com­po­nen­tes de me­mó­ria por mo­ra­dor, falas ro­tei­ri­za­das de re­ser­va quando a rede cair. A frase que resume a parte de IA dessa ar­qui­te­tu­ra virou prin­cí­pio do pro­je­to: "O código define os fatos do mundo. O LLM produz a fala do per­so­na­gem sobre esses fatos."

O primeiro boneco

Na mesma noite entrou o pri­mei­ro pro­tó­ti­po jo­gá­vel: uma vila de formas sim­ples, um per­so­na­gem me­di­e­val de um ar­qui­vo FBX com ses­sen­ta e cinco ossos e nenhum clipe de ani­ma­ção, movido por um ani­ma­dor pro­ce­du­ral im­pro­vi­sa­do. Horas depois, o mesmo per­so­na­gem num GLB com onze clipes ex­por­ta­dos do Tripo: re­pou­so, ca­mi­nha­da e cor­ri­da es­co­lhi­dos pela ve­lo­ci­da­de, oito gestos nas teclas de 1 a 8. "Isso ainda não valida o pi­pe­li­ne com­ple­to", re­gis­tra o do­cu­men­to, com a cau­te­la que o ca­rac­te­ri­za. E, no mesmo commit em que con­fi­gu­rou o ser­vi­dor MCP do Tripo, Ramon anotou que as cre­den­ci­ais ficam no perfil local e que ne­nhu­ma chave entra no re­po­si­tó­rio. Esse cui­da­do com chaves, re­pe­ti­do para cada ser­vi­ço, nunca foi que­bra­do nas duas se­ma­nas.

Na quarta-feira veio a pri­mei­ra casa. Uma imagem de re­fe­rên­cia limpa, em pers­pec­ti­va de três quar­tos, foi criada a partir do de­se­nho da casa de Carro Que­bra­do e en­vi­a­da ao Tripo Studio, no modelo H3.1: ses­sen­ta e cinco cré­di­tos. O GLB chegou com 1.915.732 tri­ân­gu­los e 64,8 me­gaby­tes; passou por um oti­mi­za­dor e entrou no jogo com 273.548 tri­ân­gu­los e 13 me­gaby­tes, no lugar de uma cons­tru­ção pro­ce­du­ral à di­rei­ta da praça. O ori­gi­nal pesado ficou fora do Git. Nesse mesmo dia Renato Leal in­te­grou o pau-brasil e es­cre­veu o guia de imagem para modelo 3D, que nasceu de um erro ins­tru­ti­vo: a pri­mei­ra re­fe­rên­cia tinha fundo cinza e sombra de es­tú­dio, e o Tripo in­cor­po­rou partes desse fundo "como um disco sob a árvore e placas atrás da copa". A re­fe­rên­cia com trans­pa­rên­cia real pro­du­ziu uma malha limpa. O guia pede, desde então, fundo re­al­men­te trans­pa­ren­te in­clu­si­ve entre os galhos, vista de três quar­tos, luz suave, e um bri­e­fing es­cri­to ao lado da imagem di­zen­do o que deve e o que não deve exis­tir na malha.

Imagem de referência de uma casa de taipa caiada com telhado de telhas de barro, porta de madeira e janela, em perspectiva de três quartos, sobre fundo transparente.
Uma re­fe­rên­cia como o Tripo gosta. Objeto in­tei­ro, três quar­tos, margem em volta, fundo trans­pa­ren­te de ver­da­de. O ser­vi­ço re­cons­trói o que vê; o que não deve virar malha não pode estar na imagem.

O mapa real vira chão

O fim de semana de 26 e 27 de se­tem­bro foi o pri­mei­ro dos dois pre­vis­tos, e rendeu trinta e três com­mits na sexta. O traço ver­me­lho do Google Earth, ex­por­ta­do em KML, passou a ori­en­tar ruas, rios, áreas e pontos de in­te­res­se em escala ho­ri­zon­tal 1:1; depois, por de­ci­são de jo­ga­bi­li­da­de, a região in­tei­ra passou a "1 uni­da­de = 4 metros", e a ca­mi­nha­da da fa­zen­da à praça caiu de uns 890 metros para uns 220. O ter­re­no, a costa e a mata pas­sa­ram a ser cons­truí­dos a partir dos ve­to­res. As ruas ga­nha­ram tex­tu­ra de terra batida com sulcos de carro de boi; a praça, chão pi­so­te­a­do com seixos, as duas pro­ce­du­rais e re­ge­rá­veis por script.

À tarde, a Build 5 e as de­ci­sões que de­fi­nem o vale até hoje. Dois es­ti­los vi­su­ais, nunca mis­tu­ra­dos: Tripo, com os GLBs do Studio via um ca­tá­lo­go único, e Pro­ce­du­ral, com tudo por código, in­clu­si­ve o per­so­na­gem; a mata e a orla trocam a malha con­for­me o estilo, e ter­re­no, ruas, rios, mar, luz e som são iguais nos dois. Um ciclo de dia e noite com hora, ve­lo­ci­da­de e tecla para adi­an­tar. Luzes de 1887: lam­piões a óleo na praça e no adro, can­de­ei­ros nas portas, fo­guei­ra no ter­rei­ro e velas nas ja­ne­las, acen­den­do ao en­tar­de­cer com tre­me­lu­zir. Som do lugar por pro­xi­mi­da­de: mata de dia e de noite em fusão con­tí­nua, mar no píer, riacho, fo­guei­ra, loops ge­ra­dos no Ele­ven­Labs. Sete mo­ra­do­res com postos por pe­río­do, balão de fala e sau­da­ção em voz, cada um com uma voz da bi­bli­o­te­ca bra­si­lei­ra do Ele­ven­Labs. E Pedro, que acom­pa­nha o jo­ga­dor e narra as mis­sões, praça, capela, casa de pasto, roçado e píer, antes de es­cu­re­cer.

Sessenta e seis peças pelo console

Foi nesse dia que o Tripo deixou de ser uma fer­ra­men­ta de clicar e virou uma linha de pro­du­ção. "Re­to­po­lo­gia e ex­por­ta­ção de de­ze­nas de peças não se faz cli­can­do." O Studio é uma apli­ca­ção web que con­ver­sa com uma API, e um script colado no con­so­le do na­ve­ga­dor, lote_studio.js, passou a re­pe­tir, na mesma sessão logada e com os mesmos ca­be­ça­lhos que a página envia, exa­ta­men­te as cha­ma­das da in­ter­fa­ce: a re­to­po­lo­gia, o an­da­men­to, a ex­por­ta­ção, o link do ar­qui­vo. O estado fica no ar­ma­ze­na­men­to local do na­ve­ga­dor, a aba pre­ci­sa ficar vi­sí­vel porque o Chrome segura down­lo­ads de abas es­con­di­das, e o script "não im­pri­me nem guarda token: re­a­pro­vei­ta os ca­be­ça­lhos da pró­pria página".

O lote de 26 de se­tem­bro teve ses­sen­ta e sete re­to­po­lo­gi­as, uma ge­ra­ção e um rig, e custou 2.755 cré­di­tos; o saldo ao fim do dia era de 17.950. Ár­vo­res, cons­tru­ções, ade­re­ços, os nove per­so­na­gens em pose T e os itens de mão do 2D: ma­cha­do, enxada, balde, cesto, mo­rin­ga, fa­ri­nha, peixe, jaca, cacho de banana. Pedro re­ce­beu rig com es­que­le­to Mixamo e sete clipes de ani­ma­ção; no dia se­guin­te, os outros sete mo­ra­do­res re­ce­be­ram o mesmo, e a pose T acabou.

Por que o Tripo não pesa, se usado do jeito certo

A mesma man­guei­ra, medida no jogo em 26 de se­tem­bro, numa GTX 1660 Ti a 1080p:

VersãoTriângulosResultado
Procedural, por código560leve, sem identidade
HD reduzido por script externo144.564folhas serrilhadas; abriu trincas de UV
HD → Malha Smart (10.000 quads)20.453limpa, quase igual ao HD

Fluxo que ficou: Modelo HD (55 cré­di­tos, com a tex­tu­ra 8K des­li­ga­da) → Re­to­po­lo­gia Malha Smart (40 cré­di­tos) → ex­por­tar GLB com tex­tu­ra 1K para ade­re­ços e itens, 2K só para cons­tru­ções de des­ta­que, ár­vo­res no­me­a­das e per­so­na­gens. "Nunca 8K no jogo." Custo por asset pronto: cerca de 95 cré­di­tos. "O gar­ga­lo é a cu­ra­do­ria humana, não o cré­di­to."

Houve também uma lição de me­mó­ria de vídeo. Cada GLB traz três tex­tu­ras, cor, normal e metal-ru­go­si­da­de; com ses­sen­ta e sete mo­de­los im­por­ta­dos sem com­pres­são, a me­mó­ria de vídeo foi a 2,49 gi­gaby­tes. Uma linha no ar­qui­vo do pro­je­to, que manda o im­por­ta­dor com­pri­mir tex­tu­ras novas, e uma reim­por­ta­ção depois: 735 me­gaby­tes, ses­sen­ta qua­dros por se­gun­do, a mesma apa­rên­cia à dis­tân­cia de jogo. A con­sequên­cia ficou do­cu­men­ta­da: tex­tu­ras de in­ter­fa­ce pre­ci­sam ser mar­ca­das à mão como sem perda, porque o padrão novo as com­pri­mi­ria também. Duas se­ma­nas depois, o as­sis­ten­te ainda tro­pe­ça­ria nessa regra ao im­por­tar dois ícones novos, e a ano­ta­ria na pró­pria me­mó­ria.

O mar da carta náutica

Sábado, 27 de se­tem­bro: o fundo do mar passou a seguir a carta náu­ti­ca DHN 1108 da Ma­ri­nha, Baía de Todos os Santos, Porto de São Roque e pro­xi­mi­da­des, na escala de 1:15.000; a carta ori­gi­nal não é re­dis­tri­buí­da, o jogo leva só a grade de pro­fun­di­da­de de­ri­va­da. O jo­ga­dor passou a nadar; a foz do rio apa­re­ceu; as ondas vieram em séries; o chão ganhou som por tipo de piso; o car­re­ga­men­to passou a ser em etapas, sem con­ge­lar. Do­min­go, 28: a Build 6, com a maré que sobe e desce de ver­da­de e um tu­ba­rão que pa­tru­lha a água funda; a igreja do Bom Jesus mo­de­la­da a partir de fotos do lugar real, junto com os co­quei­ros, as cas­ta­nho­las, as pedras da praia e do recife e os barcos sem le­trei­ro; sete es­pé­ci­es da ve­ge­ta­ção local de Sau­ba­ra, man­gue­zal, res­tin­ga e beira de rio; as mú­si­cas por pe­río­do do dia; e a tela de car­re­ga­men­to com a iden­ti­da­de que a aber­tu­ra usaria a partir dali, "Crô­ni­ca do Recôn­ca­vo". Renato, nos mesmos dias, ligava os con­tro­les de mouse e o po­si­ci­o­na­men­to seguro das casas, e re­fi­na­va o ter­re­no, a mata, a costa e o píer, e trazia as tex­tu­ras de es­tra­da ocre.

Captura do jogo 3D ao entardecer: a igreja branca do Bom Jesus com torre sineira e telhado de barro, numa névoa dourada, com casas caiadas ao redor, um ipê amarelo florido em primeiro plano e um mangue à direita.
A igreja do Bom Jesus, ao en­tar­de­cer. Mo­de­la­da no Tripo a partir de fotos da igreja real, em 28 de se­tem­bro. O ipê ama­re­lo e o mangue são es­pé­ci­es do lote da ve­ge­ta­ção local.

Enquanto isso, no 2D

A outra metade da equipe não parou. Entre 24 e 28 de se­tem­bro o 2D re­ce­beu o com­ba­te no mundo, com a vida como conta se­pa­ra­da do fôlego, as cri­a­tu­ras da mata e o golpe de volta; a arte da onça em quatro di­re­ções, a toca e o couro; a trilha da fa­zen­da pela mata, a pin­gue­la, a pas­sa­gem de pau de lei e a onça no penedo; a luta en­si­na­da, com o golpe forte, a ca­po­ei­ra do can­dom­blé e o bote anun­ci­a­do; e a ja­ra­ra­ca no brejo, com a pe­ço­nha e o chá que a corta. A ge­ra­ção dessas ani­ma­ções por texto rendeu um pe­que­no manual de prompt: "A jaguar poun­ces" visto de costas deu uma onça de pé, braços aber­tos; de frente, um tigre. "O que con­ser­tou foi dizer o que não pode: stays on all four legs, never stan­ding upright, round ro­set­tes (not stri­pes)." E a cobra não tem qua­dril: a folha de andar dos outros bichos é mon­ta­da cor­tan­do a pose parada na altura das pernas, o que numa cobra dá uma cobra pu­lan­do; a da ja­ra­ra­ca é de­se­nha­da, seis qua­dros de ras­te­jo por di­re­ção.

Na sexta-feira 26 saiu a ida à fa­zen­da: quando o jo­ga­dor ter­mi­na o que tinha para fazer, o dia cai, Pedro vem buscar e o ar­rai­al in­tei­ro atra­ves­sa o rio. E veio a rodada do play­test, quinze acha­dos de quem jogou, ris­ca­dos ao longo dos dias se­guin­tes: a fala pulada pelo mar­te­lo, o Pedro que atra­ves­sa­va o mapa para ex­pli­car missão ("nin­guém atra­ves­sa o mapa para ex­pli­car missão: o Pedro fala de onde está"), a cena da cha­pa­da dentro da terra do vi­zi­nho, a lapa que não tran­ca­va a rampa, a re­cei­ta que agora se apren­de. Era o 2D cum­prin­do o papel para o qual nas­ce­ra: errar pri­mei­ro, barato, para que o 3D er­ras­se menos.

No do­min­go à noite, com seis builds de tra­ba­lho no 3D e qua­ren­ta e sete por­tões no 2D, o autor tomou a de­ci­são que abre a se­gun­da parte deste livro.

A pontezinha de madeira sobre o riacho, entre coqueiros, ao sol da manhã.
Parte II

A travessia

29 de se­tem­bro a 2 de ou­tu­bro. O autor decide que o 3D vira o jogo com­ple­to. Mede-se, ar­qui­vo a ar­qui­vo, quanto do 2D atra­ves­sa sem re­es­cri­ta; a res­pos­ta é quase tudo. Os sis­te­mas cruzam o rio, cada jogo ganha a sua casa, e o vale passa a montar em cinco se­gun­dos.

Ca­pí­tu­lo cinco · 29 e 30 de se­tem­bro

A grande travessia dos sistemas


Ano­ta­ção de tipo é aco­pla­men­to tão real quanto cha­ma­da de função, e não apa­re­ce em busca ne­nhu­ma por nome.

Re­gis­tro his­tó­ri­co do de­sen­vol­vi­men­to 3D

Três de­ci­sões do autor, re­gis­tra­das em 29 de se­tem­bro, or­de­nam tudo o que veio depois: o 3D vira o jogo com­ple­to, e o 2D passa a ser a re­fe­rên­cia de regras; a mi­gra­ção é a pri­o­ri­da­de, e a jam de 5 de ou­tu­bro entra com o que es­ti­ver de pé; e o que o 3D já tem, fica. A ter­cei­ra é a regra que manda nas outras. "Migrar aqui quer dizer acres­cen­tar, e nunca re­fa­zer o que já está de pé." Asset 3D nunca é tro­ca­do por arte 2D; me­câ­ni­ca que já fun­ci­o­na no 3D con­ti­nua dona do as­sun­to dela; só nasce do zero o que o 3D não tem. "O teste de cada fatia: se ela apaga, re­es­cre­ve ou apo­sen­ta código ou asset que hoje roda no 3D, ela está errada e pre­ci­sa ser re­cor­ta­da de outro jeito."

Antes de mover uma linha, mediu-se. A per­gun­ta era "quanto do 2D dá para apro­vei­tar", e a res­pos­ta, ar­qui­vo a ar­qui­vo, foi "quase tudo, e por um motivo que não foi sorte: o 2D guarda regra em au­to­lo­ad e de­se­nho em cena, e nunca mis­tu­rou os dois". Dos trinta au­to­lo­ads de lógica, vinte e cinco não citam um único tipo 2D: fôlego, vida, pro­gres­são, as duas teias, as três fés, in­ven­tá­rio, cartas, co­le­ção, re­cei­tas, co­zi­nha, ofi­ci­na, obras, venda, afi­ni­da­de, po­vo­a­do, luta, ritos, equi­pa­men­to, jor­na­da, re­ló­gio, áudio, efei­tos, con­tro­les, telas e versão. Cinco mil, tre­zen­tas e vinte linhas de regra que rodam igual num jogo 3D. Dos cinco res­tan­tes, três eram falso po­si­ti­vo, e so­bra­vam dois aco­pla­men­tos es­pa­ci­ais de ver­da­de: o alvo da bús­so­la, uma as­si­na­tu­ra; e os ter­re­nos, duas fun­ções. Dos de­zes­se­te scripts de in­ter­fa­ce, de­zes­seis de­se­nham por cima do jogo sem saber se ele é 2D ou 3D.

A costura

A única peça de ar­qui­te­tu­ra nova que a mi­gra­ção pediu chama-se Lugares. É um con­tra­to de três fun­ções que traduz nome de lugar em po­si­ção, e cada pro­je­to im­ple­men­ta o seu: no 2D, em­bru­lhan­do os trinta e sete aces­so­res que já exis­ti­am (o vau, a ofi­ci­na, o píer); no 3D, lendo as ân­co­ras do cons­tru­tor de mundo (Praça, Igreja, Píer, Roçado, Ce­mi­té­rio). A missão que antes apon­ta­va para uma co­or­de­na­da passa a apon­tar para um nome, e quem re­sol­ve o nome é o mundo em que o jogo está ro­dan­do. "Nin­guém pla­ne­jou essa si­me­tria, e é ela que torna a mi­gra­ção um tra­ba­lho de cos­tu­ra em vez de re­es­cri­ta."

Trocar co­or­de­na­da por texto, porém, troca erro de com­pi­la­ção por erro calado: uma co­or­de­na­da errada não com­pi­la; um nome errado com­pi­la e some a bús­so­la. Por isso o portão do 2D varre o pró­prio código-fonte atrás de todo nome es­cri­to à mão e cobra cada um contra o con­tra­to. E houve um achado ainda mais sutil: a função que re­sol­via o alvo de­cla­ra­va o tipo da po­si­ção como vetor bi­di­men­si­o­nal. A cos­tu­ra de­vol­ve um vetor 2D de um lado e 3D do outro; de­cla­rar o tipo faria ela servir só de um lado, "que é exa­ta­men­te o que ela existe para evitar".

O que a medição errou, e por que importou

A ordem pre­vis­ta para a tra­ves­sia errou três vezes, e as três só apa­re­ce­ram me­din­do. O re­ló­gio, que pa­re­cia o sis­te­ma mais ema­ra­nha­do por ser o único em que os dois jogos se so­bre­pu­nham, era o mais solto de todos: cento e vinte linhas, zero de­pen­dên­ci­as. A fé de­pen­dia do ca­len­dá­rio, e por isso o ca­len­dá­rio tinha de vir antes, e não na pe­núl­ti­ma fase. E o sal­va­men­to, "que pa­re­cia o mais ema­ra­nha­do, atra­ves­sou sem uma linha de adap­ta­ção porque usa get_node_or_null em toda parte e de­gra­da so­zi­nho onde um sis­te­ma não existe". Uma de­pen­dên­cia es­ca­pou de qual­quer busca: o sal­va­men­to ca­rim­ba o save com a versão do jogo, e a ex­pres­são re­gu­lar que lis­ta­va de­pen­dên­ci­as não co­nhe­cia esse nome. O erro apa­re­ceu como um Parse Error no pri­mei­ro teste. O con­ser­to saiu melhor do que a mi­gra­ção teria saído, com o 3D ga­nhan­do a pró­pria versão, lida do his­tó­ri­co de builds dele.

Outra des­co­ber­ta: o que prende um au­to­lo­ad ao 2D quase nunca é o tipo, é a en­tra­da. O in­ven­tá­rio não citava um tipo 2D sequer e mesmo assim não atra­ves­sa­va, porque doze linhas de­pen­di­am das ações de te­cla­do desse pro­je­to; "doze linhas de en­tra­da pren­di­am 174 de regra". A se­pa­ra­ção virou regra: fica no 2D qual tecla aciona e que telas blo­quei­am a tecla; atra­ves­sa o que a ação faz. O ca­tá­lo­go de itens pa­re­cia de­pen­der de quatro sis­te­mas e os citava só em co­men­tá­rio. "Medir de­pen­dên­cia por busca do nome su­pe­res­ti­ma tanto quanto contar tipo su­bes­ti­ma; os dois erros se can­ce­la­ram por acaso, e nenhum dos dois é medida."

Regra co­pi­a­da é regra sem portão.

A ob­je­ção, e a res­pos­ta a ela

A re­co­men­da­ção ini­ci­al era uma pasta com­par­ti­lha­da lida pelos dois pro­je­tos. Não dá, e a razão é do motor: a raiz de re­cur­sos é a raiz de cada pro­je­to. Link sim­bó­li­co no Win­dows traz dois pro­ble­mas piores. Então ficou a cópia con­fe­ri­da: o dono da regra é o 2D, sempre; o 3D tem um es­pe­lho; um script move o es­pe­lho; e um portão com­pa­ra os dois byte a byte e re­pro­va com o nome do ar­qui­vo que di­ver­giu. A ob­je­ção do pró­prio plano foi res­pon­di­da dando-lhe o portão. Em 1º de ou­tu­bro, quatro ar­qui­vos já tinham di­ver­gi­do por uma regra que nasceu no 3D, o ma­cha­do como item de en­cai­xe de mão, e a dívida ficou es­cri­ta, com as duas saídas pos­sí­veis e a de­ci­são dei­xa­da ao autor, en­quan­to o con­ser­to que valia para os dois lados en­tra­va nos dois à mão.

Dois dias, sessenta commits

A tra­ves­sia em si levou dois dias. Em 29 de se­tem­bro, o vale ganhou o outro lado da cos­tu­ra, fôlego, mo­chi­la com trinta es­pa­ços e um ca­tá­lo­go de cin­quen­ta e um itens, as mis­sões do Pedro em dados nos três idi­o­mas, o ca­len­dá­rio, a teia, as três fés e os sete mo­ra­do­res, o sis­te­ma de mis­sões apon­tan­do para lu­ga­res daqui, venda e pesca, e o save de três vagas; e a Fase 2 fechou, com vinte e cinco ar­qui­vos com­par­ti­lha­dos. Pedro Al­mei­da as­si­nou nesses dias a vida no vale, o cai­ti­tu que anun­cia o bote antes de morder, o painel J, a co­le­ção, as obras com ganho no corpo e a fala longa com es­co­lha de sim e não. Em 30 de se­tem­bro vieram a Dona Filó man­dan­do o pirão ao Tonho, o al­ma­na­que como índice e página, os cor­déis e o sinal da Cai­po­ra, o pacto fir­ma­do no lugar do mito, a pesca no mar e no rio, a co­zi­nha no fogo do ter­rei­ro, a tábua ser­ra­da na ban­ca­da do roçado, a mo­chi­la na roda do mouse, e as séries da Dona Zefa e do Tonho in­tei­ras. Renato fez os co­quei­ros caírem com ma­cha­do e gas­ta­rem vigor, e vol­ta­rem em vinte e quatro horas de jogo.

Commits por dia nos dois repositóriosColunas empilhadas: commits do jogo 2D (cobalto) e do jogo 3D (telha) por dia, de 21 de setembro a 8 de outubro de 2026. O pico é 22 de setembro, com 109 commits no 2D; o 3D cresce a partir de 26 de setembro e chega a 59 commits em 6 de outubro.Commits por dia (sem merges)Jogo 2DJogo 3D03060901207521/0910922/0923/0924/0925/0926/0927/0928/0929/0930/0901/1002/1003/1004/104705/105906/1007/1008/10Fonte: git log dos repositórios acentauric/myths-valley e acentauric/myths-valley-3d, em 14/10/2026.

Os dois re­po­si­tó­ri­os, dia a dia. O 2D con­cen­tra a pri­mei­ra semana; o 3D cresce a partir do pri­mei­ro fim de semana e domina a reta final. A tabela gêmea está no Apên­di­ce B.

A fila que virou peça

Uma de­ci­são de de­se­nho merece re­gis­tro, porque é a pri­mei­ra em que o 3D de­li­be­ra­da­men­te não copiou o 2D. O vale ganhou um me­ca­nis­mo pró­prio de missão, o Ca­der­no do Vale, em vez da chec­klist do 2D: "missão nova aqui pode ter padrão, for­ma­to e ordem di­fe­ren­tes do 2D, e o 2D é re­fe­rên­cia, não dono". O que se perdeu de pro­pó­si­to foi a lista de itens; missão do vale tem uma linha de an­da­men­to, es­cri­ta por quem conduz: "Juntar lenha: 1 de 2". A fila virou uma peça reu­ti­li­zá­vel, pen­du­ra­da em cada mo­ra­dor, lendo um ar­qui­vo de dados por dono, com quatro tipos de meta, e cada um nasceu de uma missão do 2D que não ca­be­ria nos an­te­ri­o­res: juntar, da lenha do tu­to­ri­al; der­ru­bar, do capim do Damião; levar, do pirão da Filó e das seis canas da Can­di­nha; falar, do "fale com o Cosme". Seis ca­dei­as atra­ves­sa­ram com portão pró­prio, e um portão geral varre todas elas e cobra que toda missão seja cum­prí­vel: meta que a cadeia sabe medir, ma­te­ri­al que sai de algum lugar, mo­ra­dor pro­cu­ra­do que mora aqui. "Missão nova entra nessa conta so­zi­nha."

E uma ar­ma­di­lha para quem es­cre­ves­se a pró­xi­ma: passo cujo lugar não re­sol­ve pula em si­lên­cio, de pro­pó­si­to, para o vale a meio não travar numa âncora que falta. "A con­sequên­cia é que um erro de di­gi­ta­ção não quebra nada: só apaga o meio da missão, e nin­guém fica sa­ben­do." Acon­te­ceu ao es­cre­ver a rede do Tonho, que apon­ta­va para uma ofi­ci­na au­sen­te, e o portão do Tonho passou a per­gun­tar ao Lugares antes de jogar.

O idioma, e é a mais cara das quatro

O 3D falava três lín­guas no menu, por­tu­guês, inglês e es­pa­nhol, e o vale em si nunca pre­ci­sa­ra tra­du­zir nada. A mi­gra­ção aca­ba­va com essa folga: en­tra­vam 146 qui­loby­tes de fala, missão e enredo, todos em por­tu­guês. O autor de­ci­diu: tudo traduz. "O con­teú­do tri­pli­ca, e cada texto novo passa a nascer três vezes." A forma era a que o pro­je­to já usava, três campos no mesmo objeto; e a regra virou exi­gí­vel: um portão varre os ar­qui­vos de­cla­ra­dos e re­pro­va quando falta uma tra­du­ção, "e também quando a tra­du­ção é cópia do por­tu­guês, que é o jeito mais comum de uma tra­du­ção faltar sem pa­re­cer que falta". O que ainda não foi tra­du­zi­do mora numa lista com a razão es­cri­ta de cada um: dívida re­gis­tra­da, não dívida es­que­ci­da. A pri­mei­ra con­sequên­cia prá­ti­ca foi tirar as mis­sões do Pedro de dentro do código, porque "texto em cons­tan­te de GDS­cript não tem como ser tra­du­zi­do". E a tra­du­ção em si ficou com Ramon, por de­ci­são do autor: "são 58 KB de prosa em re­gis­tro re­gi­o­nal, 'Bora pro píer', 'casa de pasto', 'o pão desta terra', e isso não é tra­ba­lho de tra­du­tor au­to­má­ti­co nem de quem não tem ouvido para o tom".

O plano in­tei­ro virou trinta e duas issues no GitHub, em dois marcos: Jam 04/10, com seis (mis­sões nas ân­co­ras que exis­tem, mo­chi­la, fôlego no HUD, teclas das telas novas, o pri­mei­ro lote Tripo e a tra­du­ção), e Pós-jam, com as vinte e seis res­tan­tes. "A issue é a uni­da­de de tra­ba­lho, e este do­cu­men­to é o porquê dela." A regra do corte da jam era uma frase: nada entra na demo sem portão.

Ca­pí­tu­lo seis · 1 e 2 de ou­tu­bro

Cada jogo na sua casa


O vale monta em cinco se­gun­dos, e não em vinte e nove.

Commit de 2 de ou­tu­bro de 2026

A quarta-feira 1º de ou­tu­bro foi um dia de ar­ru­ma­ção, do tipo que não apa­re­ce no jogo e decide se ele con­ti­nua exis­tin­do. O autor de­ci­diu se­pa­rar o 3D do 2D em re­po­si­tó­ri­os in­de­pen­den­tes. O vale passou a abrir na raiz de acentauric/myths-valley-3d, com um his­tó­ri­co que con­ser­va apenas os com­mits ex­clu­si­vos da linha 3D e os ca­mi­nhos ne­ces­sá­ri­os a ela; os hashes mu­da­ram com o re­cor­te, mas au­to­ria, datas e de­sen­vol­vi­men­to foram pre­ser­va­dos. Mo­de­los GLB, FBX his­tó­ri­cos e áudio WAV pas­sa­ram para o Git LFS. O 2D ficou in­de­pen­den­te, o sin­cro­ni­za­dor entre os dois saiu, e os co­men­tá­ri­os que diziam "o 3D usa este ar­qui­vo" foram apa­ga­dos. A issue que pedia a de­ci­são, aberta de manhã, fechou à noite.

O diário do site re­gis­tra um susto do dia: uma branch per­di­da na se­pa­ra­ção, com o so­bre­voo novo do menu, foi re­cu­pe­ra­da no mesmo dia. E o his­tó­ri­co an­te­ri­or ao re­cor­te, cento e qua­ren­ta e nove com­mits do pri­mei­ro pro­tó­ti­po 3D até a Build 7, ficou guar­da­do só na má­qui­na de Matheus, em bran­ches locais e numa pasta de backup, por de­ci­são ex­plí­ci­ta: "não faça o upload do backup". O as­sis­ten­te anotou a ins­tru­ção na me­mó­ria para não voltar a ofe­re­cer.

Trinta issues em um dia

No mesmo 1º de ou­tu­bro, um le­van­ta­men­to "a partir do plano, dos do­cu­men­tos e das dí­vi­das de­cla­ra­das no código" abriu as issues de 33 a 62 do re­po­si­tó­rio novo. Lidas hoje, elas são o re­tra­to do que fal­ta­va a quatro dias da sub­mis­são. A build Win­dows dis­tri­buí­vel em ZIP, "a pasta in­tei­ra e não só o exe­cu­tá­vel", tes­ta­da por outra pessoa, em outra má­qui­na, sem o editor. O número do build da jam, o his­tó­ri­co no jogo nos três idi­o­mas e uma tag. O pacote de sub­mis­são: gra­va­ção do per­cur­so real, pran­cha de assets, re­gis­tro do pi­pe­li­ne Tripo → Godot, um LEIA-ME curto, a con­fe­rên­cia do re­gu­la­men­to, "e de­cla­rar o que veio da base 2D: não afir­mar ele­gi­bi­li­da­de sem ve­ri­fi­car". O ro­tei­ro da demo e a re­la­ção com o tema: o per­cur­so pla­ne­ja­do em se­tem­bro, se­men­tes, pre­sen­te, mo­ra­dor que lembra, de­pen­dia da plan­ta­ção e da con­ver­sa por IA, que fi­ca­ram fora da jam; o ro­tei­ro pre­ci­sa­va ser re­fei­to com o que o vale já tinha, "e dizer onde o pre­sen­te apa­re­ce". As li­cen­ças de cada asset antes de pu­bli­car. E a issue 62, "Demo Day em São Paulo", com três caixas: de­ci­di­do se a equipe vai; ins­cri­ção feita; build e ma­te­ri­al de apre­sen­ta­ção para o dia.

Vista de cima do vale inteiro no jogo 3D: a mata ocupa a esquerda e o norte, as ruas de terra se ramificam pela vila de casas pequenas ao longo da costa, e à direita a praia clara e o mar verde-água.
O vale visto de cima, pela câmera do mapa. Toda a ge­o­gra­fia nasce do KML de­se­nha­do pelo autor; a mata, as ruas e a costa são cons­truí­das a partir dos ve­to­res a cada carga, e foi essa mon­ta­gem que caiu de vinte e nove para cinco se­gun­dos.

Cinco segundos

A quinta-feira 2 de ou­tu­bro teve só dois com­mits, os dois de Ramon, e um deles é o que dá nome ao diário da­que­le dia. A mon­ta­gem do vale, a sequên­cia de passos que trans­for­ma os ve­to­res em ter­re­no, ruas, mata e vila, caiu de vinte e nove para cinco se­gun­dos "man­ten­do o mundo idên­ti­co bit a bit". A res­sal­va é a parte im­por­tan­te: uma oti­mi­za­ção que mu­das­se a po­si­ção de uma árvore que fosse in­va­li­da­ria os por­tões que medem o so­bre­voo e a na­ve­ga­ção, e a flo­res­ta é plan­ta­da por um ge­ra­dor de nú­me­ros com se­men­te, em que re­jei­tar um can­di­da­to des­lo­ca todas as ár­vo­res se­guin­tes. O outro commit fez o so­bre­voo do menu, a câmera que pas­seia pelo vale atrás do re­tá­bu­lo da aber­tu­ra, con­tor­nar ár­vo­res e casas pelos lados, sem subir, por um tra­je­to gra­va­do num ar­qui­vo de dados, e si­len­ci­ou a tela de car­re­ga­men­to.

Esse so­bre­voo tem uma fer­ra­men­ta pró­pria de pla­ne­ja­men­to, com um ex­tra­tor de ge­o­me­tria em GDS­cript e um pla­ne­ja­dor em Python que pede numpy e scipy, e dois por­tões que re­pro­vam quando o tra­je­to passa a menos de cinco metros de qual­quer coisa. "Mexeu em árvore ou casa perto dele e os por­tões re­pro­va­ram: re­pla­ne­je pelo ro­tei­ro em vez de afrou­xar o portão." Dias depois, na má­qui­na de Matheus, que não tem Python ins­ta­la­do, o as­sis­ten­te re­sol­ve­ria a de­pen­dên­cia bai­xan­do um in­ter­pre­ta­dor por­tá­til para a pasta tem­po­rá­ria da sessão, ins­ta­lan­do as duas bi­bli­o­te­cas e avi­san­do que nada ficou ins­ta­la­do na má­qui­na. Três mi­nu­tos. É um bom exem­plo da fron­tei­ra entre o que uma IA faz so­zi­nha e o que ela deve dizer que fez.

O que o site ainda não contava

Em 1º de ou­tu­bro, en­quan­to os re­po­si­tó­ri­os se se­pa­ra­vam, Ramon re­gis­trou no 2D o único commit dele da­que­le mês ali: as cri­a­tu­ras passam a nascer no pri­mei­ro dia de uma par­ti­da nova, e os testes usam par­ti­das des­car­tá­veis. Era a última ma­nu­ten­ção do la­bo­ra­tó­rio. Da­que­le dia em diante, o 2D parou no tempo como re­fe­rên­cia, com 365 com­mits, 128 scripts, 47 por­tões e 1.783 ima­gens, e todo o es­for­ço foi para o vale.

O se­gun­do fim de semana da jam co­me­ça­va no dia se­guin­te, com um prazo que a página ofi­ci­al do Tri­pothon dava em ho­rá­rio de ilha, o fuso mais tardio do pla­ne­ta, e com uma lista do que ainda fal­ta­va que não cabia em dois dias. O que coube, e como, é a ter­cei­ra parte deste livro.

A vila vista do alto pela manhã: estradas de terra, casas brancas e a orla.
Parte III

O vale vivo

3 a 5 de ou­tu­bro. As pri­mei­ras builds pú­bli­cas, as casas que se entram an­dan­do, a iden­ti­da­de em talha dou­ra­da, ca­tor­ze mil cré­di­tos numa noite, uma in­ves­ti­ga­ção de de­sem­pe­nho de 684 linhas e a sub­mis­são ao Tri­pothon no último dia do prazo.

Ca­pí­tu­lo sete · 3 de ou­tu­bro

O vale abre as portas


Os cô­mo­dos têm que ser em 3D mesmo. O 2D é só re­fe­rên­cia.

O autor, 3 de ou­tu­bro de 2026

Sexta-feira, 3 de ou­tu­bro, foi o dia em que o vale deixou de ser uma pasta no com­pu­ta­dor de quatro pes­so­as. De manhã, Ramon fechou a Build 7, a pri­mei­ra pu­bli­ca­da para down­lo­ad, e à tarde a Build 8, com os cré­di­tos da equipe na tela "Sobre". O jogo passou a se atu­a­li­zar pelo site: ao abrir o menu, o exe­cu­tá­vel per­gun­ta a uma API pela build mais nova, baixa o pacote, con­fe­re o SHA-256 do ma­ni­fes­to, extrai ao lado do exe­cu­tá­vel, guarda o atual como .old e pede para rei­ni­ci­ar; na aber­tu­ra se­guin­te, as sobras somem. "A dis­tri­bui­ção ainda confia no ser­vi­dor HTTPS: o hash vindo do mesmo ser­vi­dor não equi­va­le a uma as­si­na­tu­ra in­de­pen­den­te da pu­bli­ca­ção", avisa o README, no tom de quem pre­fe­re dizer o limite a fingir que ele não existe. No mesmo dia, as par­ti­das salvas e os ar­qui­vos de atu­a­li­za­ção pas­sa­ram a ser va­li­da­dos antes de abrir.

O README re­es­cri­to na­que­la sexta merece uma pausa. Ele apre­sen­ta o jogo, Pedro, o Recôn­ca­vo, e depois faz uma coisa rara em ma­te­ri­al de con­cur­so: de­cla­ra, em inglês, o que exis­tia antes do evento e o que foi feito du­ran­te. "De acordo com o relato de de­sen­vol­vi­men­to do autor, o de­se­nho do jogo, os pro­tó­ti­pos jo­gá­veis e es­sen­ci­al­men­te todos os assets foram de­sen­vol­vi­dos depois do con­vi­te por e-mail do evento, no pe­río­do de de­sen­vol­vi­men­to do Tri­pothon. O ex­pe­ri­men­to 2D co­me­çou no mesmo pe­río­do, e parte da lógica, dos dados e da in­ter­fa­ce foi adap­ta­da dele para o 3D." As datas dos dois his­tó­ri­cos do Git estão lá. O uni­ver­so nar­ra­ti­vo, esse sim, pre­e­xis­tia, e o texto diz isso também.

Trinta e três commits e um princípio

Do lado de Matheus, 3 de ou­tu­bro foi o dia mais pro­du­ti­vo de todo o pro­je­to: trinta e três com­mits, numa branch cha­ma­da "play­test de ou­tu­bro". A tela do ar­rai­al passou a ser de­se­nha­da, com re­tra­tos, co­ra­ções, barra de afi­ni­da­de e pre­sen­tes, e os re­tra­tos pas­sa­ram a ser fotos ti­ra­das do modelo 3D de cada mo­ra­dor, num es­tú­dio de re­tra­to que nasce, fo­to­gra­fa e some. O J virou um diário de mis­sões, com o HUD, a seta e a bús­so­la se­guin­do a missão acom­pa­nha­da. O ma­cha­do subiu para a mão; o re­ló­gio passou a per­gun­tar 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 lu­ga­res; no dia da festa de cada fé, quem é dela vai ao marco maior à tarde.

E a igreja do Bom Jesus abriu por dentro, "o pri­mei­ro cômodo do vale". A pri­mei­ra versão te­le­por­ta­va o jo­ga­dor para um cômodo a qua­tro­cen­tas uni­da­des de dis­tân­cia, com um es­cu­re­ci­men­to no meio. Durou poucas horas. O autor foi claro, "os cô­mo­dos têm que ser em 3D mesmo, o 2D é só re­fe­rên­cia", e, per­gun­ta­do entre duas al­ter­na­ti­vas, es­co­lheu "dentro da cons­tru­ção". A versão que ficou mede a casca do modelo com uma co­li­são tem­po­rá­ria, remove a caixa de co­li­são da cons­tru­ção in­tei­ra, le­van­ta pa­re­des, porta e rampas por dentro, e põe cor­ti­nas de câmera que a mantêm do lado do jo­ga­dor. Entra-se an­dan­do, Pedro entra atrás, o mapa e o save veem a po­si­ção real. A regra virou me­mó­ria do as­sis­ten­te, para que nenhum in­te­ri­or futuro vol­tas­se ao te­le­por­te.

Pela mesma porta en­tra­ram, no mesmo dia, a casa her­da­da, "e a cama vira o dia"; a la­vou­ra com a regra do roçado do 2D; os mo­ra­do­res an­dan­do pela malha de na­ve­ga­ção; o ce­mi­té­rio do Damião, com mato, con­ser­to, cer­ca­do e a ca­pe­li­nha de costas para o mar; as casas do Pedro e da Dona Zefa, cada uma com o in­te­ri­or de quem mora, a rede de pesca e os remos numa, as ervas se­can­do e o pilão na outra; o tronco caído, a ca­pe­li­nha pobre e o mestre Qui­ri­no, che­ga­dos do Tripo num lote de de­zoi­to peças; o sa­vei­ro do mestre, que en­cos­ta no píer uma vez por es­ta­ção; as ár­vo­res que se cortam e voltam em um ano; a canoa sólida na medida do de­se­nho; e a mo­chi­la mos­tran­do o per­so­na­gem em 3D com o que ele veste.

Captura do jogo 3D dentro da igreja: paredes brancas com azulejos azuis, bancos de madeira, o viajante de pé no corredor, a porta aberta para o adro ensolarado onde passam o padre e o sacristão; o HUD mostra 'Você chegou: Igreja · 2/12 pontos explorados'.
A igreja por dentro. O in­te­ri­or foi le­van­ta­do dentro da pró­pria casca do modelo do Tripo, e não num cômodo dis­tan­te. A porta dá para o adro real, e os mo­ra­do­res entram por ela.

Uma xilogravura para cada folheto

Os dez cor­déis do 2D, dez fo­lhe­tos de verso ori­gi­nal es­cri­tos na pri­mei­ra semana, pendem agora num bar­ban­te e abrem num papel em alta re­so­lu­ção com a capa de cada um. As capas vieram da OpenAI, pelo modelo de imagem gpt-image-2, com um ro­tei­ro que pri­mei­ro estima o custo sem gastar e só gera com pedido ex­plí­ci­to, e com as cenas e o estilo num ar­qui­vo de dados ao lado. São xi­lo­gra­vu­ras, no sen­ti­do es­tri­to: preto sobre papel pardo, goiva grossa, a tra­di­ção das capas de cordel do Nor­des­te. É um dos lu­ga­res em que a IA de imagem foi usada não para imitar uma foto, mas para pres­tar ho­me­na­gem a uma téc­ni­ca que o jogo cita.

Quatro capas de cordel em estilo xilogravura, preto sobre papel pardo: um homem adormecido num balcão sob uma balança que derrama moedas; uma moça saindo da água; um santo de pau oco; e um homem que vendeu a chuva.
Quatro das dez capas. O Peso Falso, A Moça da Água, O Santo do Pau Oco e Vendeu a Chuva. Os versos são do 2D; as capas, de 3 de ou­tu­bro, ge­ra­das com gpt-image-2 a partir de um ar­qui­vo de cenas re­vi­sa­do a mão.

Duas PRs e uma branch de migração

No fim do dia havia duas pull re­quests aber­tas, a 73 e a 75, com o play­test de ou­tu­bro e a casa do jo­ga­dor, e uma main que tinha andado por baixo delas com o tra­ba­lho de Ramon e de Renato. A equipe estava com medo de que­brar o jogo jun­tan­do tudo na in­ter­fa­ce do GitHub, e o pedido do autor foi pre­ci­so: criar uma branch local de mi­gra­ção a partir da main remota, juntar nela todas as bran­ches que co­bri­am as PRs, fazer a ba­te­ria in­tei­ra passar ali, con­ser­tar o que re­pro­vas­se, deixar a main local in­to­ca­da e só em­pur­rar quando ele au­to­ri­zas­se.

Foi assim que se des­co­briu quanto um merge es­con­de. O Git só avisa de con­fli­to de texto. Depois de cada junção, o as­sis­ten­te con­fe­riu à mão: os cha­ma­do­res de qual­quer função cuja as­si­na­tu­ra mudou (uma função de botão de canto passou de pixels para índice de coluna, e um cha­ma­dor que só exis­tia numa das bran­ches ficou fora da tela, sem erro nenhum); ramos du­pli­ca­dos num match, que o Git funde em si­lên­cio; chaves re­pe­ti­das nos di­ci­o­ná­ri­os de tra­du­ção, que no GDS­cript são erro de aná­li­se. Na se­gun­da rodada, dois dias depois, a lista cres­ceu: texto e áudio gra­va­do de tu­to­ri­al que en­si­na­vam uma me­câ­ni­ca que o outro lado mudara, com três falas do Pedro re­es­cri­tas e re­ge­ra­das no Ele­ven­Labs; um tipo novo de mo­ra­dor mudo pas­san­do por um ca­mi­nho antigo de con­ver­sa, balão vazio e re­ló­gio preso; um in­ter­va­lo de ve­ri­fi­ca­ção que a taxa de re­ge­ne­ra­ção do outro lado ul­tra­pas­sa­va; coisas postas por co­or­de­na­da caindo dentro de zonas recém-plan­ta­das; uma letra nova fixa no HUD que a tabela de ata­lhos não co­nhe­cia; e uma so­bre­po­si­ção de­se­nha­da numa camada abaixo da do HUD. "Quando um portão fica ver­me­lho depois de um merge, pri­mei­ro per­gun­te se a mé­tri­ca dele ainda vale no mundo jun­ta­do, antes de tocar no jogo."

Decidir pelo jogo

Em 4 de ou­tu­bro, per­gun­ta­do sobre como juntar sua branch com uma main que tinha mu­dan­ças de design con­fli­tan­tes de um colega, o autor res­pon­deu: "faça o que for mais ade­qua­do dentro do enredo e me­câ­ni­ca do jogo". A ins­tru­ção virou regra de tra­ba­lho para o as­sis­ten­te: re­sol­ver con­fli­tos de design a favor do que os do­cu­men­tos do autor e os por­tões co­di­fi­cam na­que­le mo­men­to (lidos de novo, nunca de me­mó­ria), manter o tra­ba­lho do colega que não con­fli­ta, provar pela ba­te­ria que o re­sul­ta­do é melhor do que qual­quer um dos lados, e listar no corpo do commit e no re­la­tó­rio final cada mu­dan­ça so­bre­pos­ta, para que o autor possa levá-la à equipe. "Ainda assim, con­fir­mar antes de passos para fora que o pedido não cobria: juntar na main, co­men­tar nas PRs."

O de­se­nho muda. Em 4 de ou­tu­bro os do­cu­men­tos do autor tinham vigor e fôlego como dois me­di­do­res e a coluna do HUD dentro do menu; em 5 de ou­tu­bro o autor pediu para trazer "tudo que ele fez" da atu­a­li­za­çã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 es­for­ço, e a coluna de ícones de volta no HUD. "Esse é o de­se­nho vi­gen­te; o as­sis­ten­te marcou a re­ver­são no re­la­tó­rio em vez de des­fa­zê-la."

Às onze da noite de 3 de ou­tu­bro, as builds 7 e 8 foram tra­zi­das para a branch do play­test; às duas da manhã se­guin­te, o site do jogo mos­tra­va um vale com down­lo­ad, diário e mo­ra­do­res. Fal­ta­vam dois dias.

Ca­pí­tu­lo oito · 4 de ou­tu­bro

Crônica do Recôncavo


Uma mol­du­ra dou­ra­da, o vale real como fundo e nada de de­co­ra­ti­vo somado ao que já é bonito.

Di­re­ção visual, myths­val­ley.app.br/di­re­cao

Sábado, 4 de ou­tu­bro, foi o dia de Ramon: vinte e cinco com­mits, quase todos na en­tra­da do jogo. A aber­tu­ra passou a per­gun­tar o idioma antes de car­re­gar o vale, com o idioma do sis­te­ma su­ge­ri­do na pri­mei­ra vez e a prévia dos textos mu­dan­do con­for­me o botão sob o mouse. O menu ganhou a mol­du­ra em SVG com­par­ti­lha­da com o site, os fi­le­tes e a talha de acanto da home, pre­ser­va­da em nove fatias para es­ti­car sem de­for­mar os cantos. A versão e o build pas­sa­ram a iden­ti­fi­car a tela de en­tra­da; o his­tó­ri­co virou pá­gi­nas sem ro­la­gem; os mo­ra­do­res e os assets ga­nha­ram fichas em car­tões com prévia 3D que gira. As tri­lhas pas­sa­ram a entrar e sair em fades. O jogo abre em tela cheia, F11 al­ter­na. E o cursor virou es­co­lha: um estudo de cinco pro­pos­tas em SVG numa rodada, outra rodada "com a mão de in­di­ca­dor e setas limpas", e seis con­jun­tos no fim, com nomes de in­ven­tá­rio de sa­cris­tia: Clás­si­co, Ouro polido, Azu­le­jo, Talha com punho, Per­ga­mi­nho, Luz do lam­pião.

Esse con­jun­to tem nome, "Crô­ni­ca do Recôn­ca­vo", e nasceu em 28 de se­tem­bro, quando a iden­ti­da­de visual do 3D foi gerada de uma vez com o modelo de imagem da OpenAI: o lo­go­ti­po em talha dou­ra­da, com um azu­le­jo azul ao centro do filete; as capas pin­ta­das de dia e de noite; a rosa dos ventos; a mol­du­ra de re­tá­bu­lo. As fontes vieram do Google Fonts sob li­cen­ça aberta: Cinzel para tí­tu­los e ações, Cor­mo­rant Ga­ra­mond para o texto. A paleta é a de um re­tá­bu­lo baiano: ouro, creme, co­bal­to, laca, talha e papel. Este livro usa a mesma Cinzel nos tí­tu­los e as mesmas cores, por mo­ti­vos óbvios; no texto cor­ri­do, troca a Cor­mo­rant pela Li­te­ra­ta, feita para a lei­tu­ra longa.

Pintura a óleo da vila à noite, usada como capa do menu: a igreja iluminada por dentro, casas caiadas com janelas acesas, coqueiros contra um céu estrelado, o píer e um saveiro na baía escura.
A capa de noite. Uma das duas pin­tu­ras da iden­ti­da­de, gerada em 28 de se­tem­bro. O menu al­ter­na entre o dia e a noite con­for­me a hora do re­ló­gio do jogo.

A direção, em sete frases

A página de di­re­ção do site resume a es­té­ti­ca do pro­je­to em sete áreas, e cada uma cabe numa frase. Di­re­ção visual: uma mol­du­ra dou­ra­da, o vale real como fundo e nada de de­co­ra­ti­vo somado ao que já é bonito. Arte 3D: os assets com iden­ti­da­de nascem no Tripo Studio, e só a versão leve entra no jogo, nunca o ar­qui­vo bruto em alta de­fi­ni­ção. Di­re­ção de mundo: o KML dá o ter­re­no, o autor compõe o vale em cima, e o mundo muda com a hora e com a maré. Di­re­ção sonora: cada lugar tem a sua camada de som, cada pessoa tem uma voz, e o jo­ga­dor manda no volume. Di­re­ção his­tó­ri­ca e nar­ra­ti­va: Bom Jesus dos Pobres em 1887 é uma vila de pes­ca­do­res às vés­pe­ras da Abo­li­ção, e deve ser re­co­nhe­cí­vel por quem é do Recôn­ca­vo. Di­re­ção téc­ni­ca: regra se­pa­ra­da de apre­sen­ta­ção, lu­ga­res no­me­a­dos em vez de co­or­de­na­das, e nada entra sem portão. De­ci­sões de pro­je­to: con­cluir uma ex­pe­ri­ên­cia pe­que­na de ponta a ponta antes de am­pli­ar, e re­gis­trar cada mu­dan­ça com o im­pac­to no prazo.

Três barras e um corpo

Renato passou o sábado no corpo do jo­ga­dor. O HUD ganhou três barras ali­nha­das, com nomes tra­du­zi­dos: vida, fôlego e vigor. Cor­ri­da, salto e as ações que gastam ener­gia gastam vigor; só o nado em água funda con­so­me fôlego, e, quando ele acaba, con­ti­nu­ar na­dan­do causa dano à vida. O nado parado ficou ni­ve­la­do na água. Matheus, do seu lado, trouxe para a casa do jo­ga­dor a tela cheia e o cursor de Ramon, pôs as vagas de sal­va­men­to em car­tões com lápis e li­xei­ra, deu a cada par­ti­da pontos de res­tau­ra­ção, e vestiu as Mãos com luvas de couro, porque "no campo mãos do in­ven­tá­rio, não é para armas, mas sim para luvas". O ícone das luvas veio do Pi­xel­Lab, no mesmo estilo dos itens do 2D; o modelo, do Tripo.

E a che­ga­da mudou de na­tu­re­za. Em vez de um pas­seio por cinco lu­ga­res, Pedro apre­sen­ta a vila pelo que cada mo­ra­dor pre­ci­sa: a che­ga­da virou "os pe­di­dos do ar­rai­al", e as obras pas­sa­ram a se fazer em mu­ti­rão. É a pri­mei­ra res­pos­ta con­cre­ta ao tema do con­cur­so dentro do jogo, meses antes de qual­quer tela de diá­lo­go com IA: o pre­sen­te não é um item, é o ar­rai­al se re­cons­truin­do com a ajuda de quem chegou.

Captura do jogo 3D na praça pela manhã: casas caiadas de telhado de barro em volta de um largo de terra, um poço de pedra com telhadinho, árvores frutíferas, galinhas e um morador andando, sob um céu claro com nuvens.
A praça, sete da manhã. As casas, o poço, as ár­vo­res e os bichos são do Tripo; o chão em nove ca­ma­das, da OpenAI; o céu e a névoa, do motor. A cap­tu­ra é de 5 de ou­tu­bro, depois do lote de level design.

Narração em trechos, cortada pelo Whisper

À noite, Ramon deu à tra­ves­sia, a aber­tu­ra nar­ra­da em que o jo­ga­dor atra­ves­sa a baía de sa­vei­ro, uma nar­ra­ção pró­pria "em tre­chos e um tema novo". O método vale re­gis­tro, porque junta três IAs em série. O texto da nar­ra­ção vira voz no Ele­ven­Labs, com o nar­ra­dor do pró­prio Ba­ta­lha de Mitos. A gra­va­ção in­tei­ra passa pelo Whis­per, o modelo de trans­cri­ção da OpenAI, que de­vol­ve o ins­tan­te de cada pa­la­vra. E um ro­tei­ro corta o áudio pelos tempos do Whis­per, um trecho por le­gen­da, para que o texto na tela apa­re­ça quando a voz chega nele. Dias depois, a mesma téc­ni­ca seria pedida para sin­cro­ni­zar vídeos do LTX à nar­ra­ção, e para ali­nhar as le­gen­das em inglês, es­pa­nhol e chinês.

Sessões na nuvem, em Linux

Uma par­ti­cu­la­ri­da­de do tra­ba­lho de Ramon apa­re­ce no rodapé dos com­mits dele: de­zes­seis trazem o en­de­re­ço de uma sessão do Claude Code na nuvem, em Linux. Isso teve con­sequên­cia prá­ti­ca. Um ar­qui­vo de con­fi­gu­ra­ção ver­si­o­na­do com um co­man­do do Win­dows que­bra­ria as ses­sões dele; e o runner de testes que ele re­es­cre­veu em 5 de ou­tu­bro, tes­ta­do em Linux, que­brou na má­qui­na de Matheus, com o PowerShell 5.1, por duas razões miúdas: o ca­mi­nho do pro­je­to, que tem um espaço, che­ga­va sem aspas ao motor, e um mar­ca­dor de ordem de bytes en­tra­va nos ca­mi­nhos pas­sa­dos ao Git. O con­ser­to saiu no mesmo dia, e a lição ficou na me­mó­ria do as­sis­ten­te: con­fi­gu­ra­ção de má­qui­na fora do re­po­si­tó­rio, com o co­man­do de cada sis­te­ma do­cu­men­ta­do; e "quando a fer­ra­men­ta dele chegar, rode aqui antes de con­fi­ar num ver­me­lho".

Às onze e meia da noite, as quinze cons­tru­ções do vale vi­ra­ram uma com­po­si­ção edi­tá­vel dentro do editor do Godot, e a branch de mi­gra­ção ab­sor­veu a main pela quarta vez no dia, "às 23h29". A junção foi em­pur­ra­da com au­to­ri­za­ção. Fal­ta­va um dia.

Ca­pí­tu­lo nove · 5 de ou­tu­bro

A noite dos catorze mil créditos


O vale nunca chega a 60 FPS nesta má­qui­na, em nenhum lugar e para nenhum lado.

Re­la­tó­rio de de­sem­pe­nho, 5 de ou­tu­bro

O do­min­go da sub­mis­são co­me­çou de ma­dru­ga­da e não acabou. Qua­ren­ta e sete com­mits, vinte e dois de Matheus, vinte e dois de Ramon, três de Renato, numa sequên­cia que o chan­ge­log re­gis­tra hora a hora. Às pri­mei­ras horas, a lista or­de­na­da das mis­sões do 2D virou do­cu­men­to-base da mi­gra­ção, e o editor do Godot ganhou uma ponte: um addon que deixa o as­sis­ten­te ler e editar cenas e scripts com o pro­je­to aberto, au­di­ta­do antes de entrar, só res­pon­den­do no en­de­re­ço local, mudo no jogo ex­por­ta­do e nos por­tões. O runner de Ramon passou a rodar só os por­tões que a mu­dan­ça al­can­ça, e Matheus o fez voltar a rodar no PowerShell 5.1.

Pela manhã, o jogo passou a co­me­çar em cima do sa­vei­ro, com Pedro con­du­zin­do a che­ga­da até a casa. Falar com os mo­ra­do­res virou a tecla E, que Pedro ensina; toda missão cum­pri­da es­cu­re­ce a tela e fes­te­ja. As fren­tes do 2D que não pediam lugar novo che­ga­ram de uma vez: armas, ofício, ca­po­ei­ra, a meta dos cai­ti­tus, a ca­der­ne­ta, a pri­mei­ra re­fei­ção. E as que pediam lugar che­ga­ram com o lugar: a ponte do rio grande, cer­ca­da até a obra, com o so­cor­ro do mun­gun­zá para quem esgota o fôlego no meio dela; o can­tei­ro de obras no roçado; a cha­pa­da do Seu Be­ne­di­to, de frente para o rio grande; a lapa e a cabra, com a rampa tran­ca­da; e a jor­na­da da fa­zen­da, com o portão baixo do ca­pí­tu­lo 6 e o dia em que Pedro vem buscar.

Cento e vinte e cinco gerações

O commit de Ramon das duas da tarde tem um as­sun­to que é um in­ven­tá­rio: "Chegam do Tripo os mo­ra­do­res, os bichos, os peixes, as casas e a flora da noite, e da OpenAI as tex­tu­ras do chão". A noite an­te­ri­or tinha sido a maior pro­du­ção de assets do pro­je­to, feita por uma ponte: o Play­wright MCP, uma fer­ra­men­ta de au­to­ma­ção de na­ve­ga­dor, co­nec­ta­do ao Chrome de ver­da­de pela ex­ten­são ofi­ci­al, com o usuá­rio es­co­lhen­do a aba e apro­van­do a co­ne­xão. Por essa ponte, um se­gun­do script, lote_producao.js, levou cada item de uma lista, chave, prompt, po­lí­go­nos, tex­tu­ra, pose T, rig, pelo ca­mi­nho in­tei­ro: ge­ra­ção em alta de­fi­ni­ção, re­to­po­lo­gia, rig quando pedido, ani­ma­ções pron­tas uma de cada vez, ex­por­ta­ção. O estado ficava no ar­ma­ze­na­men­to do na­ve­ga­dor; rodar de novo con­ti­nu­a­va de onde parou.

O ex­tra­to da car­tei­ra do Studio re­gis­tra o re­sul­ta­do: cento e vinte e cinco ge­ra­ções, cento e cin­quen­ta e oito re­to­po­lo­gi­as e qua­ren­ta e dois rigs, 14.035 cré­di­tos. Ca­tor­ze mo­ra­do­res novos, do vi­gá­rio ao sa­vei­ris­ta, em pose T, com rig e ani­ma­ções. Trinta e um bichos, do bode ao urubu, os qua­drú­pe­des com o rig do Studio e o andar pronto, as aves pa­ra­das ani­ma­das pelo jogo. De­zes­se­te peixes, raias e o tu­ba­rão, que nadam por shader. Vinte e cinco es­pé­ci­es de plan­tas de pai­sa­gis­mo e de mata atlân­ti­ca, mais a ga­me­lei­ra. Doze casas novas e a casa de fa­ri­nha. De­zes­seis ade­re­ços de quin­tal, roça e tra­ba­lho, do ga­li­nhei­ro ao carro de boi. Nove ob­je­tos de ofício e itens de mão. E, por re­to­po­lo­gia sobre o pro­je­to ori­gi­nal de cada árvore, trinta e duas ver­sões leves e de longe, com a mesma forma e a mesma tex­tu­ra, para o nível de de­ta­lhe.

O que a noite ensinou sobre o Tripo Studio

As tex­tu­ras do chão vieram da OpenAI no mesmo dia: nove ca­ma­das, grama baixa, capim seco, fo­lhi­ço de mata, terra batida var­ri­da, barro ver­me­lho, pe­dris­co, areia de res­tin­ga, lama de mangue e terra arada, con­tí­nu­as, com a altura no canal alfa, mis­tu­ra­das por um shader con­for­me o solo. O vale, nas pa­la­vras do commit se­guin­te, "fica vivo: céu e chão de ver­da­de, mata e quin­tais plan­ta­dos, mo­ra­do­res com jor­na­da, bichos, car­du­mes e a câmera sem salto".

Cinco quadros por segundo

Foi nesse vale vivo que o de­sem­pe­nho de­sa­bou. Entre a ma­dru­ga­da e a tarde, en­quan­to os lotes en­tra­vam, Matheus pediu ao as­sis­ten­te uma in­ves­ti­ga­ção, com uma regra: medir tudo, não mudar nada. O re­la­tó­rio tem 684 linhas e abre com um ve­re­di­to em uma página. Numa GTX 1660 Ti de no­te­bo­ok, em tela cheia 1080p, no estilo Tripo, em 128 vistas do vale, 16 lu­ga­res por 8 rumos de câmera, o jogo fazia no mínimo 5,3 qua­dros por se­gun­do, na me­di­a­na 13,4 e no máximo 30,1. Em 127 das 128 vistas, menos de trinta. Entre 1,9 e 8,9 mi­lhões de tri­ân­gu­los por quadro. Car­re­ga­men­to do idioma até poder andar: cerca de 95 a 99 se­gun­dos, com um con­ge­la­men­to de 19 a 20 se­gun­dos num único quadro, duas vezes.

As causas, me­di­das uma a uma por testes A/B que li­ga­vam e des­li­ga­vam uma coisa de cada vez: tri­ân­gu­los demais, quase todos de ve­ge­ta­ção, 17.601 ins­tân­ci­as e 46,7 mi­lhões de tri­ân­gu­los no nível mais de­ta­lha­do, com o tempo de GPU se­guin­do os tri­ân­gu­los quase em linha reta, dez mi­lis­se­gun­dos por milhão; todo modelo do Tripo de­se­nha­do dos dois lados, porque os GLBs chegam com faces duplas; a sombra do sol re­de­se­nhan­do 3,7 mi­lhões de tri­ân­gu­los por quadro; e, na praça e na casa da es­tra­da, uma es­pi­ral de física: com o quadro lento, o motor roda até oito passos de física por quadro para al­can­çar o re­ló­gio, cada passo custa mais de de­zes­seis mi­lis­se­gun­dos, e o jogo afunda a cinco qua­dros com a placa fol­ga­da. O mi­ni­ma­pa de­se­nha­va o mundo 3D de novo a cada quadro. O vale era mon­ta­do duas vezes, uma atrás do menu, outra no JOGAR. E um de­fei­to de cache re­fa­zia uma grade vinte e três mil vezes, con­ge­lan­do a tela de­ze­no­ve se­gun­dos por mon­ta­gem; a cor­re­çã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 no­te­bo­ok estava presa num estado de ener­gia baixo, a 17 watts de 60, com os li­mi­ta­do­res de po­tên­cia ativos desde que a má­qui­na ligara. "Isso não é causa do jogo, mas mul­ti­pli­ca todas as outras e vale cinco mi­nu­tos de con­fe­rên­cia antes de qual­quer de­ci­são."

Quadros por segundo antes e depois da Build 9Halteres por vista: a pior vista sobe de 5,3 para 18 quadros por segundo; a mediana de 12,9 para 28,9; a melhor de 30,1 para 42,8. Medido em 80 vistas do vale, GTX 1660 Ti Max-Q, 1080p, 05/10/2026.Quadros por segundo, antes e depois da Build 9antes (manhã de 05/10)Build 9 (noite de 05/10)01020304050Pior vista5,318Vista mediana12,928,9Melhor vista30,142,8Fonte: docs/projeto/DESEMPENHO_05_10_2026.md (80 vistas, 10 lugares × 8 rumos, tela cheia 1080p).

As três vistas de re­fe­rên­cia, antes e depois do pacote de cor­re­ções da Build 9. A tabela gêmea está no Apên­di­ce B.

As de­ci­sões saíram da tabela "O que de­ci­dir hoje". Cor­ri­gir o cache da costa. Cortar a es­pi­ral de física com um teto de três passos por quadro. Mi­ni­ma­pa a poucas atu­a­li­za­ções por se­gun­do. Des­car­tar faces de trás nos mo­de­los do Tripo, com con­fe­rên­cia visual nas peças finas, varal, vela, cerca, folha de pal­mei­ra. En­cur­tar o al­can­ce da ve­ge­ta­ção pela metade, com cla­rei­ras de árvore-des­ta­que. Trocar o MSAA por FXAA. Sombra em duas cas­ca­tas, mais curta. Se­gu­rar a tela de car­re­ga­men­to até o vale ter­mi­nar de ver­da­de. E não montar o vale uma vez só, "não hoje, risco médio, meio dia de tra­ba­lho, pri­mei­ra obra depois da en­tre­ga". Com a placa ainda li­mi­ta­da, a Build 9 mediu 18,0 qua­dros na pior vista, 28,9 na me­di­a­na e 42,8 na melhor; a mon­ta­gem caiu de 48 para 29 se­gun­dos; a etapa que con­ge­la­va caiu de 19,6 para 1,9 se­gun­dos.

Duas capturas lado a lado da mesma vista do mirante sobre o vale: à esquerda, antes das correções, a mata densa até o horizonte; à direita, com o pacote de desempenho, a mesma composição com a mata de longe mais rala e quase a mesma aparência.
A mesma vista do mi­ran­te, antes e depois. As fotos do re­la­tó­rio foram ti­ra­das com cada ajuste apli­ca­do só na me­mó­ria do pro­ces­so de me­di­ção, para que a de­ci­são fosse visual antes de ser código.

O lobby em vídeo

Para a build do con­cur­so, uma de­ci­são ra­di­cal no menu: em vez de montar o vale in­tei­ro só para o so­bre­voo de fundo, a aber­tu­ra passou a mos­trar um vídeo. Ramon gerou no LTX, um ser­vi­ço de vídeo por IA, oito clipes de oito se­gun­dos a partir das pin­tu­ras do pró­prio pro­je­to, três para o so­bre­voo em laço da tela de car­re­ga­men­to e cinco para uma ci­ne­má­ti­ca de aber­tu­ra, por cerca de onze dó­la­res. O so­bre­voo pin­ta­do, 21 se­gun­dos em laço sem emenda, virou o fundo do menu na edição Tri­pothon; a ci­ne­má­ti­ca ficou no site. A carga do menu caiu de 28 se­gun­dos para cerca de 3. O preset de ex­por­ta­ção "Win­dows Tri­pothon" ganhou uma fe­a­tu­re que des­li­ga a atu­a­li­za­ção au­to­má­ti­ca, com a linha do rodapé di­zen­do "Edição Tri­pothon · atu­a­li­za­ção de­sa­ti­va­da" nos três idi­o­mas, e um portão que finge a fe­a­tu­re para testar.

Nove, nove B e as dez correções

A Build 9 foi ex­por­ta­da, ca­rim­ba­da "Edição Tri­pothon" e pu­bli­ca­da no site como um ZIP de 1.085.272.196 bytes, com o SHA-256 re­gis­tra­do no re­la­tó­rio. Às oito da noite, Ramon fechou uma va­ri­an­te, a 9B, com o lobby em vídeo sempre ligado e o rótulo "Build #9B". Às nove e vinte e um, che­ga­ram à main as dez cor­re­ções do play­test de Matheus, o ma­cha­do da ponte, o foco do E, o re­ló­gio na con­ver­sa, a festa suave, os avisos, junto com a junção das duas linhas de tra­ba­lho. Che­ga­ram vinte e um mi­nu­tos depois do corte da 9B.

Quadro do vídeo de sobrevoo gerado no LTX: pintura da vila de Bom Jesus dos Pobres vista do mar ao amanhecer, com a igreja, o píer, um saveiro e coqueiros, em pinceladas visíveis.
Um quadro do so­bre­voo pin­ta­do. Da cap­tu­ra à pin­tu­ra, e da pin­tu­ra ao vídeo: três fer­ra­men­tas em cadeia, com o jogo como origem de tudo.

Às dez da noite, numa trans­mis­são ao vivo com a equipe tes­tan­do a build, Ramon de­ci­diu enviar a 9B como estava. A de­ci­são está re­gis­tra­da, e o as­sis­ten­te a guar­dou na me­mó­ria com a con­sequên­cia: "vários 'bugs' vistos na live já es­ta­vam cor­ri­gi­dos na main; di­ag­nos­ti­cá-los na 9B des­per­di­ça tra­ba­lho". Na mesma live, Matheus apon­tou como crí­ti­co que o vigor re­ge­ne­ra­va sem teto, vinte por se­gun­do parado, o que es­va­zi­a­va a comida e os ta­len­tos de re­sis­tên­cia; Renato disse que a in­ten­ção era re­ge­ne­ra­ção pas­si­va até a metade; Ramon de­ci­diu que não en­tra­ria na sub­mis­são. A dis­cus­são virou a issue 45, e a re­ser­va do dia vol­ta­ria no dia se­guin­te como conta pró­pria.

O pacote en­vi­a­do tinha o que o re­gu­la­men­to pedia: a demo jo­gá­vel para Win­dows, a Build 9 e a 9B tra­va­da para o con­cur­so; a gra­va­ção do per­cur­so, com o so­bre­voo e a ca­mi­nha­da gra­va­dos do pró­prio jogo e um teaser con­cei­tu­al de trinta se­gun­dos com le­gen­das em quatro lín­guas; a pran­cha visual de assets, com cap­tu­ras, as pin­tu­ras, os re­tra­tos de 24 per­so­na­gens e os 261 mo­de­los do Tripo; e o diário pú­bli­co de cons­tru­ção, um post por dia de tra­ba­lho, de 21 de se­tem­bro a 5 de ou­tu­bro. O prazo era meia-noite no fuso de Anywhe­re on Earth. A sub­mis­são foi feita.

A praça à noite: o poço, os bancos e as lamparinas acesas sob a lua.
Parte IV

Depois do envio

6 a 11 de ou­tu­bro. A noite das cor­re­ções do play­test, um tes­ta­dor que joga so­zi­nho com dez cen­ta­vos de or­ça­men­to, 1.293 falas numa pla­ni­lha, e um do­min­go em São Paulo.

Ca­pí­tu­lo dez · 6 a 10 de ou­tu­bro

A noite da 9B


A IA só entra quando o al­go­rit­mo trava.

Página do tes­ta­dor au­to­má­ti­co, myths­val­ley.app.br

A sub­mis­são não parou nada. Se­gun­da-feira, 6 de ou­tu­bro, foi o dia com mais com­mits do re­po­si­tó­rio 3D: cin­quen­ta e nove, trinta e nove de Matheus e vinte de Ramon, com o Demo Day mar­ca­do para dali a cinco dias. Os acha­dos da trans­mis­são da vés­pe­ra vi­ra­ram as issues de 80 a 98 antes do café: a re­ser­va do dia que volta ao corpo, "a comida e os ta­len­tos voltam a valer"; o rio grande que deixa de dar pas­sa­gem fora da ponte; o alto da tela que diz a tarefa e não o texto in­tei­ro; a fo­guei­ra que volta ao modelo certo e apaga de dia; o som de cada golpe em pedra e ga­lha­da; as pla­qui­nhas de nome e os balões só de perto, um balão por vez; o Pedro que vem junto quando o jo­ga­dor apaga no tu­to­ri­al; os quinze mo­ra­do­res novos en­tran­do na teia social com fé, gosto e as­sun­tos; toda cerca do vale dei­tan­do na en­cos­ta com as duas pontas no chão. Vinte e um com­mits numa branch de cor­re­ções, em­pur­ra­dos para a main com au­to­ri­za­ção, e um a mais no mesmo dia: a ponte do rio grande caída de ver­da­de, com um modelo pró­prio gerado pela ponte do Play­wright, 190 cré­di­tos apro­va­dos, e a obra que a põe de pé tro­can­do um modelo pelo outro.

Ramon tra­ba­lhou a outra metade: toda casa do vale abrin­do por dentro, mo­bi­li­a­da para quem mora, e o ca­sa­rão da fa­zen­da que se sobe por uma es­ca­da­ria de pedra até um salão; a maré ligada, su­bin­do e des­cen­do de ver­da­de, com o tu­ba­rão su­min­do na baixa e o re­ló­gio di­zen­do se a água enche ou vaza; cada pe­río­do do dia com a sua trilha, duas mú­si­cas novas do Ele­ven­Labs para o en­tar­de­cer e a ma­dru­ga­da; o clique que con­tor­na as casas; só três placas de nome por vez; e, no fundo da mata, um vulto que fecha o jogo se o jo­ga­dor lhe dá as costas, e as pe­ga­das do Cu­ru­pi­ra que en­lou­que­cem o mapa e a seta da missão por um minuto. Fol­clo­re como me­câ­ni­ca, não como en­fei­te.

Vinte e três vozes

Os ca­tor­ze mo­ra­do­res que só ace­na­vam pas­sa­ram a falar nesse dia, nos quatro idi­o­mas do menu, e o padre, o sa­cris­tão, a beata, o mer­ca­dor, o guarda e o Pedro ga­nha­ram voz gerada em por­tu­guês; à noite, os nove que fal­ta­vam. O autor au­to­ri­zou gastar cré­di­to do Ele­ven­Labs para as vozes, só em por­tu­guês, e cada um re­ce­beu a sua: o padre com Borges, a beata com Ka­tius­cia, a ma­ris­quei­ra com Ana Dias, a la­va­dei­ra com Ana Alice, da bi­bli­o­te­ca bra­si­lei­ra; o sa­cris­tão, o mer­ca­dor, o guarda, o pes­ca­dor, a ren­dei­ra, a qui­tu­tei­ra, o car­pin­tei­ro, o menino, a menina e o mestre do sa­vei­ro com vozes pron­tas do ser­vi­ço; o Pedro seguiu com We­ver­ton. "O teto de cré­di­to da chave de API acabou no meio do lote": o que fal­ta­va gerar ficou de­cla­ra­do num campo voz pen­den­te do ar­qui­vo de dados, co­bra­do por um portão, para que nin­guém es­que­ces­se de voltar. É a versão sonora da regra do cofre: dívida re­gis­tra­da, não dívida es­que­ci­da.

O cui­da­do com a con­ven­ção dos nomes merece nota. O ro­tei­ro de ge­ra­ção lê a lista de falas de cada mo­ra­dor e só gera ar­qui­vo para fala que tenha nome de áudio pre­en­chi­do; "o nome do ar­qui­vo é de­ci­são do ar­qui­vo de dados, e este script nunca gasta cré­di­to com fala sem nome". O campo de lei­tu­ra em voz alta, se­pa­ra­do do texto do balão, aceita mar­ca­ções de in­ter­pre­ta­ção entre col­che­tes, um sus­sur­ro, uma risada. Cada ar­qui­vo é nor­ma­li­za­do em volume, para que a beata e o guarda soem na mesma sala. E só o por­tu­guês tem voz: o texto em inglês, es­pa­nhol e chinês apa­re­ce no balão en­quan­to a voz segue em por­tu­guês, de­ci­são de custo que o site de­cla­ra.

Um testador que joga sozinho

Na terça-feira, 7 de ou­tu­bro, Ramon abriu qua­ren­ta e sete issues em um dia, de 118 a 164, e a pri­mei­ra delas apre­sen­ta um per­so­na­gem novo: Jev. "Per­mi­tir ob­ser­var o Jev jo­gan­do o pro­tó­ti­po 3D com con­tro­les reais e enviar cor­re­ções du­ran­te a sessão, re­gis­tran­do-as como issues para re­sol­ver depois." Jev é um tes­ta­dor au­to­má­ti­co: abre o jogo num perfil iso­la­do, lê o estado em texto, e joga com as teclas nor­mais de andar, correr, falar e in­te­ra­gir, "sem te­le­por­te nem avanço ar­ti­fi­ci­al de mis­sões", com um or­ça­men­to de dez cen­ta­vos de dólar por sessão e sem corte de tempo. In­ter­rom­pe por falta de pro­gres­so, erro ou F8, e re­gis­tra de­ci­sões, re­sul­ta­dos e custo. A issue é ho­nes­ta sobre o estado: "ex­pe­ri­men­tos reais an­te­ri­o­res che­ga­ram à etapa 5/16 da missão do Pedro; a cam­pa­nha ainda não foi con­cluí­da pelo Jev".

Grade com dez retratos de moradores do vale, renderizados dos modelos 3D: Pedro de chapéu de palha, Dona Zefa, Seu Benedito, Tonho, Dona Filó, Dona Candinha, Damião, Cosme, o mestre Quirino e o viajante.
Dez dos vinte e quatro per­so­na­gens. Os re­tra­tos são fo­to­gra­fi­as dos mo­de­los do Tripo, ti­ra­das por um es­tú­dio dentro do jogo; o site e a tela do ar­rai­al usam as mesmas ima­gens.

No mesmo dia, o botão "Teste au­to­má­ti­co" entrou no menu, ao lado de Ex­plo­rar, com um ex­plo­ra­dor de­ter­mi­nís­ti­co que não usa API paga: um robô local que es­co­lhe as ações pelas regras do jogo, "as mesmas ob­ser­va­ções dão a mesma es­co­lha". A escada de de­ci­são, de­se­nha­da na issue 183 e im­ple­men­ta­da em se­gui­da, tem três de­graus: o de­ter­mi­nís­ti­co joga so­zi­nho; quando trava, sem pro­gres­so por tantas ações, em laço ou com alvo inal­can­çá­vel, a sessão escala para o Jev, que recebe o estado e as úl­ti­mas vinte e quatro ações, sem ima­gens; se o Jev não des­tra­var, escala para o GPT, com chave fora do jogo, dos ar­gu­men­tos, dos re­la­tó­ri­os e do Git. Depois de des­tra­var, volta ao de­ter­mi­nís­ti­co. "A meta é con­cluir toda a his­tó­ria im­ple­men­ta­da, gas­tan­do IA só onde o al­go­rit­mo não re­sol­ve."

A sessão V21, de 7 de ou­tu­bro, está pu­bli­ca­da no site: 110 de­ci­sões em 483,4 se­gun­dos de tempo real, custo es­ti­ma­do de zero dólar contra um or­ça­men­to de dez cen­ta­vos, ne­nhu­ma cha­ma­da de IA ne­ces­sá­ria, e de­zes­se­te blo­quei­os re­gis­tra­dos em que o tes­ta­dor não con­se­guiu chegar perto de Pedro, cada um com ins­tan­te e motivo. Cada sessão deixa um re­la­tó­rio, um re­gis­tro de even­tos, um resumo e cap­tu­ras pe­rió­di­cas. O site faz ques­tão de dizer o que isso não é: "uma sessão limpa não aprova o jogo; ela com­ple­men­ta os testes au­to­ma­ti­za­dos e o play­test humano, não os subs­ti­tui".

O playtest de 7 de outubro, em seis fatias

Os com­mits de Matheus desse dia saem de um play­test humano e são nu­me­ra­dos 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 in­tei­ra, com o nome dela; a ponte abre so­zi­nha ao fim do tu­to­ri­al; a che­ga­da ganha pista, areia e marcos. O Tonho só volta à rotina sem nin­guém olhan­do. A caixa de fala, a mo­chi­la e o cartão do ama­nhe­cer passam a ser de­se­nha­dos na tela do vale, em 1280 por 720, porque o jo­ga­dor achou tudo "muito ser­ri­lha­do": as telas vinham do 2D em 640 por 360 e eram es­ca­la­das, e o motor ras­te­ri­za as letras no ta­ma­nho da fonte, não no da camada. A ponte grande volta à vila, e as cercas das roças viram cercas de ver­da­de, retas de canto a canto, em pé, com corpo que o pulo não passa. A fo­guei­ra pede lenha a cada três pratos; qua­ren­ta pedras soltas es­pa­lham-se pelo vale, e as pedras gran­des viram alvo de dias, com pi­ca­re­ta de aço e ta­len­to. E o Pedro narra, na voz dele, o ar­re­ma­te da che­ga­da depois do con­vi­te lido.

Catorze favores, quatro arcos, nove pontes

Ainda em 7 de ou­tu­bro, o autor pediu mis­sões se­cun­dá­ri­as para os ca­tor­ze mo­ra­do­res que nas­ce­ram no 3D e não exis­tem no 2D. O plano foi es­cri­to e as fases 0 a 3 im­ple­men­ta­das no mesmo dia, em três com­mits: ca­tor­ze fa­vo­res de um passo, um por mo­ra­dor, tran­ca­dos pela afi­ni­da­de e pen­du­ra­dos por tabela; quatro arcos de enredo, a toalha do tio, a pedra atrás do altar, a ma­dei­ra com letra e a luz na água; e nove pontes entre mo­ra­do­res e mis­sões de ação, com a hora no passo de vi­si­tar. A ma­té­ria-prima já exis­tia: "cada um deles já tinha gan­chos es­cri­tos no ar­qui­vo de diá­lo­gos, as­sun­tos que o 3D nunca mos­trou; as mis­sões citam essas linhas". No fim do dia, o vale con­ta­va 52 ar­qui­vos de missão e 154 passos, e as cenas do vale pas­sa­ram a ser con­du­zi­das por dados: "a engine conduz, a câmera mostra, o jo­ga­dor as­sis­te".

Mil duzentas e noventa e três falas

Quarta-feira, 8 de ou­tu­bro, teve um pedido de outra na­tu­re­za: "um do­cu­men­to es­tru­tu­ran­do todas as falas dos per­so­na­gens, de diá­lo­go e de missão, para va­li­dar e de re­fe­rên­cia para a ge­ra­ção de áudio; depois, ana­li­se a linha do tempo de cada fala contra a his­tó­ria e a me­câ­ni­ca". O ge­ra­dor lê as falas de onde o jogo as lê, os mo­ra­do­res, os 52 ar­qui­vos de missão, os blocos de cena, a tra­ves­sia, as bron­cas, os marcos, e es­cre­ve uma pla­ni­lha sem de­pen­dên­cia ex­ter­na: 1.293 falas em 40 co­lu­nas, em nove grupos, da iden­ti­fi­ca­ção à va­li­da­ção. Seis­cen­tas e ses­sen­ta e uma tocam no 3D; 632 são her­da­das do 2D e mar­ca­das como "não toca", para que nin­guém gere voz para elas. Du­zen­tas e vinte e nove têm voz gra­va­da. Tre­zen­tas e vinte e duas são fa­la­das e ainda sem áudio: 57 mil letras, perto de 68 mi­nu­tos; só o Pedro tem vinte mil letras a gravar.

A re­vi­são, lida na ordem da his­tó­ria contra os ca­pí­tu­los 6 e 7 e contra os dados do jogo, re­cei­tas, alvos, ho­rá­ri­os e teclas, apon­tou 87 falas. Oito de pri­o­ri­da­de alta en­si­na­vam errado ou que­bra­vam a his­tó­ria: a pedra do poço man­da­va a um lajedo que pede pi­ca­re­ta de aço; o cer­ca­do do ce­mi­té­rio não dizia que corda é lenha; a dívida do Tonho zerava sem pa­ga­men­to e era paga duas vezes; o Cosme em­bar­ca­va num sa­vei­ro de amanhã e não saía do vale. O autor pediu "todas as cor­re­ções, tanto na tabela quanto no jogo", com aviso quando uma fala ti­ves­se áudio. Foram cinco levas no jogo, cada uma com os por­tões dela: 83 cor­ri­gi­das, 3 man­ti­das, 1 com o autor. Vinte e duas gra­va­ções fi­ca­ram com o texto antigo, "a ge­ra­ção é paga e não foi feita; até lá, a voz antiga toca com o texto novo", lis­ta­das numa aba pró­pria. E as de­ci­sões to­ma­das como su­po­si­ção, o Cosme fica, o vale não tem terras à venda, a conta do Tonho se paga em réis, fi­ca­ram num README à espera do autor.

Havia também, nesse dia, o "!" dou­ra­do sobre a cabeça de quem tem missão por abrir e a tela de aceite, porque o jo­ga­dor tinha dito que "con­ti­nuo sem mis­sões depois da in­tro­du­ção à vila; pre­ci­so falar com o NPC para des­tra­var, mas isso não é óbvio; pre­ci­sa seguir boas prá­ti­cas de jogos de RPG". Entre quinta e sexta, Ramon abriu mais oi­ten­ta issues, do ícone do exe­cu­tá­vel, que ainda era o do Godot, ao atu­a­li­za­dor que re­cu­sa­va builds acima de 768 me­gaby­tes, até a de pri­o­ri­da­de máxima sobre os testes, que o ca­pí­tu­lo 14 dis­cu­te. A Build 10 saiu nesses dias; o site, hoje, en­tre­ga a 11.

Ca­pí­tu­lo onze · 11 de ou­tu­bro

São Paulo


You make a world as a gift — for a person, a place, or a future that does not exist yet.

Página ofi­ci­al do Tri­pothon S1

O Demo Day de São Paulo acon­te­ceu num do­min­go, 11 de ou­tu­bro, das onze da manhã às seis da tarde, em Alto de Pi­nhei­ros. A página do evento pro­me­tia apre­sen­ta­ções ao vivo dos pro­je­tos se­le­ci­o­na­dos, uma ofi­ci­na prá­ti­ca em que todo mundo ex­pe­ri­men­ta o Tripo, "traga um no­te­bo­ok", e a pre­mi­a­ção da etapa. Foi a ter­cei­ra das sete ci­da­des: São Fran­cis­co tinha sido no dia 8, Tóquio no dia 9; Seul, Paris, Xangai e Bar­ce­lo­na viriam na semana se­guin­te. O con­cur­so in­tei­ro, na con­ta­gem da or­ga­ni­za­ção, tinha 460 pro­je­tos en­vi­a­dos e mais de três mil par­ti­ci­pan­tes de mais de trinta países.

O re­gu­la­men­to di­vi­dia o prêmio em bolsas. A global, jul­ga­da online: cinco, quatro e três mil dó­la­res para os três pri­mei­ros, e oi­to­cen­tos para o melhor uso de cada fer­ra­men­ta par­cei­ra e o melhor pro­je­to de cada trilha. As re­gi­o­nais pre­sen­ci­ais: para os Es­ta­dos Unidos, cinco mil ao pri­mei­ro; para as outras re­giões, 2.500 ao pri­mei­ro, 1.500 ao se­gun­do, 1.200 ao ter­cei­ro. Os cri­té­ri­os da trilha de jogos pe­sa­vam cri­a­ti­vi­da­de em trinta por cento, com­ple­tu­de em vinte e cinco, ade­rên­cia ao tema em vinte, po­ten­ci­al de vi­ra­li­zar em quinze e valor co­mer­ci­al em dez; os da trilha do Tripo, uso in­ven­ti­vo da fer­ra­men­ta em trinta e cinco, si­ner­gia com outras em vinte e cinco, con­tri­bui­ção da fer­ra­men­ta em vinte. A página lis­ta­va oi­ten­ta e seis ju­ra­dos con­vi­da­dos do mundo in­tei­ro, pro­fes­so­res de uni­ver­si­da­des, di­re­to­res de arte, cri­a­do­res in­de­pen­den­tes, entre eles sete bra­si­lei­ros, de fa­cul­da­des do SENAC em São Paulo e da Uni­ver­si­da­de Fe­de­ral de Goiás.

O resultado

Myths' Valley ficou em pri­mei­ro lugar na etapa bra­si­lei­ra. O site do jogo re­gis­tra a man­che­te, "Tri­pothon S1 · pri­mei­ro lugar no Brasil", e o prêmio, 2.500 dó­la­res, a bolsa máxima das re­gi­o­nais fora dos Es­ta­dos Unidos. O anún­cio dos ven­ce­do­res glo­bais está mar­ca­do para 25 de ou­tu­bro, depois do pe­río­do de júri, e é para lá que o pro­je­to vai agora: a mesma sub­mis­são, jul­ga­da ao lado das de todas as ci­da­des, nos cri­té­ri­os acima.

Um pre­sen­te de re­si­li­ên­cia, an­ces­tra­li­da­de e fol­clo­re afro-bra­si­lei­ro, de um des­cen­den­te nas­ci­do cem anos depois.

A de­di­ca­tó­ria da sub­mis­são

Vale olhar a sub­mis­são com os cri­té­ri­os na mão. Ade­rên­cia ao tema: o jogo é li­te­ral­men­te um pre­sen­te para uma pessoa, com nome, so­bre­no­me e árvore ge­ne­a­ló­gi­ca, e o pró­prio ar­rai­al se re­cons­trói em mu­ti­rão com quem chega. Com­ple­tu­de: três idi­o­mas no menu e no texto do jogo, vozes, save em três vagas, seis ca­dei­as de missão na data do envio, builds pu­bli­ca­das e um site com diário, ga­le­ria, al­ma­na­que e mapa. Uso in­ven­ti­vo da fer­ra­men­ta: 261 mo­de­los do Tripo, dos quais 24 per­so­na­gens com rig e ani­ma­ção e 31 ani­mais, pro­du­zi­dos por um pi­pe­li­ne do­cu­men­ta­do e au­to­ma­ti­za­do, com um estilo pro­ce­du­ral al­ter­na­ti­vo man­ti­do para com­pa­ra­ção, e, na trilha das si­ner­gi­as, o Tripo en­ca­de­a­do ao Ele­ven­Labs, à OpenAI, ao LTX, ao Whis­per e a um motor aberto. Po­ten­ci­al co­mer­ci­al: um uni­ver­so nar­ra­ti­vo com pú­bli­co pró­prio, do qual o jogo é um des­do­bra­men­to. O que o júri de São Paulo va­lo­ri­zou, só ele sabe; o que foi mos­tra­do, está no site, e este livro conta como foi feito.

O que vem depois

O do­min­go não en­cer­rou o tra­ba­lho; mudou o prazo. As issues aber­tas em 11 de ou­tu­bro, da 243 à 261, são a lista de quem viu o jogo ser jogado por es­tra­nhos: o tu­to­ri­al das barras que abre du­ran­te a cena e de­ve­ria es­pe­rar; o balão de fala cor­ta­do pela faixa de cinema; a nar­ra­ção da aber­tu­ra com a le­gen­da antes da voz; os mo­ra­do­res que giram no pró­prio eixo à noite; a música de tensão quando o tu­ba­rão se apro­xi­ma; o qua­dra­do branco na fa­cha­da da igreja; e dois pe­di­dos de alma: "Pedro: ani­ma­ções con­tex­tu­ais con­for­me as falas, gestos de con­ver­sa, apon­tar, es­pan­to", e "Vi­a­jan­te: muito mais falas, mo­nó­lo­go in­te­ri­or, com ga­ti­lhos novos como a pegada do Cu­ru­pi­ra". Há também as pri­o­ri­da­des téc­ni­cas já aber­tas: gerar todas as vozes que faltam; os vídeos da in­tro­du­ção no ritmo da nar­ra­ção, ali­nha­dos pelo Whis­per e ter­mi­nan­do na igreja com o sa­vei­ro che­gan­do; e a re­for­ma dos testes, "pri­o­ri­da­de máxima", de que o ca­pí­tu­lo 14 trata.

Pintura da orla vista do alto ao entardecer: o mar verde-água, a praia curva com um píer pequeno, canoas, mangues, coqueiros, e ao fundo a igreja e as casas da vila sob um céu dourado de nuvens.
A orla do alto. Uma das vinte cenas re­pin­ta­das da pran­cha de assets da sub­mis­são. Cada pin­tu­ra cor­res­pon­de a uma cap­tu­ra real do jogo, do mesmo lugar e da mesma hora.

Na terça-feira se­guin­te, os quatro de­sen­vol­ve­do­res pas­sa­ram cinco horas reu­ni­dos. O que se de­ci­diu ali não está em nenhum do­cu­men­to 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 con­cur­so: in­te­ri­o­res, quin­tal e bichos estão em pro­tó­ti­po; a pró­xi­ma etapa amplia a cam­pa­nha e a his­tó­ria da fa­zen­da, em que Pedro en­fren­ta a Ma­tin­ta Pe­rei­ra. Os ca­pí­tu­los 6 e 7 do livro, afinal, ainda não ter­mi­na­ram no jogo.

O píer ao luar: a canoa amarrada e a lamparina refletida no mar.
Parte V

O que aprendemos

A or­ques­tra de fer­ra­men­tas e o lugar de cada uma; as regras que se­gu­ra­ram o vale quando o ritmo aper­tou; e o que não deu certo, con­ta­do com os nú­me­ros na mão.

Ca­pí­tu­lo doze · As fer­ra­men­tas

A orquestra


O código define os fatos do mundo. O LLM produz a fala do per­so­na­gem sobre esses fatos.

De­ci­sões do pro­tó­ti­po 3D, 23 de se­tem­bro

Ne­nhu­ma fer­ra­men­ta de in­te­li­gên­cia ar­ti­fi­ci­al fez Myths' Valley. Foram pelo menos dez, cada uma num papel, e a pa­la­vra que melhor des­cre­ve o ar­ran­jo é a de uma or­ques­tra: ins­tru­men­tos di­fe­ren­tes, uma par­ti­tu­ra es­cri­ta por pes­so­as, e um re­gen­te que decide quando cada um entra. Este ca­pí­tu­lo é o mapa da or­ques­tra, naipe por naipe, com o que cada ins­tru­men­to pro­du­ziu, quanto custou e onde está do­cu­men­ta­do. Os nú­me­ros são os dos re­po­si­tó­ri­os e do site em 14 de ou­tu­bro.

O naipe do código

O ins­tru­men­to mais pre­sen­te é o menos vi­sí­vel no jogo. Os com­mits dos dois re­po­si­tó­ri­os têm, na mai­o­ria, um rodapé de co­au­to­ria com um modelo da Anth­ro­pic: no 2D, 260 dos 353 com­mits sem merge; no 3D, 290 dos 348. Todos os com­mits de Matheus nos dois re­po­si­tó­ri­os trazem essa as­si­na­tu­ra, com quatro mo­de­los ao longo das se­ma­nas, Claude Opus 5, Opus 5.5, Sonnet e Fable 5.1, usados pelo Claude Code numa má­qui­na Win­dows. No­ven­ta e nove dos cento e trinta com­mits de Ramon no 3D também trazem, e de­zes­seis deles apon­tam para ses­sões do mesmo as­sis­ten­te na nuvem, em Linux; os do­cu­men­tos dele re­gis­tram ainda o uso do Codex, da OpenAI, para a in­te­gra­ção do Tripo e do Play­wright. Os vinte e sete com­mits de Renato não trazem as­si­na­tu­ra de IA; os de­zoi­to de Pedro Al­mei­da trazem todos.

O que esses as­sis­ten­tes fi­ze­ram é o que os ca­pí­tu­los an­te­ri­o­res contam: es­cre­ve­ram código sob di­re­ção, me­di­ram os dois pro­je­tos ar­qui­vo a ar­qui­vo antes da mi­gra­ção, re­di­gi­ram a do­cu­men­ta­ção no re­gis­tro do pro­je­to, ro­da­ram e in­ter­pre­ta­ram ba­te­ri­as de testes, in­ves­ti­ga­ram o de­sem­pe­nho com testes A/B, jun­ta­ram bran­ches con­fe­rin­do o que o Git não vê, or­ga­ni­za­ram as falas numa pla­ni­lha e as re­vi­sa­ram contra a his­tó­ria. E guar­da­ram o que apren­de­ram: a me­mó­ria do as­sis­ten­te de Matheus, ao fim do pe­río­do, tinha de­zes­se­te ar­qui­vos de lições, das ar­ma­di­lhas da ba­te­ria 3D à ma­nei­ra de con­ver­sar com o Tripo Studio, re­li­dos no começo de cada sessão.

Em volta do código, quatro pontes no pro­to­co­lo MCP, que deixa um as­sis­ten­te chamar fer­ra­men­tas ex­ter­nas: a do editor do Godot, que lê e edita cenas e scripts com o pro­je­to aberto e roda o jogo; a de linha de co­man­do do Godot, que abre o editor e lê a saída de de­pu­ra­ção; a do Tripo, para gerar mo­de­los pela API; e a do Play­wright, que dirige o Chrome de ver­da­de pela ex­ten­são ofi­ci­al, com a pessoa apro­van­do a co­ne­xão. A do Pi­xel­Lab serviu ao menu do 2D no se­gun­do dia.

O naipe do volume

O Tripo Studio é a linha mestra dos assets 3D: 261 mo­de­los GLB no jogo, dos quais 24 per­so­na­gens, 26 cons­tru­ções, 80 plan­tas, 28 itens de mão, 39 ade­re­ços, 15 móveis, 31 ani­mais, 17 peixes e uma cri­a­tu­ra ma­ri­nha, so­man­do 1,54 milhão de tri­ân­gu­los nas ver­sões leves. O fluxo obri­ga­tó­rio, Modelo HD, Malha Smart, GLB com tex­tu­ra de 1K ou 2K, está es­cri­to no do­cu­men­to de assets e no de ins­tru­ções para agen­tes, com a tabela de or­ça­men­to de po­lí­go­nos por tipo de peça. Os cré­di­tos re­gis­tra­dos: 2.755 no pri­mei­ro lote de 26 de se­tem­bro; 14.035 na noite de 5 de ou­tu­bro; 190 na ponte do rio grande; 125 no tu­ba­rão e no vi­a­jan­te; mais os lotes me­no­res da casa, dos marcos, do sa­vei­ro e das luvas. Cada peça pro­mo­vi­da tem uma linha de origem na pasta dela, com a tarefa, a con­ta­gem de faces e a tex­tu­ra, e uma linha nos cré­di­tos, com a con­di­ção de uso: plano pago no mo­men­to da ge­ra­ção.

O Pi­xel­Lab fez o equi­va­len­te no 2D: os bo­ne­cos em quatro di­re­ções, a ca­mi­nha­da, os 64 itens de 32 pixels, as cons­tru­ções de 1887, a flora, os bichos e as ani­ma­ções da luta. O re­po­si­tó­rio do 2D tem 1.783 ima­gens, e o cofre re­gis­tra 534 ge­ra­ções com o texto que pediu cada uma. No 3D, o Pi­xel­Lab ficou res­tri­to ao lugar da arte 2D, a in­ter­fa­ce: os ícones dos itens, da teia e das luvas.

Os 261 modelos do Tripo por categoriaBarras horizontais: plantas e árvores 80, adereços 39, animais 31, itens de mão 28, construções 26, personagens 24, peixes e raias 17, mobília 15, criatura marinha 1.Os 261 modelos gerados no Tripo Studio, por categoriaPlantas e árvores80Adereços39Animais31Itens de mão28Construções26Personagens24Peixes e raias17Mobília15Criatura marinha1Fonte: mythsvalley.app.br/tripothon (prancha de assets da submissão).

O que o Tripo pro­du­ziu, por ca­te­go­ria. Oi­ten­ta plan­tas e ár­vo­res, porque a mata é ins­tan­ci­a­da aos mi­lha­res e pre­ci­sa de va­ri­e­da­de e de ver­sões leves para longe.

O naipe do som

Tudo o que soa no vale veio do Ele­ven­Labs: a nar­ra­ção de aber­tu­ra e a da tra­ves­sia, na voz do nar­ra­dor do Ba­ta­lha de Mitos; as 224 falas gra­va­das dos mo­ra­do­res, com uma voz es­co­lhi­da para cada um na bi­bli­o­te­ca bra­si­lei­ra do ser­vi­ço, ou entre as vozes pron­tas quando o lote cres­ceu; cem efei­tos so­no­ros, de passo por tipo de chão a mar­re­ta­da em pedra, do sus­sur­ro da mata ao as­so­bio do Cu­ru­pi­ra; os loops de am­bi­en­te da mata, do riacho e da fo­guei­ra; e as mú­si­cas, uma por pe­río­do do dia, mais os temas do menu, do roçado e da tra­ves­sia. O site conta 104 faixas na trilha. Os ro­tei­ros de ge­ra­ção leem o texto de onde o jogo o lê, só geram o que falta, nor­ma­li­zam o volume e nunca im­pri­mem a chave. O Whis­per, da OpenAI, entra no fim da cadeia para ali­nhar a nar­ra­ção às le­gen­das, pa­la­vra por pa­la­vra.

O naipe da imagem

A iden­ti­da­de visual é do modelo de imagem da OpenAI: o lo­go­ti­po em talha dou­ra­da, as capas de dia e de noite, a mol­du­ra do re­tá­bu­lo, a rosa dos ventos, os ícones de réis e de XP e os dis­tin­ti­vos do painel, as dez capas de cordel em xi­lo­gra­vu­ra, as nove tex­tu­ras do chão em ca­ma­das, e as vinte cenas re­pin­ta­das da ga­le­ria e da pran­cha de assets, cada uma a partir de uma cap­tu­ra real do jogo. O LTX trans­for­mou al­gu­mas dessas pin­tu­ras em vídeo: oito clipes de oito se­gun­dos, cerca de onze dó­la­res, o so­bre­voo em laço do menu e a ci­ne­má­ti­ca do site. O teaser de trinta se­gun­dos foi mon­ta­do em código, com o Re­mo­ti­on, com le­gen­das em quatro lín­guas.

O naipe do teste e o da fala

Dois ins­tru­men­tos en­tra­ram na última semana. O tes­ta­dor au­to­má­ti­co, com o ex­plo­ra­dor de­ter­mi­nís­ti­co sempre ligado e uma escada para o Jev e para o GPT quando o al­go­rit­mo trava, que o ca­pí­tu­lo 10 des­cre­ve. E, no site, uma con­ver­sa com os mo­ra­do­res: o texto vai para a OpenAI, e as cha­ma­das de voz passam pelo Ele­ven­Labs du­ran­te a cha­ma­da, com a po­lí­ti­ca de pri­va­ci­da­de de cada ser­vi­ço lin­ka­da no rodapé. A con­ver­sa dentro do jogo, com me­mó­ria, pla­ne­ja­da em 23 de se­tem­bro, con­ti­nua na lista do pós-jam.

A tra­du­ção para inglês, es­pa­nhol e chinês sim­pli­fi­ca­do do site e do menu também é de IA, e o site avisa: "A IA pode co­me­ter erros de tra­du­ção", com o se­le­tor de idioma apon­tan­do para o ori­gi­nal em por­tu­guês. As falas re­gi­o­nais do jogo, por de­ci­são do autor, não passam por tra­du­tor au­to­má­ti­co.

A partitura

O que faz dessas fer­ra­men­tas uma or­ques­tra, e não uma pilha de as­si­na­tu­ras, são as regras que valem para todas. Toda ge­ra­ção paga só acon­te­ce com pedido ex­plí­ci­to, depois de o custo mos­tra­do pela in­ter­fa­ce ter sido anun­ci­a­do e aceito. Toda chave fica fora do Git, num ar­qui­vo de am­bi­en­te ou no perfil local, e nenhum ro­tei­ro a im­pri­me ou a passa por ar­gu­men­to. Todo asset pro­mo­vi­do ganha origem e cré­di­to, com a li­cen­ça ve­ri­fi­ca­da, e só entra o que per­mi­te uso co­mer­ci­al. Toda arte gerada que custou cré­di­to fica guar­da­da, com o texto que a pediu. A arte 2D é re­fe­rên­cia para a 3D, nunca pro­du­to dentro do vale. O código define os fatos; a IA produz o que é volume, sprite, voz, va­ri­a­ção, ras­cu­nho; e as pes­so­as de­ci­dem o que é sen­ti­do, medem o re­sul­ta­do e es­cre­vem por quê.

O gar­ga­lo é a cu­ra­do­ria humana, não o cré­di­to.

docs/arte/ASSETS_TRIPO.md

A tabela com­ple­ta das fer­ra­men­tas, com o papel de cada uma e o lugar em que está do­cu­men­ta­da, está no Apên­di­ce B. O que a tabela não mostra é a pro­por­ção: para cada hora de ge­ra­ção, várias de cu­ra­do­ria, de con­fe­rên­cia de escala e co­li­são, de lei­tu­ra de li­cen­ça, de re­vi­são de fala, de me­di­ção de de­sem­pe­nho. É nessa pro­por­ção que mora a di­fe­ren­ça entre um jogo feito com IA e um jogo feito por ela.

Ca­pí­tu­lo treze · O pro­ces­so

As regras que seguraram o vale


Dívida re­gis­tra­da, não dívida es­que­ci­da.

Re­gis­tro his­tó­ri­co do de­sen­vol­vi­men­to 3D

Há um jeito de ler este livro como uma lista de fer­ra­men­tas, e há outro, mais útil, de lê-lo como uma lista de regras. Quase todas foram es­cri­tas depois de um erro, cus­ta­ram uma tarde ou uma ba­te­ria de testes, e foram postas onde uma pessoa ou um as­sis­ten­te as re­en­con­tra­ria na hora certa: no ar­qui­vo de ins­tru­ções para agen­tes, num do­cu­men­to de pro­je­to, na me­mó­ria do as­sis­ten­te. Este ca­pí­tu­lo as reúne, com o que custou apren­der cada uma. São regras de um pro­je­to es­pe­cí­fi­co, mas quase todas servem a qual­quer equipe pe­que­na que tra­ba­lhe rápido com in­te­li­gên­cia ar­ti­fi­ci­al.

Sobre o código

1. Cada fatia é um commit, com portão e fal­si­fi­ca­ção. "Com­por­ta­men­to novo sem portão novo é com­por­ta­men­to que vai voltar a que­brar." E o portão só vale depois de furado de pro­pó­si­to pelo fal­si­fi­ca­dor, porque um portão verde pode estar me­din­do um Pedro con­ge­la­do. (Ca­pí­tu­lo 3.)

2. O as­sun­to do commit é uma frase em prosa, no pre­sen­te, di­zen­do o que mudou no jogo. Para quem lê o his­tó­ri­co meses depois, e para o as­sis­ten­te que pre­ci­sa saber re­su­mir a fatia antes de en­tre­gá-la. (Ca­pí­tu­lo 2.)

3. O co­men­tá­rio ex­pli­ca o porquê, não o quê. A de­ci­são, a al­ter­na­ti­va re­cu­sa­da e a ar­ma­di­lha que o pró­xi­mo vai pisar. Os do­cu­men­tos seguem o mesmo re­gis­tro; muitos têm uma seção "o que isto en­si­nou". (Ca­pí­tu­lo 3.)

4. A regra fica se­pa­ra­da da apre­sen­ta­ção. Foi o que fez vinte e cinco dos trinta sis­te­mas do 2D atra­ves­sa­rem para o 3D sem re­es­cri­ta. O que prende uma regra ao jogo quase nunca é um tipo, é uma tecla. (Ca­pí­tu­lo 5.)

5. Lugar tem nome, não co­or­de­na­da. E o portão varre o código-fonte atrás de todo nome es­cri­to à mão, porque nome errado com­pi­la e some a bús­so­la. (Ca­pí­tu­lo 5.)

6. Texto que o jo­ga­dor lê nasce em dado, nos três idi­o­mas, nunca em cons­tan­te. O portão re­pro­va a tra­du­ção que é cópia do por­tu­guês; o que falta fica numa lista com a razão. (Ca­pí­tu­lo 5.)

7. O ca­tá­lo­go é a única fonte de cada peça, e os dois es­ti­los nunca se mis­tu­ram. Nenhum GLB ins­tan­ci­a­do fora do ca­tá­lo­go; ne­nhu­ma peça pro­ce­du­ral dentro do estilo Tripo. (Ca­pí­tu­lo 4.)

Sobre os testes

8. Nunca mate um pro­ces­so do Godot pelo nome; só por PID, e só o que o pró­prio script le­van­tou. Já fechou o editor aberto de alguém, várias vezes, com cena não salva. (Ca­pí­tu­lo 3.)

9. Código de saída zero não prova nada. Erro de com­pi­la­ção não der­ru­ba o jogo; conte os erros de aná­li­se na saída. E um teste que es­tou­ra no meio trava em vez de re­pro­var, por isso todo portão tem teto de tempo. (Ca­pí­tu­lo 3.)

10. Portão sen­sí­vel ao tempo é es­cri­to con­tan­do passos de física, nunca qua­dros. Re­pro­du­za "falha só na ba­te­ria" ocu­pan­do todos os nú­cle­os; mova o jo­ga­dor só pelo te­le­por­te; meça pro­gres­so de um mo­ra­dor ao longo do ca­mi­nho dele, não em linha reta. (Ca­pí­tu­lo 3.)

11. Quando um portão fica ver­me­lho depois de um merge, pri­mei­ro per­gun­te se a mé­tri­ca dele ainda vale no mundo jun­ta­do. E con­fi­ra o que o Git não vê: as­si­na­tu­ras mu­da­das, ramos du­pli­ca­dos, chaves re­pe­ti­das, tu­to­ri­al que ensina me­câ­ni­ca velha, coisa posta por co­or­de­na­da dentro de zona nova. (Ca­pí­tu­lo 7.)

12. A ba­te­ria com­ple­ta é para fechar build, não para cada vír­gu­la. A regra chegou tarde e custou caro; a issue de pri­o­ri­da­de máxima que a for­ma­li­za é o as­sun­to do pró­xi­mo ca­pí­tu­lo.

Sobre a inteligência artificial

13. Ge­ra­ção paga só com pedido ex­plí­ci­to, com o custo mos­tra­do antes do clique. Con­sul­tas de saldo, his­tó­ri­co e estado são livres. CAPT­CHA, dois fa­to­res, e-mail e pa­ga­men­to ficam com a pessoa. (Ca­pí­tu­lo 9.)

14. Chave nunca entra no Git, nunca é im­pres­sa, nunca vai por ar­gu­men­to. Os ro­tei­ros leem a chave de um ar­qui­vo de am­bi­en­te ou do perfil local por uma função só, e o as­sis­ten­te é ins­truí­do a nunca lê-la. (Ca­pí­tu­lo 4.)

15. Toda arte que custou cré­di­to fica guar­da­da, com o texto que a pediu. Na camada da API, para que nin­guém pre­ci­se lem­brar. (Ca­pí­tu­lo 2.)

16. Todo asset tem origem e cré­di­to, com a li­cen­ça ve­ri­fi­ca­da; só entra o que per­mi­te uso co­mer­ci­al. A carta náu­ti­ca não é re­dis­tri­buí­da; o jogo leva só a grade de­ri­va­da. (Ca­pí­tu­lo 4.)

17. A arte 2D é re­fe­rên­cia, não pro­du­to. O sprite vira imagem de en­tra­da do Tripo; no vale, ne­nhu­ma arte 2D fora da in­ter­fa­ce. (Ca­pí­tu­lo 5.)

18. O que a IA não con­se­gue gerar bem, des­trua ou emende por código a partir do que existe. A ponte caída, a ponte es­ti­ca­da, a cerca que emenda. (Ca­pí­tu­lo 2.)

19. O código define os fatos; a IA produz a fala. A con­ver­sa livre nunca é ne­ces­sá­ria para con­cluir uma missão; sem rede, o jogo con­ti­nua jo­gá­vel com falas ro­tei­ri­za­das. (Ca­pí­tu­lo 4.)

20. O as­sis­ten­te guarda o que apren­de, e relê. Cor­re­ções do autor viram me­mó­ria de re­tor­no, com o porquê; lições de fer­ra­men­ta viram me­mó­ria de re­fe­rên­cia; o que não está nos do­cu­men­tos nem no his­tó­ri­co vira me­mó­ria de pro­je­to. (Ca­pí­tu­lo 3.)

Sobre a equipe

21. A tarefa vem do board. Toda fatia nasce de uma issue, o commit cita o número no corpo, e o plano é ris­ca­do no mesmo commit que fecha a issue: "board e plano que dis­cor­dam são dois planos". (Ca­pí­tu­lo 5.)

22. Con­fli­to de design se decide pelo enredo e pela me­câ­ni­ca do jogo, como os do­cu­men­tos do autor e os por­tões os leem hoje. Mantém-se o tra­ba­lho do colega que não con­fli­ta, prova-se pela ba­te­ria, e lista-se cada so­bre­po­si­ção no re­la­tó­rio. Passos para fora, como juntar na main, pedem con­fir­ma­ção. (Ca­pí­tu­lo 7.)

23. A main sempre abre e roda. Branch de mi­gra­ção local, ba­te­ria verde em to­ta­li­da­de, e o envio só quando o autor au­to­ri­za. Buscar a main de novo antes da ba­te­ria final, porque ela anda en­quan­to a ba­te­ria roda. (Ca­pí­tu­lo 7.)

24. Con­fi­gu­ra­ção de má­qui­na fica fora do re­po­si­tó­rio. Um colega tra­ba­lha em Linux na nuvem, outro no PowerShell 5.1; o que é de cada sis­te­ma vai na do­cu­men­ta­ção, não num ar­qui­vo ver­si­o­na­do. (Ca­pí­tu­lo 8.)

25. O do­cu­men­to diz o que sabe e o que não sabe. "Re­gis­tro de de­ci­sões de tra­ba­lho e va­li­da­ções pen­den­tes; não com­pro­va im­ple­men­ta­ção." "A dis­tri­bui­ção ainda confia no ser­vi­dor HTTPS." "Os re­qui­si­tos mí­ni­mos con­ti­nu­am em me­di­ção." É o re­gis­tro de Ramon, e é o que torna o pro­je­to con­fiá­vel para quem chega de fora. (Ca­pí­tu­los 4 e 7.)

Três regras de desenho que a memória guardou

Nem toda regra é de en­ge­nha­ria. Três de­ci­sões do autor fi­ca­ram na me­mó­ria do as­sis­ten­te como regras de re­tor­no, com a frase que as ori­gi­nou, para não serem des­fei­tas por engano numa sessão futura. Os in­te­ri­o­res são cô­mo­dos reais dentro da pró­pria cons­tru­ção, em que se entra an­dan­do: "os cô­mo­dos têm que ser em 3D mesmo". O ma­cha­do só chega na missão da ponte, com Pedro bus­can­do os ma­cha­dos do avô, vai para a barra de mão como qual­quer item, e ne­nhu­ma fer­ra­men­ta en­tre­gue troca so­zi­nha o que o jo­ga­dor segura: "o for­ma­to que ori­en­tei é o cor­re­to". E o re­ló­gio pode ser mexido pelo jo­ga­dor, pau­sa­do, parado, adi­an­ta­do, desde que com aviso, con­fir­ma­ção e re­gis­tro no save: "pode manter a pos­si­bi­li­da­de de al­te­rar o re­ló­gio, desde que tenha o aviso". São o tipo de coisa que um as­sis­ten­te, com a melhor das in­ten­ções, "sim­pli­fi­ca" na quinta sessão; es­cri­tas, não são sim­pli­fi­ca­das.

Ca­pí­tu­lo ca­tor­ze · Os li­mi­tes

O que não deu certo


Os testes do 3D in­vi­a­bi­li­zam o de­sen­vol­vi­men­to.

Issue 242, "pri­o­ri­da­de máxima", 9 de ou­tu­bro

Um relato que só con­tas­se os acer­tos seria, no re­gis­tro deste pro­je­to, um relato mal do­cu­men­ta­do. Os do­cu­men­tos do vale são cheios de frases como "não com­pro­va im­ple­men­ta­ção", "não é a causa", "fica para depois da en­tre­ga", e é justo que este livro ter­mi­ne a parte das lições com a lista do que não fun­ci­o­nou, ou não fun­ci­o­nou a tempo. Alguns itens são dí­vi­das em an­da­men­to; outros, li­mi­tes de método que a equipe re­co­nhe­ceu por es­cri­to.

Sessenta quadros por segundo, nunca

O re­la­tó­rio de 5 de ou­tu­bro é claro: "o vale nunca chega a 60 FPS nesta má­qui­na, em nenhum lugar e para nenhum lado". O "60" das me­di­ções an­ti­gas era de cenas mais leves e ja­ne­las me­no­res. A Build 9 dobrou o de­sem­pe­nho e não chegou a trinta na me­di­a­na, com a placa li­mi­ta­da. O que leva a ses­sen­ta está lis­ta­do na seção 9.3 do re­la­tó­rio e ainda está por fazer: montar o vale uma vez só, em vez de duas; mo­de­los de árvore re­al­men­te leves; des­car­te por oclu­são, porque dentro da igreja, olhan­do para a parede, o jogo de­se­nha 8,9 mi­lhões de tri­ân­gu­los do vale que está atrás dela; e física com menos con­sul­tas de ter­re­no por in­di­ví­duo. Três dias depois da Build 9, uma issue re­gis­tra­va que o de­sem­pe­nho tinha caído de novo com as peças novas, e outra que o FPS caía abaixo de trinta no en­tar­de­cer. A re­gres­são tinha en­tra­do "sem alarme", e essa é a causa de pro­ces­so que o re­la­tó­rio nomeia: não havia portão de de­sem­pe­nho.

A build que foi, e a que não foi

A 9B foi en­vi­a­da vinte e um mi­nu­tos antes de as dez cor­re­ções do play­test che­ga­rem à main. Os ju­ra­dos jo­ga­ram, por­tan­to, com o foco do E, o re­ló­gio na con­ver­sa e a festa suave do jeito antigo. Foi uma de­ci­são cons­ci­en­te, tomada na trans­mis­são ao vivo por quem tinha a res­pon­sa­bi­li­da­de, e o as­sis­ten­te a guar­dou como regra: "re­pro­du­za os acha­dos da live numa build cor­ta­da da main atual pri­mei­ro". O teto do vigor, que a equipe dis­cu­tiu na mesma noite, entrou no dia se­guin­te na forma da re­ser­va do dia; a dis­cus­são sobre o teto em si con­ti­nua numa issue.

O crédito que acabou no meio

O teto da chave do Ele­ven­Labs acabou no meio do lote de vozes de 6 de ou­tu­bro, e o que fal­ta­va ficou de­cla­ra­do num campo de dados, co­bra­do por um portão. Em 8 de ou­tu­bro o do­cu­men­to das falas con­ta­va 322 falas fa­la­das sem áudio, perto de 68 mi­nu­tos, e 22 gra­va­ções com o texto antigo; dez dos mo­ra­do­res novos usam vozes na­ti­vas em inglês do ser­vi­ço, "vale ouvir o so­ta­que no por­tu­guês antes de gerar o resto". A issue que pede todas as vozes que faltam está aberta.

A bateria que travou a máquina

O método dos por­tões, que fez o pro­je­to chegar até aqui, virou o pro­ble­ma na se­gun­da semana. Em 9 de ou­tu­bro o autor abriu a issue de pri­o­ri­da­de máxima: cerca de 230 por­tões, um por fatia, quase todos mon­tan­do o vale in­tei­ro mesmo para con­fe­rir o ta­ma­nho de um botão; o runner de­ci­din­do "o que foi afe­ta­do" por fecho de de­pen­dên­ci­as, de modo que mudar um ar­qui­vo global, uma tra­du­ção, uma tela, o ar­qui­vo do pro­je­to, dis­pa­ra­va uns 200 por­tões; uma ba­te­ria de uma a três horas com quatro a seis Godots em pa­ra­le­lo e a CPU a cem por cento; e, na­que­le dia, a ba­te­ria rodada por lote, seis vezes du­zen­tos por­tões, "o que travou a má­qui­na e o tra­ba­lho por horas".

As de­ci­sões do autor estão na issue. Ba­te­ria com­ple­ta só ao juntar na main, nunca por commit, por issue ou por lote. Montar o vale uma vez só, com os testes de in­te­gra­ção ro­dan­do num único pro­ces­so. Tra­du­ções e dados fora do cri­té­rio de "afe­ta­do". Um fra­mework de testes de uni­da­de, GUT ou gdUnit4, para regras que rodam sem montar o mundo, em se­gun­dos. Rever a regra "um portão por issue": cada fatia acres­cen­ta um caso a uma suíte exis­ten­te, nunca um pro­ces­so novo que monte o vale. Meta: no máximo vinte casos de in­te­gra­ção, o modo com­ple­to em menos de dez mi­nu­tos. É uma re­for­ma do que este livro passou três ca­pí­tu­los elo­gi­an­do, e é a lição mais im­por­tan­te dele: um método que fun­ci­o­na para qua­ren­ta e sete por­tões num jogo 2D não escala so­zi­nho para du­zen­tos e trinta num mundo 3D que leva meio minuto para montar. Os sinais es­ta­vam nas me­mó­ri­as do as­sis­ten­te desde 3 de ou­tu­bro, "cada uma destas custou uma ba­te­ria de 55 mi­nu­tos", "com 2 GB livres o runner roda um portão de cada vez e 109 por­tões levam mais de 80 mi­nu­tos". Faltou a de­ci­são de parar e re­for­mar antes de a má­qui­na travar.

Vermelhos que já estavam lá

Dois por­tões fi­ca­ram ver­me­lhos na main por mo­ti­vos an­te­ri­o­res a qual­quer fatia re­cen­te, e foi pre­ci­so provar isso em vez de supor. O da na­ve­ga­ção falha porque o ca­mi­nho do píer à ga­me­lei­ra atra­ves­sa o casco do sa­vei­ro atra­ca­do; o pesado, que joga as mis­sões do começo ao fim, falha num passo da che­ga­da em que Pedro oscila em torno de um ponto con­du­zin­do o jo­ga­dor à casa da Zefa e nunca chega. A prova foi uma work­tree se­pa­ra­da, com o .godot e as tex­tu­ras ig­no­ra­das co­pi­a­dos (1.590 ar­qui­vos, alguns com ca­mi­nhos acima de 260 ca­rac­te­res que o PowerShell 5.1 não copia), ro­dan­do a main pura. "Não é uma re­gres­são de tra­ba­lho pos­te­ri­or: con­fi­ra contra a main antes de culpar uma mu­dan­ça."

O que ficou no plano

A con­ver­sa livre com um mo­ra­dor, com me­mó­ria entre ses­sões, que abre o do­cu­men­to de de­ci­sões de 23 de se­tem­bro e que an­co­ra­va o pri­mei­ro ro­tei­ro da demo (se­men­tes, pre­sen­te, mo­ra­dor que lembra), não entrou no prazo e segue na lista do pós-jam com "pri­o­ri­da­de a con­fir­mar". O ro­tei­ro da demo foi re­fei­to com o que o vale tinha, e o pre­sen­te apa­re­ceu de outro jeito. Os dois ar­qui­vos gran­des de falas do 2D, o tu­to­ri­al e os sete mo­ra­do­res, 58 qui­loby­tes de prosa re­gi­o­nal, con­ti­nu­am na lista do que falta tra­du­zir, por de­ci­são de que isso não é tra­ba­lho de tra­du­tor au­to­má­ti­co. Quatro ar­qui­vos com­par­ti­lha­dos entre o 2D e o 3D bi­fur­ca­ram por uma regra que nasceu no 3D, e a es­co­lha entre pro­mo­ver a regra ao 2D ou de­cla­rar a bi­fur­ca­ção con­ti­nua com o autor.

Miudezas que custaram

O exe­cu­tá­vel ex­por­ta­do usava o ícone do Godot, e o atu­a­li­za­dor re­cu­sa­va builds acima de 768 me­gaby­tes, com a Build 9 pe­san­do mais de um gi­gaby­te; as duas issues têm "PRI­O­RI­DA­DE" no título. A ponte do Play­wright pre­ci­sa de uma pessoa na má­qui­na para apro­var a co­ne­xão da ex­ten­são: numa noite, três ten­ta­ti­vas fi­ca­ram pen­du­ra­das até o tempo es­go­tar, e a regra virou "não repita; pre­pa­re o lote e peça apro­va­ção quando a pessoa voltar". Os assets que um colega acres­cen­ta pre­ci­sam ser im­por­ta­dos no Godot antes da ba­te­ria, ou três por­tões verdes apa­re­cem ver­me­lhos com "o script não com­pi­lou", porque a ex­pres­são re­gu­lar do runner casa com a men­sa­gem de re­cur­so au­sen­te. A má­qui­na de Matheus não tem Python nem ffmpeg, e o pla­ne­ja­dor do so­bre­voo e os ro­tei­ros de voz pre­ci­sam dos dois; a so­lu­ção por­tá­til, numa pasta tem­po­rá­ria, foi ano­ta­da para não ser rein­ven­ta­da. Dois ícones novos en­tra­ram com­pri­mi­dos em VRAM porque o padrão do im­por­ta­dor é para tex­tu­ras 3D, e a regra de in­ter­fa­ce sem perda pre­ci­sou ser apli­ca­da à mão.

Portão que fica ver­me­lho por motivo que não é de­fei­to é portão que ensina a ig­no­rar portão.

README do jogo 2D

Nada disso des­men­te o re­sul­ta­do; ex­pli­ca o ta­ma­nho dele. Um pro­je­to de quinze dias que ter­mi­na com uma issue de pri­o­ri­da­de máxima sobre os pró­pri­os testes é um pro­je­to que mediu o que fez. O ca­pí­tu­lo se­guin­te é o último, e é sobre a única coisa que não foi medida.

Apên­di­ce A

Linha do tempo


Os com­mits são os sem merge, con­ta­dos em 14 de ou­tu­bro de 2026 nos re­po­si­tó­ri­os acentauric/myths-valley (2D) e acentauric/myths-valley-3d (3D). Os marcos vêm dos his­tó­ri­cos, do chan­ge­log, do diário do site e das issues.

Set 2026

O con­vi­te A Tripo anun­cia o Tri­pothon S1, pri­mei­ro hac­kathon de cons­tru­ção de mundos: tema "A Gift for ____", envios de 15/09 a 05/10, júri até 25/10, Demo Days em sete ci­da­des.

21/09 · dom

2D nasce · 75 com­mits Pri­mei­ro commit às 00h56. Mundo, jo­ga­dor, re­ló­gio e es­ta­ções; casa, dormir, tu­to­ri­al; Pedro como guia; in­ven­tá­rio e la­vou­ra; spri­tes e áudio por IA; rio, obras, mapa de Bom Jesus dos Pobres; o nome Myths' Valley.

22/09 · seg

O dia mais longo · 109 com­mits Cofre de arte gerada; fé em três ca­mi­nhos; obras; mis­sões com chec­klist; doze por­tões; dez cor­déis; plano em sete fases com as fases 0 a 4 feitas; runner com teto e regra do PID. Menu com Pi­xel­Lab MCP, mú­si­cas do Ele­ven­Labs, vídeo do LTX, fontes Al­men­dra e Miva.

23/09 · ter

A ter­cei­ra di­men­são · 66 + 5 com­mits Do­cu­men­to de de­ci­sões do pro­tó­ti­po 3D; pri­mei­ro pas­seio jo­gá­vel com o per­so­na­gem me­di­e­val; ani­ma­çõ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.

24/09 · qua

A pri­mei­ra casa do Tripo · 26 + 3 Casa de Carro Que­bra­do (65 cré­di­tos; 1,9 milhão → 273 mil tri­ân­gu­los); pau-brasil e o guia de imagem para 3D; aber­tu­ra 3D com nar­ra­ção. No 2D, com­ba­te, a onça, a mata atrás da crista.

25/09 · qui

KML e luta en­si­na­da · 14 + 0 O KML do autor ori­en­ta ruas, rios e pontos de in­te­res­se; mapa com zoom. No 2D, a luta em três ro­da­das, a ja­ra­ra­ca no brejo.

26/09 · sex

Build 5 · 8 + 33 1 uni­da­de = 4 m; dois es­ti­los; dia e noite; luzes de 1887; som por pro­xi­mi­da­de; sete mo­ra­do­res com voz; Pedro guia; lote de 66 peças pelo con­so­le do Studio (2.755 cré­di­tos); tex­tu­ras em VRAM. No 2D, a ida à fa­zen­da e os quinze acha­dos do play­test.

27/09 · sáb

O mar da carta náu­ti­ca · 0 + 10 Ba­ti­me­tria da carta DHN 1108; nado; foz; ondas em séries; sons por chão; car­re­ga­men­to em etapas; mo­ra­do­res ani­ma­dos.

28/09 · dom

Build 6 · 26 + 7 Maré e tu­ba­rão; a igreja a partir de fotos; ve­ge­ta­ção de Sau­ba­ra; mú­si­cas por pe­río­do; iden­ti­da­de "Crô­ni­ca do Recôn­ca­vo" na carga; a iden­ti­da­de visual (logo, capas, mol­du­ra, rosa dos ventos) gerada na OpenAI.

29/09 · seg

A grande tra­ves­sia · 24 + 26 Três de­ci­sões do autor; me­di­ção ar­qui­vo a ar­qui­vo; a cos­tu­ra Lu­ga­res; fôlego, mo­chi­la, ca­len­dá­rio, teia, fés, mo­ra­do­res, mis­sões, venda, pesca e save atra­ves­sam; Fase 2 fecha com 25 ar­qui­vos com­par­ti­lha­dos; o board com 32 issues; o runner do vale.

30/09 · ter

O ar­rai­al pede coisas · 1 + 33 Ca­dei­as de missão por mo­ra­dor; al­ma­na­que; cor­déis e pacto; pesca, co­zi­nha e ofi­ci­na no vale; co­quei­ros caem com ma­cha­do; a mo­chi­la na roda do mouse.

01/10 · qua

Cada jogo na sua casa · 4 + 7 Re­po­si­tó­ri­os se­pa­ra­dos; Git LFS; a branch per­di­da re­cu­pe­ra­da; issues 33 a 62 (build ZIP, pacote de sub­mis­são, ro­tei­ro e tema, li­cen­ças, Demo Day).

02/10 · qui

Cinco se­gun­dos · 0 + 2 O vale monta em cinco se­gun­dos, idên­ti­co bit a bit; o so­bre­voo con­tor­na ár­vo­res e casas.

03/10 · sex

Builds 7 e 8 · 0 + 41 Atu­a­li­za­ção pelo site com SHA-256; igreja e casas por dentro; a fé no chão do vale; cor­déis com capas em xi­lo­gra­vu­ra; re­tra­tos do modelo 3D; sa­vei­ro do Qui­ri­no; PRs 73 e 75 pela branch de mi­gra­ção; README com a de­cla­ra­ção do que pre­ce­de o evento.

04/10 · sáb

Crô­ni­ca do Recôn­ca­vo · 0 + 39 Idioma antes do vale; mol­du­ra SVG; fichas com prévia 3D; tela cheia; seis cur­so­res; três barras; luvas de couro; a che­ga­da como pe­di­dos do ar­rai­al; nar­ra­ção da tra­ves­sia cor­ta­da pelo Whis­per; com­po­si­ção edi­tá­vel.

05/10 · dom

Build 9 e 9B, sub­mis­são · 0 + 47 Lote de level design pela ponte do Play­wright (14.035 cré­di­tos); tex­tu­ras do chão da OpenAI; o jogo começa no sa­vei­ro; fren­tes do 2D; in­ves­ti­ga­ção de de­sem­pe­nho (5,3 → 18 FPS na pior vista); vídeos do LTX; lobby em vídeo; 9B às 21h; dez cor­re­ções às 21h21; live às 22h; envio antes da meia-noite AoE.

06/10 · seg

A noite da 9B · 0 + 59 Issues 80 a 98 cor­ri­gi­das; a ponte caída e de pé (190 cré­di­tos); 23 vozes do Ele­ven­Labs; toda casa por dentro; o vulto e o Cu­ru­pi­ra; maré ligada; bichos com as pernas do código.

07/10 · ter

Jev e as se­cun­dá­ri­as · 0 + 20 Play­test em seis fatias; teste au­to­má­ti­co no menu; sessão V21 do tes­ta­dor (110 de­ci­sões, US$ 0); mis­sões se­cun­dá­ri­as dos ca­tor­ze mo­ra­do­res, fases 0 a 3; cenas por dados; 47 issues num dia.

08/10 · qua

As falas · 0 + 16 O do­cu­men­to das 1.293 falas; 87 acha­dos, 83 cor­ri­gi­dos em cinco levas; o "!" sobre a cabeça e a tela de aceite.

09–10/10

Pri­o­ri­da­des Issues 165 a 242: ícone do exe­cu­tá­vel, atu­a­li­za­dor acima de 768 MB, vídeos da in­tro­du­ção com Whis­per, e a re­for­ma dos testes como pri­o­ri­da­de máxima. Build 10.

11/10 · dom

São Paulo Demo Day em Alto de Pi­nhei­ros, 11h às 18h. Pri­mei­ro lugar na etapa bra­si­lei­ra, US$ 2.500. Issues 243 a 261 aber­tas no mesmo dia.

13/10 · ter

Depois Cinco horas de reu­nião da equipe. O site en­tre­ga a Build 11.

25/10 · dom

O anún­cio global Fim do pe­río­do de júri do Tri­pothon S1.

Apên­di­ce B

As ferramentas e os números


As ferramentas de inteligência artificial

FerramentaPapel no projetoO que produziuOnde está documentado
Claude Code (Anthropic): Opus 5, Opus 5.5, Sonnet, Fable 5.1Assistente 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 falasRodapé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 PlaywrightConfiguração do Tripo MCP; automação do Studiodocs/ferramentas/TRIPO_MCP.md, TRIPO_PLAYWRIGHT.md
Tripo Studio e Tripo CLI/MCPModelos 3D de texto e de imagem; retopologia Malha Smart; rig e animações261 GLB; 24 personagens com rig; 31 animais; 17 peixesdocs/arte/ASSETS_TRIPO.md; ORIGEM.md de cada pasta; assets/CREDITOS.md
PixelLabPixel art do 2D; ícones de interface do 3DBonecos em 4 direções, caminhadas, 64 itens, cenário de 1887, animações de luta; 534 gerações no cofredocs/PIXELLAB.md (2D); assets/sprites/cofre/REGISTRO.tsv
ElevenLabs: Eleven v3, Multilingual v2, Music, Sound EffectsVozes, narração, música e efeitos224 falas gravadas; 100 efeitos; músicas por período; narração da travessiadocs/sistemas/AUDIO.md; tools/elevenlabs/; assets/CREDITOS.md
Whisper (OpenAI)Transcrição com tempos por palavraCorte da narração em trechos alinhados às legendastools/elevenlabs/gerar-travessia.ps1, alinhar_travessia.py
OpenAI gpt-image-2 e gpt-image-1Identidade visual, texturas, ícones, pinturasLogo, capas, moldura, rosa dos ventos; 10 capas de cordel; 9 texturas de chão; 8 ícones; 20 pinturastools/openai/; identidade/ORIGEM.md; cordeis/ORIGEM.md; materiais/ORIGEM.md
LTX (Lightricks)Vídeo a partir das pinturas8 clipes de 8 s; sobrevoo em laço do lobby; cinemática do sitetools/ltx/gerar-videos-tripothon.ps1; assets/CREDITOS.md
Jev (TypeSafe) e GPT (OpenAI)Testador automático, em escada sobre o explorador determinísticoSessões de jogo registradas; V21 com 110 decisões e US$ 0tools/jev/; mythsvalley.app.br/teste-automatico; issues 118, 159, 183
OpenAI e ElevenLabs no siteConversa por texto e por voz com os moradoresChat do sitemythsvalley.app.br (rodapé)
Tradução por IAInglês, espanhol e chinês do site e do menu235 frases do menu; páginas do sitemythsvalley.app.br/projeto

As ferramentas que não são IA

FerramentaUso
Godot 4.7.2 Standard, GDScriptMotor dos dois jogos: Compatibility no 2D, Forward+ no 3D
Google Earth e KMLA 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 LFSDois repositórios, 261 issues, PRs fechadas por branch de migração
PowerShell, node, PythonOs 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, RemotionO site e o teaser montado em código
Fontes Cinzel, Cormorant Garamond, Almendra (OFL) e Miva (da equipe)A identidade tipográfica

Os números dos repositórios (14/10/2026)

MedidaJogo 2DJogo 3D
Commits (com merges)365392
Commits sem merges353348
Com assinatura de coautoria de IA260290
Commits de Matheus Ché / com IA258 / 258173 / 173
Commits de Ramon Santos / com IA95 / 2130 / 99
Commits de Renato Leal / com IA027 / 0
Commits de Pedro Almeida / com IA018 / 18
Primeiro e último commit21/09 00h56 · 01/1023/09 21h01 · 08/10
Linhas de GDScript49.006138.067
Arquivos .gd128369
Autoloads4238
Portões de teste47159
Arquivos compartilhados do 2D no 3D—25
Arquivos de missão (JSON)—52
Modelos GLB0264
Arquivos de áudio37311
Vozes gravadas (mp3)—224
Efeitos sonoros—100
Imagens (png, jpg, webp)1.783188
Gerações no cofre do PixelLab534—

Três com­mits de 24 e 26 de se­tem­bro saíram, por engano, de outra conta logada na má­qui­na de Renato e estão so­ma­dos aos dele. O site do jogo pu­bli­ca con­ta­gens pró­pri­as, feitas em outras datas e com outros cri­té­ri­os (por exem­plo, 525 com­mits em três re­po­si­tó­ri­os in­cluin­do o site, 94.224 linhas de GDS­cript no 3D, 123 por­tões), e por isso difere desta tabela.

Tabelas gêmeas dos gráficos

Com­mits por dia, sem merges (grá­fi­co do ca­pí­tu­lo 5).
Dia2D3DDia2D3D
21/0975030/09133
22/09109001/1047
23/0966502/1002
24/0926303/10041
25/0914004/10039
26/0983305/10047
27/0901006/10059
28/0926707/10020
29/09242608/10016
Qua­dros por se­gun­do antes e depois da Build 9 (grá­fi­co do ca­pí­tu­lo 9). GTX 1660 Ti Max-Q, 1080p, 80 vistas.
MedidaAntesBuild 9
FPS na pior vista5,318,0
FPS na vista mediana12,928,9
FPS na melhor vista30,142,8
Quadro mediano77 ms35 ms
Triângulos por quadro (mediana)5,7 M1,8 M
Montagem do vale48 s29 s
Carga do menu48 s~3 s (lobby em vídeo)
Os 261 mo­de­los do Tripo por ca­te­go­ria (grá­fi­co do ca­pí­tu­lo 12), con­for­me a pran­cha da sub­mis­são.
CategoriaModelosCategoriaModelos
Plantas e árvores80Construções26
Adereços39Personagens24
Animais31Peixes e raias17
Itens de mão28Mobília15
Criatura marinha1

Créditos e custos registrados

DataLoteCréditos / custo
24/09Casa de Carro Quebrado, Modelo HD65 créditos
26/0967 retopologias, 1 geração, 1 rig2.755 créditos
04/10Tubarão (105) e viajante com 13 animações (20)125 créditos
05/10Level design: 125 gerações, 158 retopologias, 42 rigs14.035 créditos
05/108 clipes do LTX, 1920×1080, 8 s cada≈ US$ 11
06/10Ponte caída e de pé190 créditos
07/10Sessão V21 do testador automáticoUS$ 0,0 de 0,10
Apên­di­ce C

Glossário


Âncora
Um ponto no­me­a­do do vale 3D, re­gis­tra­do pelo cons­tru­tor do mundo: Praça, Igreja, Píer, Roçado. É o que o con­tra­to Lu­ga­res de­vol­ve quando uma missão pede um lugar pelo nome.
AoE (Anywhe­re on Earth)
Con­ven­ção de prazo usada em con­cur­sos in­ter­na­ci­o­nais: o prazo vale en­quan­to for aquela data em algum lugar da Terra, isto é, até a meia-noite no fuso UTC−12.
Au­to­lo­ad
No Godot, um script car­re­ga­do uma vez e aces­sí­vel de qual­quer parte do jogo. No 2D, cada as­sun­to do jogo (re­ló­gio, in­ven­tá­rio, fé) é um au­to­lo­ad; a se­pa­ra­ção entre regra em au­to­lo­ad e de­se­nho em cena é o que per­mi­tiu a mi­gra­ção.
Ba­te­ria
A exe­cu­ção de um con­jun­to de por­tões pelo runner, com teto de tempo por teste, perfil de usuá­rio iso­la­do e con­ta­gem de erros de com­pi­la­ção.
Build
Uma versão ex­por­ta­da do jogo para Win­dows, nu­me­ra­da e ca­rim­ba­da no his­tó­ri­co. As builds 7 e 8 foram as pri­mei­ras pu­bli­ca­das; a 9 e a 9B, as do con­cur­so; o site en­tre­ga a 11.
Cadeia de mis­sões
A fila de passos pen­du­ra­da em cada mo­ra­dor do 3D, lida de um ar­qui­vo de dados por dono, com metas de quatro tipos: juntar, der­ru­bar, levar e falar.
Cofre
A pasta em que toda arte gerada por IA é co­pi­a­da no ins­tan­te em que chega, com uma linha de re­gis­tro con­ten­do a data, o des­ti­no, a se­men­te e o texto que a pediu.
Cordel
Fo­lhe­to de versos da tra­di­ção nor­des­ti­na, ven­di­do pen­du­ra­do em bar­ban­te. O jogo tem dez, de verso ori­gi­nal, cada um com capa em xi­lo­gra­vu­ra.
Fal­si­fi­ca­ção
Que­brar o código de pro­pó­si­to, por uma tabela de que­bras, e con­fe­rir que o portão cor­res­pon­den­te re­pro­va pelo motivo es­pe­ra­do. O fal­si­fi­ca­dor res­tau­ra o ar­qui­vo ao fim.
Fôlego, vigor, vida
As três contas do corpo no 3D desde 5 de ou­tu­bro: a vida que os bichos tiram, o fôlego que só o nado gasta, e o vigor que o es­for­ço con­so­me. A re­ser­va do dia (ener­gia) voltou no dia se­guin­te como conta pró­pria.
Forward+ e Com­pa­ti­bi­lity
Os dois ren­de­ri­za­do­res do Godot 4 usados no pro­je­to: o pri­mei­ro, mais mo­der­no, no 3D; o se­gun­do, mais leve e com­pa­tí­vel, no 2D.
GLB
A va­ri­an­te bi­ná­ria do for­ma­to glTF, usada para levar os mo­de­los do Tripo ao Godot com malha, ma­te­ri­ais, tex­tu­ras, es­que­le­to e ani­ma­ções num ar­qui­vo só.
KML
For­ma­to de dados ge­o­grá­fi­cos do Google Earth. O traço do autor sobre a foto aérea de Bom Jesus dos Pobres, ex­por­ta­do em KML, é a fonte do ter­re­no, das ruas e dos rios do vale.
LOD (nível de de­ta­lhe)
Ver­sões mais sim­ples de um modelo para quando ele está longe da câmera. As ár­vo­res do vale têm ver­sões "leve" e "de longe", re­fei­tas por re­to­po­lo­gia sobre o modelo ori­gi­nal.
Malha Smart (re­to­po­lo­gia)
A ope­ra­ção do Tripo Studio que refaz a malha de um Modelo HD com um número alvo de po­lí­go­nos em qua­dri­lá­te­ros, re­bai­xan­do as tex­tu­ras para a malha nova. É o que torna um modelo de cinema um modelo de jogo.
MCP (Model Con­text Pro­to­col)
Pro­to­co­lo que deixa um as­sis­ten­te de IA chamar fer­ra­men­tas ex­ter­nas, como o editor do Godot, o Tripo, o Pi­xel­Lab ou um na­ve­ga­dor con­tro­la­do pelo Play­wright.
Mul­ti­Mesh
Re­cur­so do Godot para de­se­nhar mi­lha­res de cópias da mesma malha de uma vez, usado na mata e na grama.
Portão
Um teste au­to­ma­ti­za­do do pro­je­to: roda sem janela, mede uma coisa es­pe­cí­fi­ca e sai com código 1 quando re­pro­va. O nome de cada um diz o de­fei­to que ele existe para não deixar voltar.
Re­tá­bu­lo
A es­tru­tu­ra de talha dou­ra­da atrás do altar das igre­jas co­lo­ni­ais; o nome da iden­ti­da­de visual do menu do 3D, "Crô­ni­ca do Recôn­ca­vo", e da mol­du­ra que o site e o jogo com­par­ti­lham.
Rig e re­tar­get
Dar es­que­le­to a um modelo (rig) e apli­car-lhe ani­ma­ções feitas para outro es­que­le­to (re­tar­get). No pro­je­to, o rig é feito no Tripo Studio com a es­pe­ci­fi­ca­ção do Mixamo, e as ani­ma­ções pron­tas vêm do mesmo lugar.
Runner
O ro­tei­ro em PowerShell que exe­cu­ta os por­tões: es­co­lhe os afe­ta­dos pela mu­dan­ça, roda em pa­ra­le­lo, isola o perfil, aplica o teto e mata só por PID.
So­bre­voo
O pas­seio de câmera pelo vale atrás do menu de aber­tu­ra, pla­ne­ja­do por uma fer­ra­men­ta pró­pria para con­tor­nar ár­vo­res e casas. Na edição do con­cur­so foi subs­ti­tuí­do por um vídeo.
Taipa
Téc­ni­ca de cons­tru­ção com barro sobre trama de ma­dei­ra; a casa her­da­da pelo jo­ga­dor é uma casa de taipa caiada.
Tra­ves­sia
A aber­tu­ra nar­ra­da em que o jo­ga­dor atra­ves­sa a baía de sa­vei­ro e chega ao píer de ma­dru­ga­da; em 8 de ou­tu­bro passou a atra­ves­sar a noite, para que a par­ti­da comece às seis e meia da manhã.
Xi­lo­gra­vu­ra
Gra­vu­ra im­pres­sa a partir de uma matriz de ma­dei­ra en­ta­lha­da; a téc­ni­ca tra­di­ci­o­nal das capas de cordel, e o estilo das capas dos dez fo­lhe­tos do jogo.
Apên­di­ce D

Como este e-book foi feito


Este livro foi pro­du­zi­do no mesmo es­pí­ri­to do jogo que des­cre­ve: a partir de fontes de­cla­ra­das, com fer­ra­men­tas de in­te­li­gên­cia ar­ti­fi­ci­al sob di­re­ção humana, e com o for­ma­to es­co­lhi­do depois de uma pes­qui­sa sobre o que os for­ma­tos con­sa­gra­dos de livro di­gi­tal exigem. Esta nota resume essa pes­qui­sa e as de­ci­sões que ela ori­en­tou.

Os formatos consagrados

EPUB é o for­ma­to aberto de livro di­gi­tal man­ti­do pelo W3C, na versão 3.3 (re­co­men­da­ção de 2023, com cor­re­ções em 2024 e 2025). É o for­ma­to que a mai­o­ria das lojas e lei­to­res aceita, in­clu­si­ve os Kindle re­cen­tes, que con­ver­tem EPUB por baixo e re­ce­bem EPUB pelo ser­vi­ço de envio da Amazon. Um EPUB é um ar­qui­vo ZIP com regras: o pri­mei­ro item do pacote é um ar­qui­vo cha­ma­do mimetype, sem com­pres­são, con­ten­do exa­ta­men­te application/epub+zip; um di­re­tó­rio META-INF com container.xml aponta para o do­cu­men­to de pacote; o pacote (.opf) traz os me­ta­da­dos Dublin Core obri­ga­tó­ri­os, iden­ti­fi­ca­dor único, título e idioma, mais a data de mo­di­fi­ca­ção em UTC, o ma­ni­fes­to com todos os re­cur­sos e a es­pi­nha com a ordem de lei­tu­ra; e um do­cu­men­to de na­ve­ga­ção em XHTML, de­cla­ra­do no ma­ni­fes­to com a pro­pri­e­da­de nav, deve conter exa­ta­men­te um su­má­rio (toc) e pode conter marcos (landmarks) como capa, página de rosto e início do texto. Os tipos de mídia cen­trais in­clu­em JPEG, PNG, SVG e WebP para ima­gens, TTF, OTF, WOFF e WOFF2 para fontes, CSS e XHTML. O lei­au­te padrão é re­flowa­ble: o texto reflui no ta­ma­nho que o leitor es­co­lher.

PDF é o for­ma­to de lei­au­te fixo: pá­gi­nas de ta­ma­nho de­fi­ni­do, ti­po­gra­fia con­tro­la­da, o mesmo em qual­quer tela. É o melhor para im­pri­mir e para ler num tablet ou com­pu­ta­dor; é o pior num te­le­fo­ne, porque não reflui. A guia de aces­si­bi­li­da­de da DAISY lembra que lei­au­tes fixos di­fi­cil­men­te cum­prem o re­qui­si­to de re­flu­xo das di­re­tri­zes de aces­si­bi­li­da­de web, e por isso ele acom­pa­nha o EPUB, não o subs­ti­tui.

Os for­ma­tos do Kindle (MOBI, AZW3, KPF) são de­ri­va­dos ou pro­pri­e­tá­ri­os; o MOBI é antigo e já não é aceito pelo envio da Amazon. A es­co­lha prá­ti­ca em 2026 é pro­du­zir o EPUB bem feito e deixar a con­ver­são às pla­ta­for­mas. As es­pe­ci­fi­ca­ções de capa da Amazon, usadas aqui como re­fe­rên­cia de mer­ca­do, pedem uma imagem JPEG em RGB com pro­por­ção de pelo menos 1,6 de altura por lar­gu­ra, ide­al­men­te 1.600 por 2.560 pixels.

A estrutura

A ordem das partes segue a prá­ti­ca edi­to­ri­al, in­flu­en­ci­a­da pelo Chi­ca­go Manual of Style e adap­ta­da ao di­gi­tal: capa; folha de rosto; página de cré­di­tos; de­di­ca­tó­ria; su­má­rio; pró­lo­go; o corpo em partes e ca­pí­tu­los; epí­lo­go; apên­di­ces; e a nota sobre a equipe. As guias de au­to­pu­bli­ca­ção re­co­men­dam manter as pá­gi­nas pre­li­mi­na­res en­xu­tas, para que a amos­tra que as lojas mos­tram chegue ao pri­mei­ro ca­pí­tu­lo, e mover agra­de­ci­men­tos e notas longas para o fim. A de­di­ca­tó­ria vai sem título, em itá­li­co, cen­tra­da; a epí­gra­fe de cada ca­pí­tu­lo tem no máximo quatro linhas, com a atri­bui­ção em re­don­do.

Para uma nar­ra­ti­va de não ficção, as mesmas guias su­ge­rem o pró­lo­go e o epí­lo­go como mol­du­ras, caixas la­te­rais para o ma­te­ri­al que in­ter­rom­pe­ria a his­tó­ria, ci­ta­ções de des­ta­que usadas com par­cimô­nia, e um or­na­men­to de aber­tu­ra por ca­pí­tu­lo. Este livro usa todos: a caixa de fundo escuro para listas e ta­be­las, a ci­ta­ção com filete dou­ra­do à es­quer­da para uma frase do pro­je­to, a rosa dos ventos do jogo na aber­tu­ra de cada parte, e uma pausa para a prá­ti­ca ao fim de cada ca­pí­tu­lo, com dicas e lições para ace­le­rar o tra­ba­lho com IA também fora dos jogos. O tempo de lei­tu­ra de cada ca­pí­tu­lo é cal­cu­la­do a 220 pa­la­vras por minuto, e cada pausa diz em que minuto da lei­tu­ra ela cai. Cada grá­fi­co tem uma tabela gêmea no Apên­di­ce B, para quem lê sem ima­gens ou com leitor de tela, e toda imagem tem texto al­ter­na­ti­vo.

A tipografia e o refluxo

O corpo é com­pos­to em Li­te­ra­ta, a fonte que o Google de­se­nhou para a lei­tu­ra longa de livros di­gi­tais, de olho grande e se­ri­fas firmes, que segura bem na tela e no papel; os tí­tu­los ficam em Cinzel, a fonte de ações e tí­tu­los do jogo. Na margem dos pa­rá­gra­fos, as notas ma­nus­cri­tas dos quatro de­sen­vol­ve­do­res têm cada uma a sua ca­li­gra­fia e a sua tinta: Kalam em azul para Matheus, Gochi Hand em ver­me­lho-terra para Ramon, Pa­trick Hand em verde para Renato e Indie Flower em vi­o­le­ta para Pedro. Todas são de li­cen­ça aberta e vão em­bu­ti­das no EPUB. As cores são as da iden­ti­da­de "Crô­ni­ca do Recôn­ca­vo": papel, laca, talha, ouro e co­bal­to. Toda medida do corpo é re­la­ti­va, em em, sem lar­gu­ras fixas, com ima­gens li­mi­ta­das a cem por cento da coluna; é o que a DAISY re­co­men­da para que o con­teú­do reflua a 400% de zoom sem ro­la­gem ho­ri­zon­tal. Na edição pa­gi­na­da, a folha é A4, 210 por 297 mi­lí­me­tros, com mar­gens de 23 a 26 mi­lí­me­tros, texto com hi­fe­ni­za­ção em por­tu­guês, ca­be­ça­lho cor­ri­do com o nome do ca­pí­tu­lo, número de página no rodapé, capa san­gra­da e pá­gi­nas pre­li­mi­na­res sem ca­be­ça­lho. O su­má­rio dessa edição traz o número da página de cada ca­pí­tu­lo e de cada pausa.

A produção

O texto foi es­cri­to por um as­sis­ten­te de código, o Claude Code, a pedido de Matheus Ché, a partir dos his­tó­ri­cos do Git, dos do­cu­men­tos do pro­je­to, do diário e das pá­gi­nas do site, das issues do GitHub e da me­mó­ria do pró­prio as­sis­ten­te, que acom­pa­nhou o pro­je­to desde a pri­mei­ra semana. As ci­ta­ções entre aspas são li­te­rais dessas fontes; as datas e os nú­me­ros foram con­fe­ri­dos nos re­po­si­tó­ri­os em 14 de ou­tu­bro de 2026. As notas ma­nus­cri­tas nas mar­gens são co­men­tá­ri­os em pri­mei­ra pessoa dos quatro de­sen­vol­ve­do­res, re­di­gi­dos a partir dos com­mits de cada um, com a data e o as­sun­to do commit como fonte. As ima­gens são do acervo do pro­je­to: cap­tu­ras do jogo, pin­tu­ras, re­tra­tos e uma com­po­si­ção feita para a capa com uma das pin­tu­ras e o lo­go­ti­po.

Os ca­pí­tu­los foram es­cri­tos como frag­men­tos de HTML e mon­ta­dos por um ro­tei­ro em node em três formas a partir da mesma fonte: o EPUB 3.3, com um va­li­da­dor de XML a cada do­cu­men­to e a con­fe­rên­cia final pelo EPUB­Check 5.4.0; uma página web con­tí­nua; e a edição em folhas A4, pa­gi­na­da no na­ve­ga­dor pelo Paged.js e con­ver­ti­da em PDF pelo Chrome, com su­má­rio de mar­ca­do­res. As ima­gens foram pre­pa­ra­das com a bi­bli­o­te­ca sharp, e os grá­fi­cos são SVG es­tá­ti­cos, com a paleta de duas cores va­li­da­da pelo ve­ri­fi­ca­dor de dal­to­nis­mo e con­tras­te da me­to­do­lo­gia de vi­su­a­li­za­ção de dados usada: co­bal­to e telha sobre papel, com se­pa­ra­ção de cor acima de vinte uni­da­des e con­tras­te acima de quatro para um.

Fontes da pesquisa sobre formato

Apên­di­ce E

Fontes e referências


Todas as fontes do pro­je­to são pú­bli­cas ou estão nos re­po­si­tó­ri­os da equipe. Os ca­mi­nhos de ar­qui­vo re­fe­rem-se aos re­po­si­tó­ri­os em 14 de ou­tu­bro de 2026.

Repositórios e documentos do projeto

O site do jogo

O concurso

Referências citadas nos documentos do projeto

Sobre a equipe

Quatro desenvolvedores, dois jogos, um site


Matheus Ché cuida dos sis­te­mas e das regras. Cons­truiu a maior parte do jogo 2D e levou ao 3D o save, a mo­chi­la, as mis­sões, o al­ma­na­que e os ta­len­tos; tra­ba­lhou a cam­pa­nha, o vigor, as in­te­ra­ções, as cenas e os bancos de teste que acom­pa­nham o avanço do vale. No Git, 258 com­mits no 2D e 173 no 3D, todos em ses­sões com o Claude Code.

Pedro Al­mei­da entrou na semana da tra­ves­sia dos sis­te­mas. Levou ao vale a vida e a queda que acorda na porta da casa de taipa, o cai­ti­tu que anun­cia o bote, as três vagas de sal­va­men­to, o painel J, a co­le­ção, as obras com ganho no corpo, a fala longa com es­co­lha de sim e não, os cor­déis e o pacto no lugar do mito, a pesca, a co­zi­nha e a ofi­ci­na. No Git, 18 com­mits no 3D, todos com co­au­to­ria de IA.

Ramon Santos é o autor de Ba­ta­lha de Mitos e o di­re­tor de Myths' Valley: o enredo, a iden­ti­da­de visual, o mapa real, o som e a pai­sa­gem. Con­du­ziu o Tripo do pri­mei­ro modelo ao lote de level design, im­ple­men­tou as his­tó­ri­as, os mo­ra­do­res e os bichos no 3D, e fez o site, as tra­du­ções, os vídeos e a pu­bli­ca­ção das builds. É ta­ta­ra­ne­to de Pedro No­las­co da En­car­na­ção. No Git, 95 com­mits no 2D e 130 no 3D, parte deles de ses­sões na nuvem.

Renato Leal é o mundo e a jo­ga­bi­li­da­de: o ter­re­no, a mata, a costa e as tex­tu­ras do chão; o pau-brasil e o guia de imagem para modelo 3D; os con­tro­les de mouse, o pulo, a câmera, os rios, o píer e as pontes; o ma­cha­do na mo­chi­la, o corte dos co­quei­ros, o nado, o vigor, o fôlego e o HUD. No Git, 27 com­mits no 3D, sem as­si­na­tu­ra de IA.

Os ro­da­pés de co­au­to­ria re­gis­tram também os as­sis­ten­tes: Claude Opus 5, Opus 5.5, Sonnet 5 e 5.5 e Fable 5.1, pelo Claude Code; e o Codex, pelos do­cu­men­tos de fer­ra­men­tas. A equipe é da Alpha Cen­tau­ri. O jogo está em mythsvalley.app.br, com down­lo­ad para Win­dows, diário, ga­le­ria, al­ma­na­que, mapa e a con­ver­sa com os mo­ra­do­res.

Pintura da praça de Bom Jesus dos Pobres ao amanhecer: o poço de pedra com telhadinho de barro em primeiro plano, um balde ao lado, árvores frondosas, uma casa caiada ao fundo e um riacho descendo entre a mata, sob um céu dourado.
A praça, pin­ta­da. Uma das vinte cenas re­pin­ta­das a partir das cap­tu­ras do jogo, com o poço que o mu­ti­rão da che­ga­da con­ser­ta.