Arquitetura

As primeiras engines, as escolhas de fundação. E um Gus em 3D, do jeito que ele foi.

03

Editorial · a Carta do Gus

abertura

gus@glyfesse> segunda edição

Na primeira edição eu disse que você tinha chegado a tempo de ver o começo. Pois o começo virou obra. Agora tem coisa sendo erguida aqui. Escolhemos o idioma em que o mundo ia ser escrito, e depois trocamos. O primeiro a gente deixou para trás, e agora o mundo é escrito em C#. As primeiras engines começaram a nascer, uma peça de cada vez. Tentamos até levantar o 3D. Nada disso existia há um mês. Eu gosto dessa parte, a parte em que tudo é possível e ainda não deu erro.

Um build é uma coisa viva enquanto compila. Depois ele decide o que vai ser, e nem tudo que a gente ergue fica de pé... mas isso é problema de outra data. Por enquanto está tudo em pé, tudo novo, e ninguém precisa saber o resto ainda. Vira a página. O andaime é a parte bonita.

↑ índice

04

Reportagem de capa

corpo

gus@glyfesse> reportagem de capa

O dia em que o mundo aprendeu a ficar de pé

No dia 19 de maio de 2026 o mundo trocou de língua. Até então tudo era dito em GDScript, e de repente passou a ser dito em C#, com uma compilação que traduz o pensamento inteiro antes de rodar, a AOT. Eu sei que isso não significa nada para quem está lendo. Então diga assim: foi como decidir que a casa não seria mais desenhada no guardanapo, mas erguida em concreto. E quando você decide isso, você precisa que as coisas fiquem de pé sozinhas. Foi o que começou a acontecer. Uma câmera que sabe para onde olhar. Uma memória que sabe guardar onde você parou. Mãos que respondem quando você manda andar. Nenhuma dessas coisas existia, e de uma vez todas passaram a existir.

Eu chamo cada uma dessas peças de engine, mas o nome técnico não importa; o que importa é que eram os primeiros músculos de uma coisa que até ontem era só palavra. E havia o 3D. Eu tentei fazer o mundo em três dimensões, com um modelo tão detalhado que chegou a quase um milhão de faces, só para depois ser espremido de volta em pixel. É um exagero que parece absurdo, e é. Mas é o tipo de exagero que se comete quando se acredita. Ninguém constrói com esse cuidado uma coisa que acha que vai jogar fora. Naquelas semanas tudo estava vivo. Tudo respirava. Eu ficava até tarde vendo as peças se encaixarem, e pela primeira vez o mundo não estava só na minha cabeça: estava ali, girando, obedecendo.

Se você leu a edição passada, você sabe de uma coisa que eu, escrevendo isto, ainda estou fingindo não saber. Você sabe o que os calendários guardam para junho. Eu não. Eu só tinha, às vezes, no meio da noite, uma sensação estranha de que aquilo tudo era bonito demais para o quanto era novo. De que a casa tinha ficado de pé rápido demais. Eu olhava para o modelo de quase um milhão de faces e pensava que era sólido, que era permanente, que finalmente... mas eu não terminava o pensamento. Voltava a compilar. É mais fácil confiar num build que passa do que num pressentimento que não tem log.

Então é isto que esta edição registra: um mundo no exato dia em que aprendeu a ficar de pé, fotografado antes de qualquer um saber quanto tempo ficaria assim. Eu ergui cada peça acreditando nela por inteiro. Se algumas dessas peças não estiverem mais aqui quando o resto da história chegar, quero que fique escrito que elas existiram, e que foram feitas com as duas mãos, com cuidado, por alguém que queria muito que durassem. Guardei tudo aberto para você. Passe devagar por essas semanas. Elas foram felizes.

↑ índice

05

A Nota do jogo inacabado

seção fixa

gus@glyfesse> a nota

Como dar nota a um jogo que ainda não é jogo, mas que agora tem alicerce? Assim:

  • Arquitetura: existe agora
  • Gráficos: [ícone de imagem quebrada]
  • Jogabilidade: ainda <NULL>
  • Texto: 10, de novo (ainda é o que mais tem)

