Luca Cappellaro

Nell'universo informatico, ci sono domande che dividono gli utenti: è meglio Linux o Windows? Android o iOS? PlayStation o Xbox? Eppure, c'è una domanda su cui tutti concordano: può far girare Doom? Specialmente perché la risposta a questa domanda, la maggior parte delle volte, è sì. Ma cosa rende questo gioco così speciale?

Ciò che rende Doom un fenomeno unico è la straordinaria portabilità del suo codice. Grazie a una struttura semplice ma efficace, Doom è stato portato su un'infinità di piattaforme, dai computer ai frigoriferi smart. Questo è possibile grazie al codice sorgente reso pubblico e alla sua architettura modulare, che permette agli sviluppatori di adattarlo facilmente a nuovi dispositivi. Questo ha dato vita ad un vero e proprio movimento dedito a far girare Doom su qualunque tipo di dispositivo, al punto da considerare, scherzosamente, la capacità di far girare Doom su queste piattaforme il loro vero banco di prova.

Doom, il benchmark che ha ispirato generazioni di sviluppatori

Doom, rilasciato nel 1993 da id Software e creato dai leggendari John Carmack e John Romero, ha ridefinito il genere degli sparatutto in prima persona, diventando un'icona culturale del mondo videoludico. Ambientato in una base spaziale su Marte invasa da demoni, il gioco ha conquistato i giocatori con il suo ritmo frenetico, il design complesso dei livelli e il supporto al multiplayer competitivo su reti locali, un'innovazione straordinaria per l'epoca.

Doomguy combatte due zombieman, un imp e uno shotgun guy in uno dei primi livelli di Doom.

Il motore di gioco, noto come Doom Engine, rappresentava un capolavoro tecnico. Scritto principalmente in linguaggio C con porzioni critiche in Assembly per ottimizzare le performance, sfruttava una combinazione intelligente di tecniche per simulare ambienti tridimensionali su hardware a 16-bit. Una delle sue principali innovazioni era l'uso del raycasting e del Binary Space Partitioning (BSP), una tecnica di suddivisione spaziale che consentiva di organizzare e rendere efficienti i calcoli per la visualizzazione delle geometrie del livello, riducendo drasticamente i tempi di rendering. Questo approccio permetteva di ottenere prestazioni fluide anche su hardware limitato.

A differenza dei veri motori 3D moderni, il Doom Engine utilizzava un sistema di "piani" bidimensionali per definire le mappe, a cui venivano aggiunte informazioni di altezza per simulare ambienti complessi. Le stanze non potevano sovrapporsi verticalmente, ma la prospettiva e il texture mapping avanzato creavano l'illusione convincente di uno spazio tridimensionale. Per la gestione degli elementi visivi come mostri e oggetti interattivi, venivano utilizzati sprite bitmap bidimensionali orientati in base alla posizione del giocatore.

