Emm Tee ha costruito PaperRoute, un gioco completo ispirato a Paperboy, usando GPT 4.1 Astra e Blender. E quando dico completo intendo completo davvero — non l’ennesima demo che fa bella figura su X per un giorno e poi sparisce.
Il gioco è online su paperroute.lol. Stile anni ’80 rivisitato, consegne in bicicletta in un quartiere americano, fisica balistica per i lanci dei giornali, cani che ti inseguono, finestre che si frantumano. Tutto generato da un modello AI che scrive codice e script Python per Blender.
La differenza tra un demo e un gioco vero
Questo è il punto che Emm Tee martella per tutto il thread: fare un one-shot impressionante è una cosa. Costruire qualcosa che la gente voglia giocare due volte è un’altra storia.
‘Non puoi arrivare a un gioco bello e completo con un solo prompt. Finisci solo con della robaccia’ scrive. E lo dice uno che ci ha passato 27 ore e 43 minuti tracciati, non stimati, bruciando 1,47 miliardi di token. Sì, miliardi.
Il workflow che ha funzionato
Prima ha separato meccaniche e art direction. Due stream paralleli nello stesso thread — cosa che normalmente non si fa, ma Astra gestisce meglio di altri modelli. Puoi interromperlo, cambiare registro, e non perde il filo.
Le meccaniche prima: fisica dei lanci, steering, collisioni, punteggi. Sei commit prima di mezzanotte del primo giorno, con i test automatici scritti dall’agente stesso. Quei test sono tornati utili ogni volta che toccava l’aspetto visivo.
L’art direction dopo, con un trucco furbo: ha usato ChatGPT per generare mood board e concept art — ‘brezza estiva giapponese con texture dipinta’, zero riferimenti a Ghibli — e poi ha alimentato Astra con quelle immagini come base stilistica.
Blender senza aprire Blender
Ogni casa, albero, recinzione, cassetta postale nel gioco è uno script Python che Blender esegue headless. Niente interfaccia grafica, niente MCP. Solo codice che genera mesh, divide i materiali ed esporta GLB.
Sette famiglie di case entro le dieci del mattino del secondo giorno. Il vantaggio: ogni asset è riproducibile. Se qualcosa va storto con una texture o un’animazione, non stai litigando con il modello sulla fisica dei lanci nello stesso thread.
Quando Astra non basta: Meshy
Il personaggio principale sembrava un pupazzo di legno. Astra è brava con case e oggetti semplici, ma i volti no.
Soluzione: concept in ChatGPT, caricamento su Meshy (8 dollari per 300 generazioni), download del modello 3D, semplificazione poligonale in Astra. ‘E boom, hai un modello custom che non fa schifo.’
Il personaggio finale ha 88.550 triangoli — parecchi per un gioco mobile. I 60fps stabili su telefono non sono garantiti: una run li ha tenuti, un’altra è scesa a 58. Lo dice lui.
L’80% del tempo è stata rifinitura
Dettagli. Animazioni custom. UI curata. Sistema meteo con pozzanghere, schizzi, segni degli pneumatici. Una giornata di pioggia completa. L’effetto finestra frantumata con camera dedicata che zooma, tiene sull’impatto, poi torna sul ciclista.
‘I giochi one-shot non hanno dettagli. Non hanno sforzo’ scrive. La differenza tra una demo virale e qualcosa che vale la pena rigiocare sta tutta lì.
Trenta commit che leggono come il taccuino di un sarto: ‘Ripara geometria abiti ciclista’, ‘Ricostruisci maniche e braccia’, ‘Preserva orlo pantaloncini’. Rig con 23 ossa, tre solo per i capelli e tre per l’orlo della maglietta così si muovono con la velocità.
Review loop: il vero lavoro
Ha capito a metà processo che il review rendering è il cuore del workflow. Script di cattura che mettono il personaggio Three.js in pose di sterzo, lancio, sprint e caduta. Render da davanti, lato, dietro, turnaround clay ogni volta.
‘Quando qualcosa è sbagliato punti al frame, dici che il cappellino non copre i capelli, e quello è il prompt.’
Il 60-70% dei miglioramenti tra render 1 e render 2 sono arrivati facendo fare all’agente l’auto-review: guardare il lavoro, isolare il modello, renderizzarlo, mandarlo in review, poi scrivere il prompt di correzione.
I numeri
DevClocked ha tracciato tutto dal primo commit del 1° luglio al lancio dell’8 settembre:
• 27 ore e 43 minuti di attività tracciata
• 1,47 miliardi di token (la maggior parte cached reads)
• 94 stream AI registrati
• 69 checkpoint con screenshot
C’è un asterisco: a luglio aveva tentato di fare tutto in Swift nativo per iOS con RealityKit. Otto commit, poi due mesi di pausa. Quel tentativo è nei numeri ma non ha prodotto nulla che sia finito online.
Il rebuild per browser di settembre? Quattro giorni di build, un quinto per lanciare. ‘Se fossi partito dal browser avrei avuto qualcosa di giocabile dal primo giorno.’
Cosa non funziona ancora
I 60fps sostenuti su mobile non sono provati. Il personaggio Meshy pesa 88.550 triangoli perché ha tenuto il volto originale, e non ha ancora fatto benchmark su dispositivo reale.
Lo dice lui, e vale più di mille demo perfette su X.
Se vuoi replicarlo
Scrivi il brief con parole tue. Scegli il riferimento più vicino a quello che vuoi anche se è la cosa che ‘non puoi clonare’.
Dai al modello il brief e due o tre immagini rough. Trattieni l’art direction finché le meccaniche non sono giocabili.
Tieni motore e grafica come conversazioni separate.
Costruisci i props in Blender da Python: ogni asset resta riproducibile.
Quando un personaggio ha bisogno di un volto: concept in ChatGPT, mesh da Meshy, poi ad Astra per ridurre, riggare, adattare.
Review render a ogni cambio. Tieni un giorno per le rifiniture — meteo, effetti speciali, animazioni di contorno — perché quello fa la differenza tra una run e dieci.
Traccia ore e token. Vorrai saperlo.
Poi mettilo online. PaperRoute sta su paperroute.lol con ogni checkpoint, render e ora documentata.
Il gusto è ancora il fossato. E la pazienza.