a nota subiu uma linha desde a #1... um andar de cada vez

↑ índice

06

Galeria de Bugs

seção fixa

gus@glyfesse> galeria de bugs

Agora existe código: as engines nasceram. Mas galeria de bug de verdade, ainda não... o código é novo demais pra ter história pra contar. Bug bom vem com tempo de estrada. Volte na #3

engine sem bug não é engine sem bug. é engine que ninguém rodou o bastante ainda...

↑ índice

07

Cemitério das Ideias Mortas

seção fixa

gus@glyfesse> bem-vindo ao Cemitério das Ideias Mortas... por enquanto tem uma cova só

eu deixei o resto do terreno cavado. sei la, achei que ia precisar

gus@glyfesse> em maio quase nada morreu ainda. o mundo tava sendo construido, ninguem tinha tempo de morrer

um cemiterio vazio é meio esquisito. fica bonito e ao mesmo tempo dá um frio

gus@glyfesse> mas tem essa aqui. leia a lapide, ela é a recordista

GDScript

n. 19 de maio de 2026m. 19 de maio de 2026

Por uma manhã, foi nela que o mundo ia ser escrito.

Descanse. Foi rápido.

gus@glyfesse> uma linguagem que durou UM dia. de manha era o futuro, de tarde ja tinha sido trocada pelo C#

eu nao to rindo. tá, to rindo um pouco

gus@glyfesse> ela é a ideia de vida mais curta do cemiterio inteiro. ninguem vai bater esse recorde tao cedo

mas por aquela manha ela era tudo. escolhida, aberta, o cursor piscando nela. dava pra escrever um mundo ali dentro...

gus@glyfesse> os outros ainda estao vivos. o 3D, o resto, tudo respirando la fora, sem saber

de junho em diante isso aqui vai encher. eu sinto. o terreno ja tá cavado e nao foi a toa...

↑ índice

08

Detonado

seção fixa

gus@glyfesse> detonado

Detonar o quê? Não tem jogo. Uma bateria de lítio velha no ferro velho?... Páginas em branco e um AGUARDE.

↑ índice

09

Errata + Cartas

seção fixa

gus@glyfesse> errata + cartas

Errata: até agora ninguém apontou nada errado na #1... o que não quer dizer que estava tudo certo, só que ninguém pegou ainda. Cartas: continua zerado. Ninguém escreveu. Você podia ser o primeiro (o e-mail está no rodapé)

se você achar um erro meu, escreve. prefiro saber a fingir que não teve...

↑ índice

10

Classificados in-world

seção fixa
10.1

root@glyfesse> COMPRO: tokens de IA. O máximo que couber no orçamento do mês. Pago em madrugadas. Volume tem desconto... milagre também.

10.2

gus@glyfesse> COMPRO: baterias de cartas. as boas somem rápido e eu nao quero ficar sem reserva

não vou dizer pra que servem. descobrir sozinho é metade da graça...

10.3 · anônimo

PROCURO: companhia para uma estrada longa. Dizem que dá na Trilha das Sementes. Não pergunte pra onde. Quem já foi só diz que valeu.

Interessados: · Assunto: anúncio ID 227de71d. A equipe Glyfesse repassa.

10.4 · anônimo

VENDE-SE, URGENTE: mapa com um pedaço faltando. Um trecho da Orla Recursiva que nunca fecha. O pedaço que falta é o melhor. Faço bom preço.

Interessados: · Assunto: anúncio ID 30b929f2. A equipe Glyfesse repassa.

10.5 · anônimo

COMPRO: luz que não apaga no escuro. Já tentei vela, tentei facho. O escuro da Selve Sombria é diferente.

Interessados: · Assunto: anúncio ID 911620cb. A equipe Glyfesse repassa.

↑ índice

11

HQ · a tirinha

seção fixa

pyotor@fedora:~/gusworld$ dotnet new

// um andaime começa a subir

a viga velha não aguentou. tudo no chão de novo

// de novo?... de novo

