Sumanus saugumo analitikas įrodė, kad PDF failai skirti ne tik nuobodiems dokumentams ir formoms. Jis sugebėjo klasikinį „Tetris“ žaidimą sutalpinti į 60 KB PDF failą, kuris gali būti paleistas bet kurioje naršyklėje.
„Pdftris“ žaidžiamas pele arba klaviatūra
Šis kūrinys, kurį jo kūrėjas Thomas Rinsma pavadino „Pdftris“, leidžia žaisti įtraukiantį krentančių blokų galvosūkį vos vienu spustelėjimu.
Žaidimo valdymui galima naudoti pelę ir spausti ekrane esančius mygtukus, ir nėra intuityvu.
T. Rinsma taip pat įdiegė valdymą klaviatūra – žaidėjai gali judinti, sukti ir mesti tetrio blokus naudojant WASD klavišus.
Žaidime nėra garso, spalvų ir jis veikia kukliame naršyklės lange. Galbūt ateities atnaujinimuose būtų galima įdiegti šias garso ir spalvų dalis.
Kaip buvo sukurtas „Pdftris“?
Paaiškėjo, kad T. Rinsma sugebėjo sutalpinti žaidimo funkcijas į dokumentams skirtą failo formatą naudojant retai tyrinėjamą PDF skriptų sritį, kurią papildo „JavaScript“.
PDF varikliuose, kurie naudojami tokiose naršyklėse kaip „Chrome“ ir „Firefox“, iš tikrųjų palaikomas ribotas „JavaScript“ komandų rinkinys. T. Rinsma suprato, kad gali tuo pasinaudoti ir iš pagrindų sukurti tokį žaidimą, kaip „Tetris“.
Tai nebuvo lengva užduotis. T. Rinsma turėjo sugalvoti sudėtingų būdų, kaip padaryti, kad žaidimas būtų tinkamai atvaizduojamas skirtingose PDF varikliuose. Jo sprendimas buvo naudoti PDF anotacijų „laukų“ rodymo ir slėpimo funkciją, kad būtų sukurti simboliniai nespalvoti „Tetris” pikseliai.
Pasak autoriaus, „Pdftris“ gana „nevykęs“
Kitas jo iššūkis – veiksmų kontrolė. Nors galima naudoti ekrane esančius mygtukus, T. Rinsma gudriai įjungė valdymą klaviatūra, leisdamas įvesti tekstą į po žaidimu esantį teksto įvesties laukelį. Rašant siunčiami klavišų paspaudimo įvykiai, kuriuos žaidimas gali interpretuoti į veiksmus.
Rezultatas, kaip sako pats T. Rinsma, yra ganėtinai „nevykęs“. Bet tai ir yra tokių eksperimentinių dalykų grožis.
„Pdftris“ yra tiesiog senas ASCII tekstas, paslėptas PDF faile. Galite jį atsisiųsti ir atidaryti kodą teksto redaktoriuje, kad pamatytumėte, kaip jis veikia. Arba galite patikrinti T. Rinsmos „GitHub“ repozitoriumą, kur rasite skaitomesnį išeities kodą su komentarais.
Galima pagalvoti – jei „Tetris“ gali veikti PDF faile, tikrai niekas nedrįstų bandyti į jį įsprausti kažką tokio beprotiško kaip „Doom“. Na, T. Rinsma žinojo, kad žaidėjams gali kils tokia mintis. Jis mano, kad tai iš tiesų būtų įmanoma „su tinkamais triukais“, jei būtų pasirinktas vienas PDF variklis.