Un altro aspetto geniale del motore era la modularità del codice: i livelli e le risorse erano organizzati in file WAD (acrostico di Where's All the Data), un formato che consentiva di caricare e sostituire facilmente contenuti. Questa struttura flessibile ha alimentato una prolifica scena di modding, che ha visto la creazione di nuovi livelli, campagne personalizzate e persino conversioni totali del gioco.

L'ottimizzazione del motore era impressionante anche sul fronte audio: utilizzava un sistema di mixing efficiente per supportare colonne sonore in formato MIDI e effetti sonori digitalizzati, garantendo un'esperienza coinvolgente su hardware con capacità limitate. Nel 1997, il rilascio del codice sorgente ha trasformato Doom in un vero banco di prova per sperimentazioni tecniche. Grazie alla sua architettura ben progettata, il gioco è stato portato su dispositivi improbabili come smartwatch, calcolatrici grafiche e persino stampanti, consolidando il suo status di benchmark universale per la portabilità del software. Vediamo dunque alcuni dei dispositivi più impensabili su cui è stato fatto girare Doom!

Doom su una rete neurale

Nel 2024 gli ingegneri di Google sono stati in grado di simulare in tempo reale Doom sulla propria rete neurale grazie a GameNGen, un modello di intelligenza artificiale che ha riprodotto Doom a 20fps tramite tecniche di generazione delle immagini derivanti da Stable Diffusion.

A differenza dei tradizionali motori 3D che utilizzano geometrie statiche e rendering in tempo reale, GameNGen sfrutta un modello di diffusione, un tipo di rete neurale profonda che predice il prossimo stato del gioco basandosi su una sequenza di frame precedenti. Questo approccio è reso possibile grazie all'uso di Tensor Processing Units (TPU) che accelerano i calcoli necessari per generare più di 20 fotogrammi al secondo, rendendo il sistema sufficientemente veloce per simulare un gioco fluido e reattivo.

Per addestrare GameNGen, i ricercatori di Google hanno utilizzato un agente di apprendimento per rinforzo (RL) che ha giocato Doom in un ambiente controllato, registrando le azioni dell'agente e le relative risposte visive in un ampio dataset di frame. Questo dataset è stato successivamente utilizzato per addestrare il modello, che ha imparato a comprendere le sequenze temporali di gioco, le dinamiche dei nemici, l'interazione con l'ambiente e gli effetti visivi, il tutto senza fare affidamento su una rappresentazione esplicita della geometria 3D.

Un frame di Doom generato dall'intelligenza artificiale in cui il Doomguy affronta uno zombieman in E1M1.

Il cuore della tecnologia di GameNGen è un modello di diffusione, che prevede i frame successivi di gioco partendo dai dati storici dei frame precedenti e dalle azioni dell'agente. Questo modello apprende a partire dai dati per predire in maniera precisa non solo gli elementi visivi, ma anche il comportamento degli oggetti in scena, come i nemici, gli ostacoli e le texture. L'incredibile flessibilità di questo sistema permette la simulazione di ambienti interattivi complessi, mantenendo allo stesso tempo una qualità grafica sorprendente per un processo di generazione che non richiede l'uso di tecniche di rendering tradizionali.

In sostanza, GameNGen rappresenta un passo avanti nell'utilizzo delle reti neurali per il game design, offrendo un'alternativa potente ed efficiente ai motori grafici tradizionali, e gettando le basi per una nuova generazione di giochi basati su AI in grado di creare esperienze dinamiche e personalizzate.

Doom su un test di gravidanza

Una delle incarnazioni più affascinanti e bizzarre di Doom è il porting su un test di gravidanza digitale, un'impresa realizzata da un appassionato hacker dell'hardware. Questo risultato, che potrebbe sembrare semplicemente un vezzo tecnico, dimostra l'estrema portabilità del codice di DOOM e la sua capacità di adattarsi a qualsiasi dispositivo dotato di capacità computazionali basilari. Il test di gravidanza utilizzato per questa impresa è stato modificato per integrare un microcontroller custom con un display monocromatico a bassissima risoluzione, progettato originariamente solo per mostrare simboli elementari.

L'hacker ha prima smontato l'hardware del dispositivo, rimpiazzando il processore integrato con un chip più potente, in grado di eseguire codice scritto in linguaggio C. Per il display, invece, ha dovuto ridurre drasticamente la risoluzione e implementare una forma semplificata di rasterizzazione grafica per visualizzare in modo approssimativo i classici corridoi demoniaci di Doom. Anche l'audio, componente iconico del gioco, è stato sacrificato per ovvi limiti hardware.

Uno zombieman affronta il Doomguy sul microscopico display installato su un test di gravidanza digitale.

Dal punto di vista del software, il codice sorgente di Doom, grazie alla sua modularità e alla struttura a basso livello scritta in C, ha consentito un adattamento relativamente diretto, benché siano state necessarie ottimizzazioni specifiche per ridurre il carico computazionale. L'impresa testimonia la genialità del design del motore di gioco e rappresenta un tributo creativo alla comunità di appassionati che continua a spingere i limiti di ciò che Doom può fare. Questo tipo di progetto non è solo un esercizio di stile ma una dimostrazione tecnica di come un codice ben scritto possa resistere alla prova del tempo e continuare a essere una fonte inesauribile di sperimentazione.

Doom sul Super Nintendo

Il porting di Doom su Super Nintendo, rilasciato nel 1995, è una delle più impressionanti imprese tecniche nella storia dei videogiochi. La console, lanciata nel 1990, non era progettata per gestire ambienti tridimensionali complessi e rapidi come quelli del leggendario sparatutto di id Software. Tuttavia, grazie al chip aggiuntivo Super FX 2 integrato nella cartuccia del gioco, il porting è riuscito a offrire un'esperienza sorprendentemente fedele al titolo originale, sebbene con limitazioni evidenti. Questo co-processore avanzato, originariamente progettato per giochi come Star Fox, era responsabile di gran parte della gestione del rendering grafico.

Dal punto di vista tecnico, il porting di Doom su Super Nintendo sfruttava il Super FX 2 per accelerare il calcolo delle geometrie del livello e il rendering delle texture, che venivano adattate a una risoluzione più bassa rispetto alla versione PC. Nonostante queste ottimizzazioni, il frame rate si attestava spesso su livelli piuttosto bassi, rendendo l'esperienza meno fluida rispetto ad altre piattaforme. Un'altra sfida importante riguardava il sistema audio: il processore sonoro della SNES era molto potente per i brani orchestrali a 16-bit, ma riprodurre la colonna sonora di Doom con la stessa intensità metal era complesso; il risultato furono arrangiamenti semplificati e meno coinvolgenti rispetto alla versione originale.

Un fotogramma di Doom su Super Nintendo. Il gioco non occupava l'intero schermo e la scena era renderizzata a dettagli bassi.

L'hardware limitato della SNES richiese anche un compromesso significativo nella rappresentazione dei nemici e degli oggetti. La versione SNES di Doom utilizzava un approccio raster per disegnare i personaggi, ma la scarsa capacità di memoria della console impose una riduzione drastica nella varietà dei nemici visibili in ciascuna area. Oltre ad avere un numero di livelli minore rispetto alla controparte PC, una peculiarità di questa versione di Doom era che i nemici erano animati solo sul frontale. Di conseguenza, i mostri potevano osservare solo e soltanto il giocatore, rendendo di fatto il monster infighting impossibile.

Nonostante questi limiti, il porting resta un risultato tecnico impressionante, dimostrando come l'abilità degli sviluppatori e l'adozione di co-processori dedicati potessero superare le barriere hardware. Il risultato non era solo un esercizio tecnico, ma un traguardo storico che rese possibile giocare uno dei titoli più rivoluzionari di sempre su una piattaforma che nessuno avrebbe immaginato potesse ospitarlo.

Doom sull'adattatore Lightning-HDMI di Apple

Se c'è una cosa che nel 2025 ancora non manca sono i dispositivi su cui tentare di eseguire Doom. L'espressione "Can it run Doom?" non è diventata un fenomeno di culto per caso.Tra gli esperimenti più sorprendenti c'è l'adattatore Lightning-HDMI di Apple, un piccolo accessorio che si è rivelato sorprendentemente potente.

Doom in esecuzione su un adattatore Lightning-HDMI di Apple

Dietro la semplice funzione di trasmettere video su uno schermo, l'adattatore nasconde un vero e proprio sistema con SoC S5L8747 con 256 MB di RAM, in grado di supportare Apple Secure Boot e di eseguire il kernel Darwin, il che lo rende capace di decodificare video 1080p in tempo reale. Non avendo a bordo memoria persistente, l'adattatore riceve il firmware dall'iPhone ad ogni connessione.

La scelta di Apple di integrare così tanta potenza in un semplice cavo è dovuta al fatto che gli iPhone più vecchi, limitati alla connessione USB 2.0, non potevano supportare nativamente l'output HDMI. L'adattatore risolve il problema ricevendo uno stream video compresso dal telefono, decodificandolo al volo e creando il segnale HDMI necessario per la visualizzazione su un monitor o una TV. Questo surplus tecnico ha reso possibile l'ennesima impresa hacker: sfruttando alcuni exploit scoperti in passato su iOS, far girare Doom su un accessorio che nessuno avrebbe mai considerato una piattaforma di gioco.

Doom su un telefono Polycom

Il protagonista di questa storia è Neil Bostian, un professionista IT. Lui e i suoi colleghi avevano in dotazione un telefono Polycom VXX600. Quando la sua azienda decise di ritirare questi telefoni per sostituirli con modelli più recenti, Neil ebbe l'opportunità di portare a casa il suo vecchio VXX600 e così decise che quella notte avrebbe provato a farci girare Doom.

Il Polycom VXX600 aveva un tastierino di 12 tasti, un pulsante Home, i tasti volume, tre pulsanti per il muto, l'altoparlante e le cuffie, oltre che un touch screen. Il VXX600 offriva anche un browser web basilare con cui era possibile installare app. Neil decide quindi di caricarci una pagina web con cui aprire un file dialog e scopre che su questo telefono gira Linux. In un primo momento Neil pensa che sia semplice portare a termine la sua missione, d'altra parte Polycom offriva una vasta gamma di firmware per poter aggiornare il VXX600, quindi un possibile exploit poteva risiedere proprio nel meccanismo di downgrade\upgrade del firmware. Tuttavia, nonostante i numerosi tentativi, il telefono sembrava inviolabile.

Abbiamo finalmente trovato il primo dispositivo su cui non gira Doom? Certo che no! Neil nel 2021 acquista un VXX600 ricondizionato e decide di ritentare l'impresa. Per prima cosa, decide di cercare una vulnerabilità nella interfaccia amministrativa del telefono. E questa volta, sembra proprio che la strada sia quella giusta dato che Neil scopre che è possibile attivare un'interfaccia web comodamente navigabile dal suo PC, da cui vede che è possibile caricare immagini di background per il touch screen del VXX600. Che sia questa la vulnerabilità che gli serviva? Ebbene sì, perché dapprima riesce a svolgere funzioni basilari come creare nuove directory, creare nuovi files con contenuto specifico e muovere sia file che directory nel filesystem del telefono, poi crea tutta una serie di script che gli permettono di eseguire codice e inserirsi nella procedura di boot per cambiare la password di root del dispositivo e installare un server ssh.

Lo schermata del titolo di Doom, in tutta la sua gloria, su un Polycom VXX600.

Il più è fatto? No, perché Neil deve prima di tutto riuscire a controllare ciò che viene disegnato sullo schermo del VXX600, quindi implementa un driver video in C con cui scrivere nel framebuffer. L'altra cosa essenziale per giocare a Doom sono i controlli, per cui Neil decide di implementare anche un driver per usare il tastierino per controllare Doomguy. Infine, installa tutta la toolchain necessaria per compilare Doom e solo allora il gioco è, letteralmente, fatto.

Doom come sfida al superamento di ogni limite tecnologico

La sfida di far girare Doom su dispositivi improbabili non è solo un capriccio tecnologico, ma una dimostrazione straordinaria della creatività e del senso di sfida della comunità tech. Ciò che ha reso possibile questa corsa all'adattamento è la solidità del suo motore, sviluppato in C con un design modulare che lo rende estremamente flessibile. Questa struttura permette di bypassare limiti hardware, adattando il gioco a contesti per cui non era stato originariamente progettato. L'aspetto affascinante non è solo il codice ben scritto, ma anche la volontà degli sviluppatori di superare i confini imposti dai produttori di dispositivi.

L'hacking creativo ha trasformato telefoni per conferenze, adattatori video e persino test di gravidanza in piattaforme per il celebre sparatutto, richiedendo exploit ingegnosi per accedere a risorse hardware o superare blocchi firmware. Ma oltre alla pura sfida tecnica, c'è qualcosa di più profondo: la voglia di esplorare possibilità nascoste e ridare vita a una pietra miliare dell'industria videoludica in contesti sempre nuovi. È un tributo alla genialità di Doom, ma anche alla passione degli hacker che trasformano oggetti quotidiani in strumenti di gioco, mostrando come la tecnologia non sia mai solo limitata a ciò che appare sulla superficie.

Fonti

Can it run Doom? - 2020 - https://canitrundoom.org/

GameNGen - 2024 - https://gamengen.github.io/

Popular Mechanics - 2020 - "This Programmer Figured Out How to Play Doom on a Pregnancy Test" - https://www.popularmechanics.com/science/a33957256/this-programmer-figured-out-how-to-play-doom-on-a-pregnancy-test/

Doom Wiki - 2007 - "Super NES" - https://doom.fandom.com/wiki/Super_NES

Android Authority - 2025 - "This Apple dongle is so powerful, it can run Doom" - https://www.androidauthority.com/apple-lightning-to-hdmi-dongle-run-doom-3523955/

Neil's Place - 2021 - "DoomPhone" - https://neilbostian.github.io/#/doomphone


Puoi trovare questo articolo anche su LinkedIn, sul mio profilo. Se il mio articolo ti piace, lascia un commento e metti un like sul mio post qui: https://www.linkedin.com/posts/luca-cappellaro_willitrundoom-doomeverywhere-retrogaming-activity-7294996085867995136-gRHJ