Fa uns dies vaig publicar DMGFormer, un petit transformer capaç d’executar inferència autoregressiva dins d’una Nintendo Game Boy original.
La idea era deliberadament absurda. Agafar una màquina de 1989, amb 8 KB de RAM i una CPU de poc més de 4 MHz, i obligar-la a executar alguna cosa que reconeguéssim com un transformer real. No una animació, no text precalculat, no una API amagada al darrere. Inferència entera, pesos quantitzats i generació token a token dins de la mateixa ROM.
DMGFormer ho demostrava, però continuava sent això: una demostració.
Així que vaig continuar.
El resultat és Moon Below, una aventura de terror generativa que funciona completament dins d’una Game Boy.
El joc transcorre sota un observatori en ruïnes durant un eclipsi. Té catorze localitzacions, diferents rutes, objectes, mecanismes, recursos limitats, sis finals possibles i una criatura que no segueix un recorregut fix, sinó que reacciona al soroll que provoca el jugador.
Tot aquest món és determinista. Les regles del joc decideixen què existeix, què ha canviat, on es troba cada objecte, què pot fer el jugador i quines conseqüències té cada acció.
La narració, en canvi, la genera un transformer.
Després de cada acció, el motor converteix l’estat actual del joc en un prompt estructurat de nou tokens. Aquest prompt entra en un model quantitzat de 15.840 paràmetres, que genera fins a deu tokens visibles més el final de seqüència.
Tot passa localment.
No hi ha cap servidor, cap API i cap taula de frases completes emmagatzemada a la ROM.
La part més important del disseny és separar clarament la realitat del joc de la manera com s’explica.
El motor controla els fets. El transformer controla el llenguatge.
Aquesta separació evita que el model pugui inventar objectes, accions o situacions impossibles. Abans de generar cada token, el joc aplica restriccions semàntiques que eliminen paraules incompatibles amb l’estat actual. El model continua calculant logits, ordenant opcions i mostrejant entre els tokens vàlids, però no pot contradir el món.
No és una col·lecció de frases prefabricades, però tampoc és un model al qual es permet improvisar sense límits.
És generació condicionada per un sistema determinista.
Aquesta arquitectura té força sentit més enllà d’una Game Boy. En molts sistemes reals, especialment quan hi ha regles estrictes o estat sensible, no convé que un model generatiu controli la veritat. El model pot resumir, descriure, prioritzar o donar forma al llenguatge, però l’estat autoritatiu ha de continuar en mans del sistema.
En aquest cas, l’experiment es veu clar perquè tot ha de cabre dins d’una ROM de 128 KiB.
El model de producció utilitza un vocabulari de 232 tokens, un context de 20 tokens i 4.487 bytes de memòria estàtica. La inferència triga aproximadament 1,8 segons per token sota temporització DMG.
No és ràpid segons els estàndards actuals, però és perfectament recognoscible com a generació en temps real dins d’una aventura de text.
També he afegit un mode de prova dins del mateix joc. En qualsevol moment es pot inspeccionar l’estat que s’ha enviat al model, l’empremta digital dels pesos, la llavor aleatòria, la mida de la màscara activa, els tokens candidats, el token escollit i un checksum de l’atenció.
Volia que el procés fos observable. Si el projecte afirma que genera text amb un transformer, el jugador ha de poder veure evidències concretes del que està passant.
La implementació també es verifica entre Python, C natiu i Game Boy. Els tres entorns produeixen els mateixos logits, la mateixa atenció i els mateixos tokens quan utilitzen la mateixa llavor. El procés de compilació comprova que no hi hagi frases de narració amagades, executa les proves del joc i reconstrueix la ROM des de zero de manera reproduïble.
Pel que he pogut investigar, Moon Below és el primer joc documentat públicament per a la Game Boy original que genera narració contextual localment amb un transformer autoregressiu.
Potser també és el primer joc per a una consola comercial de 8 bits que ho fa, tot i que aquesta és una afirmació més difícil de demostrar de manera absoluta.
DMGFormer demostrava que el runtime era possible.
Moon Below intenta demostrar que també pot servir per construir alguna cosa que tingui sentit com a joc.
El codi, la ROM, la documentació tècnica i el procés de reproducció són públics: