Geçmişte hesap makinesinde bile çalıştırılarak çıtayı erişilmeyecek bir yere koyduğu düşünülen 90’ların efsanevi FPS oyunu Doom, PDF evrakında dahi oynanacak hale getirilerek kendini aştı. Olağan kurallarda döküman okumak için tasarrlanan PDF formatı statik dokümanlar için kullanılırken, bu kere bir programlama dehasıyla interaktif bir oyun tecrübesine dönüştü. DoomPDF ismi verilen bu port, yaratıcı bir zekadan nasıl işler çıkabileceğini gösteriyor. İşte detaylar!
Doom, PDF’ye nasıl taşındı?
DoomPDF, PDF’nin metin alanlarını ve Javascript yeteneklerini kullanarak çalışan bir port… Geliştirici, her ekran satırı için başka bir metin alanı kullanarak ASCII karakterlerinden oluşan altı renkli bir monokrom grafik oluşturrmuş. Bu yolla, her kare yaklaşık 80 milisaniyede işliyor ve düşük performanslı da olsa kayda bedel bir tecrübe sunuyor. Bu usulle Doom’un 320 x 200 çözünürlükteki ‘Knee-Deep in the Dead’ kısmı oynanabiliyor.
Geliştirici, PDF’de C kodunu derlemenin ve anahtar girişlerini yakalayıp bir framebuffer (çerçeve arabelliği) kullanmanın epey kuvvetli bir süreç olduğunu belirtiyor. Yeniden de geliştiricinin elde ettiği bu sonuç, PDF’nin yalnızca dokümanlar için değil interaktif içerikler için de kullanılabileceğini kanıtlıyor.
DoomPDF, PDF içinde Tetris oynanabilen ‘pdftris’ isimli farklı bir projeden esinlenmiş. Hatta geliştirici, pdftris’in yaratıcısı Thomas Rinsma tarafından da tebrik edilmiş durumda… “Harika iş!” yorumuyla DoomPDF’i öven Rinsma, PDF’lerin sıradan bir evrak formatından çok daha fazlasını sunabileceğini bir defa daha göstermiş oldu.
Her ne kadar Doom’un PDF’de çalıştırılması bir programlama dehasını ortaya koysa da bu, PDF belgelerinin potansiyel güvenlik risklerini de unutmamak lazım. PDF formatının karmaşıklığı berbat emelli yazılım muharrirleri tarafından da vakit zaman istismar ediliyor. Bu nedenle, bilhassa beklenmedik bir biçimde karşınıza çıkan interaktif PDF belgelerini açarken dikkatli olmanızda yarar var.
Peki, siz Doom’un PDF’de oynanabilir hale getirilmesi hakkında ne düşünüyorsunuz? Bu türlü yenilikçi projeler daha fazla yaygınlaşmalı mı? Görüşlerinizi yorumlarda paylaşmayı unutmayın!