Questo post é stato letto 80 volte!
Doom con CSS: una sfida tra codici che riscrive i limiti della programmazione, dimostrando come un semplice foglio di stile possa emulare un intero computer.
Il programmatore Ahmed Amer ha compiuto un’impresa sorprendente, riuscendo a far girare il celebre gioco Doom con CSS, simulando un PC 8086 con 640 KB di RAM.
Questa dimostrazione, sebbene non pratica per l’uso quotidiano, evidenzia il potenziale inesplorato e la versatilità dei linguaggi di styling.
La macchina virtuale in un foglio di stile
Un pc simulato interamente con css
Contrariamente alla sua funzione tradizionale, il CSS (Cascading Style Sheets) è stato impiegato da Ahmed Amer per creare un PC IBM compatibile.
Questo “CSS-DOS”, un file di 300 MB, non contiene un semplice port del gioco, ma una macchina completa simulata da zero.
All’interno di questo foglio di stile sono stati ricreati un processore 8086, 640 KB di RAM, un controller VGA e uno per il floppy disk, tutti descritti attraverso regole di stile.
Questo approccio innovativo sfrutta le funzionalità avanzate del CSS, inclusi i condizionali, per emulare l’architettura hardware in un modo unico.
Prestazioni e limiti dell’emulazione
Un’esperienza di gioco estremamente lenta
L’emulatore sviluppato da Amer opera a una velocità estremamente ridotta.
Con solo due istruzioni al secondo a livello di CPU, l’avvio di MS-DOS richiede circa tre settimane, mentre il caricamento di un singolo livello di Doom con CSS impiegherebbe ben tre mesi.
La riproduzione del gioco avviene a un ritmo di 0,0001 fotogrammi al secondo, rendendolo di fatto ingiocabile.
Tuttavia, l’obiettivo del progetto non era la giocabilità, ma l’esplorazione dei confini del CSS e la dimostrazione delle sue capacità in contesti non convenzionali.
Il significato dell’esperimento
Questo esercizio di stile, sebbene non pratico, è un omaggio alla tradizione che vuole che ogni nuova piattaforma tecnologica debba, prima o poi, far girare Doom.
Amer ha fornito un resoconto dettagliato della sua metodologia e una guida interattiva per esplorare il file CSS, offrendo una panoramica approfondita del suo lavoro.
L’esperimento sottolinea come le limitazioni autoimposte possano spingere la creatività e l’innovazione nella programmazione, rivelando potenzialità inaspettate anche in strumenti apparentemente semplici come il CSS.
Questo post é stato letto 80 volte!