3 Tačke
Članak

Doom pokrenut pomoću regularnih izraza, jedan frejm traje 180 sekundi

Programer Artem Lytkin uspeo je da pokrene igru Doom koristeći regularne izraze, pri čemu je svaki frejm zahtevao gotovo 14 miliona zamena i trajao oko 180 sekundi.

3 Tačke
49 sekundi čitanja

Programer Artem Lytkin uspeo je da pokrene originalni Doom iz 1992. godine koristeći regularne izraze (regex), što je jedan od najneobičnijih načina izvođenja ove igre. Regularni izrazi su jezik za pretragu i zamenu teksta, ali poseduju dovoljno mogućnosti da funkcionišu kao programska logika. Lytkin je kreirao datoteku od 96 MB koja sadrži virtuelne registre, RAM, frejmbafer i podatke igre, a regex mašina izvršava zamene kako bi simulirala rad procesora.

Rezultat je izuzetno spor: jedan frejm se prikazuje svakih 180 sekundi, uz gotovo 14 miliona zamena teksta po frejmu. Ipak, izlaz je identičan originalnom Doom-u, a igrač može da kontroliše igru pomoću tastature. Lytkin je memorijski pristup optimizovao korišćenjem binarnog stabla unutar regexa, čime je izbegao skeniranje celog fajla. Projekat je dostupan na GitHub-u, a brzina obrade iznosi oko 80.000 zamena u sekundi.

Povezani članci