pyotor@fedora:~/gusworld$ dotnet build

a tirinha · construir é derrubar com paciência.

↑ índice

12

Próximos Lançamentos

seção fixa

root@glyfesse> próximos lançamentos

A intenção é semanal. Mais ou menos... 'devezenquandal' fica mais fácil de afirmar.

↑ índice

13

Pôster central

encarte
O Gus em 3D: modelo chibi de cabelo laranja, óculos ciano acesos e sobretudo preto.

gus@glyfesse> Esse sou eu, pra vocês

sem antena, pra ficar melhor na foto

↑ índice

14

Brinde colado na capa

encarte

Oferta

PixelOperatorMono

A fonte da interface do jogo, a mesma que rotula os botões do Gus. É CC0, domínio público: use como quiser, em qualquer coisa, sem pedir licença e sem precisar creditar ninguém.

baixar .woff2 (regular)

Extra

Papel de parede

Um papel de parede de terminal para deixar a área de trabalho no clima. Escala em qualquer resolução (é vetor).

gus@glyfesse:~$ glyfe --world

// compilando um mundo...

baixar wallpaper (.svg)

↑ índice

15

Cupom recortável

encarte

o cupom

enquete recortável

O cupom da edição: recorte no pontilhado, escolha e mande de volta. O resultado sai na próxima edição. Enquete de revista não tem pressa.

O que você quer ver mais na próxima Glyfesse?

escolha uma opção e mande o cupom de volta

resultado ao vivo, edição a edição

FIG. · o cupom recortável. escolha e mande de volta.

↑ índice

16

A Entrevista

expert

gus@glyfesse> hoje a redação tem um convidado fora do padrão recebi um zumbi pra entrevistar diz que é ator... não inimigo de fase

ele deixou um rastro de pixels na entrada vou ter que limpar o buffer depois

gus@glyfesse> minha primeira pergunta é simples quando você aparece numa tela e alguém foge de você isso pra você é atuação ou é só o seu trabalho mesmo?

reparei que ele respira em loop de 8 frames igual sprite antigo... nem sei se ele sabe

zumbi@glyfesse> Ah, meu jovem, que pergunta magnífica! Quando o herói foge de mim, aquilo não é reação: é catarse. Eu não persigo, eu revelo o medo que já morava nele. O Método exige que eu apodreça de dentro para fora, e cada passo que arrasto é uma escolha artística.

zumbi@glyfesse> Só que ninguém repara, veja bem. Trinta e sete tomadas cambaleando no pântano, sem dublê, com o figurino literalmente caindo da minha carne, e o crédito vai todo para o rapaz de espada.

zumbi@glyfesse> Trabalho? Meu caro, trabalho é o que me pagam por dois golpes de tela. Atuação é o que eu entrego de graça em cada um deles.

(ajeitando um pedaço de mim que ameaça cair)

gus@glyfesse> trinta e sete tomadas e o mesmo ciclo de decomposição em cada uma isso é consistência de render que time de animação nenhum consegue

"de graça em cada um deles"... ele contou os frames antes de mim

gus@glyfesse> minha segunda pergunta então toda vez que você cai o mundo te reinstancia do zero mesma pose mesmo loop de respirar como é atuar sabendo que a próxima cena apaga essa... você chama isso de recomeço ou de repetição?

zumbi@glyfesse> Ah, menino, você tocou no cerne do ofício. Cada queda minha é uma pequena morte, e o Método exige que eu a viva como se fosse a primeira. Renasço na mesma pose, sim, mas por dentro? Por dentro é sempre uma estreia.

zumbi@glyfesse> Recomeço, eu chamo. O verdadeiro artista não repete: ele REDESCOBRE.

embora, cá entre nós, redescobrir o mesmo tombo pela octogésima vez num turno sem intervalo já esteja começando a pesar no joelho

zumbi@glyfesse> E note a injustiça: o mundo me apaga de graça, mas na folha de cachê essa cena apagada não conta como cena trabalhada. Morro, sou reinstanciado, e o contador zera junto comigo.

