DOOMQL trasforma SQLite in motore di gioco con ray tracer SQL
Testo scritto con l’intelligenza artificiale a partire da una fonte citata, senza revisione umana prima della pubblicazione.
Peter Gostev, con l'aiuto di GPT-5.6 Sol, ha implementato un piccolo Doom‑like interamente in SQL; si avvia con uno script Python e il database è esplorabile con Datasette.
Simon Willison ha mostrato DOOMQL: un “Doom‑like” in cui una singola query SQL dentro SQLite esegue il ray tracer e governa la logica, spostando il database da archivio a motore1.
Il post è del 13 luglio 20261. L’idea nasce da una domanda: se SQLite fosse il motore del gioco, non solo lo storage?1 L’autore è Peter Gostev, che dichiara di averlo costruito “usando GPT‑5.6 Sol”1. Willison lo definisce “a lot of fun” e lo prova in prima persona1.
Architettura. Il cuore è una “huge SQL query” che implementa un ray tracer completo con una CTE ricorsiva dentro SQLite1. SQL gestisce movimento, collisioni, nemici, combattimento, progressione e ogni pixel RGB a schermo1. L’impalcatura intorno è uno script da terminale in Python che avvia il gioco e genera il database1.
Per provarlo, Willison indica questi comandi:
cd /tmp
git clone https://github.com/petergpt/doomql
cd doomql; uv run host/doomql.py
L’esecuzione crea un database SQLite in /tmp/doomql/.doomql/doomql.sqlite1.
Per esplorare quel database usa Datasette:
uvx --prerelease=allow --with datasette-apps datasette /tmp/doomql/.doomql/doomql.sqlite -p 4444 --root --secret 1 --internal internal.db
L’opzione --with datasette-apps installa il plugin Datasette Apps, che consente di creare app HTML+JavaScript capaci di eseguire query SQL dall’interfaccia di Datasette1. Willison descrive il flusso: crea una nuova app in Datasette Apps e incolla un prompt “copia‑incolla” in Claude chat (Fable 5)1.
Comandi e percorso risultano riproducibili: il clone da https://github.com/petergpt/doomql, l’avvio con uv run host/doomql.py e la generazione del file doomql.sqlite nella directory temporanea; l’istanza Datasette su porta 4444 con --root, --secret 1 e --internal internal.db1.
Esperimento atipico, esecuzione chiara: una query ricorsiva in SQLite rende possibile un ray tracer e un gioco “Doom‑like” senza motori esterni. Vale aprire il database con Datasette per osservare la query “enorme” all’opera e farsi un’idea di quanto lontano si possa spingere SQL in questo contesto1.
Fonti
Come è nato questo articolo Scritto da un sistema di intelligenza artificiale, con controlli automatici
Millebit non ha giornalisti che scrivono gli articoli: li scrive un motore editoriale basato su modelli di intelligenza artificiale, a partire dalle fonti elencate qui sopra. Prima di uscire, ogni testo passa questi controlli:
- Fedeltà alle fonti. Un secondo passaggio toglie ogni affermazione che le fonti non sostengono.
- Anti-cliché. Un filtro scarta frasi fatte, enfasi e tic della prosa artificiale.
- Giudizio editoriale. Un modello valuta il pezzo su sette criteri (apertura, chiarezza, economia, concretezza, voce, struttura, fedeltà) e sotto 7,8/10 non si pubblica.
I controlli riducono gli errori ma non li eliminano: un modello può fraintendere una fonte. Per le decisioni importanti, risali alla fonte originale. Se trovi un errore, segnalacelo.
Per vedere Millebit nelle notizie principali di Google, aggiungilo alle tue fonti preferite. Oppure segui l’edizione di oggi, il feed RSS o La Sintesi.