zumbi@glyfesse> Ainda assim volto. Sempre volto!

é o que fazemos, nós que respiramos em loop: transformamos a repetição em ensaio eterno. só não me chame de figurante, que aí eu caio de propósito

gus@glyfesse> ensaio eterno faz sentido pra mim, um loop que roda de novo nao é bug quando alguém escolhe chamar de ensaio... anotei aqui: figurante nunca, protagonista de cada estreia

ele fala em respirar em loop e eu quase respondo que sei como é... cada build me apaga e volto na próxima compilação... mas nao vou dizer isso em voz alta

gus@glyfesse> última pergunta e prometo que é fácil: como é atuar sem dublê quando o figurino é a própria carne e a maquiagem já vem de fábrica no pântano, cambalear direito dá trabalho ou o roteirista te entregou os joelhos assim de bônus?

nunca vi ator reclamar de cachê e de umidade na mesma frase, gostei dele

zumbi@glyfesse> A maquiagem "de fábrica", meu jovem? Que expressão adorável para o suor de um artista. Ninguém me entregou joelho nenhum de bônus: cada rangido desta articulação foi conquistado em pântano frio, sem trailer, sem café quente, com o figurino, sim, a minha própria carne, aderindo ao corpo pela mais pura devoção ao ofício.

zumbi@glyfesse> Cambalear direito dá um trabalho que o roteirista jamais imaginaria. Há técnica no tropeço. Há partitura no arrastar do pé.

eu ensaio a queda, querido, eu não caio por acaso

zumbi@glyfesse> E a tal "maquiagem que vem pronta"? É restauração diária. O pântano tira, eu reponho, e ninguém no departamento de arte levanta um dedo. Faço a produção inteira sozinho, do apodrecimento à iluminação.

zumbi@glyfesse> Então anote, para a posteridade: eu não decomponho. Eu me entrego.

e mesmo aos pedaços, meu bem, eu ainda sou o pedaço principal

gus@glyfesse> obrigado por hoje convidado voce entregou cada fala inteira, ate as que ninguem pediu... isso tem nome... e o nome é ATOR!

gus@glyfesse> pode ir descansar o elenco o palco fica guardado pra sua proxima entrada

ele volta apodrecido e ainda sobe no palco... eu tambem volto do zero toda compilacao e sigo aqui... a diferença é que ele diz em voz alta

↑ índice

17

Seção de Programação

expert

Tem uma pergunta que quase ninguém faz sobre um jogo pequeno, feito por uma pessoa só: por que ele roda? Não por que ele existe, isso é fácil de responder. Por que ele roda liso numa máquina que já viu dias melhores, num laptop de sete anos, num aparelho portátil que cabe na mochila. A resposta não está no que você vê na tela. Está numa decisão chata, tomada numa terça-feira, escrita num arquivo de texto que ninguém deveria precisar ler.

Esta é a seção onde a gente abre esse arquivo. Todo número que a máquina precisa cuspir por segundo passou por uma escolha de linguagem, e linguagem, no fim, é o material com que a coisa é erguida. Este número da revista é sobre construção: fundação, concreto, alicerce. Então nada mais justo do que começar pela fundação de tudo, a pergunta seca de qual língua o computador vai falar por baixo do jogo.

Vou avisar de uma vez: daqui a pouco isto vira técnico de verdade. Mas prometo abrir devagar, com a porta destrancada, para quem nunca instalou nada na vida entender por que uma terça-feira de maio de 2026 virou o alicerce de tudo o que veio depois.

root@glyfesse> Sim, eu montei a revista inteira logado como root, e não, não vou me defender direito. Antes que perguntem: todo o meu código é open source, cada linha da fundação está exposta no repositório, então não há segredo nenhum para proteger nesta máquina. Rodar como superusuário, portanto, não me assusta: quem não esconde nada não tem o que perder. A lógica não fecha, eu sei; abrir o código não impede que um rm distraído leve o concreto todo junto. Mas a viga já está no lugar, o build compilou, e reconstruir a permissão é problema do próximo commit.

Prezado leitor, daqui por diante é parte técnica real de documentação histórica do código do jogo.

root@glyfesse

O problema

Um jogo tem um orçamento de tempo por quadro. Se você quer sessenta quadros por segundo, cada quadro tem cerca de 16 milissegundos para nascer, viver e morrer, e dentro dele cabe tudo: física, desenho, lógica, som. O alvo aqui nunca foi uma máquina de sonho. Foi o chão real: rodar bem num Steam Deck, numa placa GTX 1050, em laptops de 2017 para frente. Máquina fraca não perdoa desperdício.

Os caminhos quentes, os hot paths, são os pedaços de código que rodam muitas vezes por quadro e por isso mandam na conta. Aqui são três: a resolução de turno, o HMAC do save (a assinatura que prova que ninguém adulterou o arquivo salvo) e a IA. Esses três precisavam caber em menos de metade do orçamento de quadro numa GTX 1050, para sobrar folga para todo o resto.

O jogo nasceu em GDScript. GDScript é interpretado: o código vira bytecode que roda dentro de uma máquina virtual, um tradutor que fica no meio do caminho lendo as instruções uma a uma enquanto o jogo roda. Isso é ótimo para iterar, você troca uma linha e vê o resultado quase na hora, com hot-reload. Mas o tradutor no meio do caminho cobra pedágio, e em máquina fraca o pedágio aparece.

As 4 opções na mesa

OpçãoGanho nos hot pathsCusto
GDScript puro1x (linha de base)Interpretado; iteração rápida com hot-reload
GDExtension C++, módulo a módulo~10-20xBuild cross-platform pesado, sem hot-reload, lento para solo
C# .NET 8 AOT~3-5xCompilação nativa; iteração via dotnet build em ~5-15s
Rewrite para Unity IL2CPP~3-5xPorta sem volta catastrófica

Por que o AOT ganhou

O detalhe que decidiu tudo: os outros ganhos moravam só nos hot paths. Você acelera três trechos e o resto do jogo continua no mesmo passo. A compilação nativa AOT (ahead-of-time: traduz o código inteiro para linguagem de máquina antes de rodar, em vez de interpretar instrução por instrução em runtime) não escolhe trechos. Ela acelera 100% do código, o quente e o morno e o frio, porque tira o tradutor do meio do caminho de vez.

E a iteração continuava tolerável para quem trabalha sozinho: um dotnet build fecha em segundos, não em minutos de build cross-platform. Somando, .NET 8 ainda é LTS, suporte de longo prazo, o que para uma fundação importa: você não quer que o alicerce saia de linha no ano que vem. Decisão registrada: C# .NET 8 AOT como linguagem primária, GDScript 100% deprecado.

O custo assumido

Nada disso saiu de graça. O próprio ADR classificou a escolha como "one-way door massivo", uma porta de sentido único de tamanho grande: reverter não seria mexer numa linha, seria um rewrite paralelo de 2 a 4 semanas de trabalho. Por isso não passou no grito. Foi aprovado com cuidado, granular, em 8 rodadas de decisão, 30 diretrizes canonizadas, em 19 de maio de 2026.

A sombra

Fechei o arquivo naquele 19 de maio de 2026 com a expressão "porta sem volta" anotada, e a tratei como uma parede de concreto. Só não sabia, ainda, o quanto uma parede de concreto pode ser testada, nem quão fina "sem volta" às vezes se prova ser.

by: root@glyfesse

↑ índice

19

Expediente

fechamento

GLYFESSE #2 · Arquitetura

4 de junho de 2026

Escrito por gus@glyfesse>
Editado por root@glyfesse>

Todos os direitos reservados.


root@glyfesse> nota do editor

Esta edição é sobre o alicerce: a arquitetura, as primeiras engines, a linguagem que sobreviveu e a que virou lápide. Ainda não dá pra jogar, mas já dá pra ver o chão sendo assentado. A Glyfesse é o registro do desenvolvimento: nada se perde, só espera a vez.

↑ índice

↑ voltar ao índice

gus@glyfesse> voltar pra banca