Nhiều người thường xem PDF là định dạng tài liệu tĩnh, chỉ dùng để chứa văn bản, hình ảnh và đôi khi là các biểu mẫu. Tuy nhiên, các trình duyệt web hiện đại đang dần mở khóa những khả năng tiềm ẩn của PDF, điều này được chứng minh rõ ràng qua các dự án port game Tetris và DOOM trực tiếp trên tài liệu PDF.
Tetris trong PDF: Một minh chứng đột phá
Thomas Rinsma, một chuyên gia phân tích bảo mật và nhà phát triển, đã công bố bản demo hoạt động của trò chơi giải đố kinh điển Tetris chạy hoàn toàn trong một tệp PDF. Tựa game này có thể chơi được trên Google Chrome và các trình duyệt khác dựa trên Chromium, cũng như Mozilla Firefox. Trải nghiệm độc đáo này cho thấy PDF có thể linh hoạt hơn nhiều so với những gì chúng ta thường nghĩ.
Game Tetris trên tài liệu PDF chạy trong trình duyệt
Cơ chế hoạt động của Tetris trong PDF dựa trên việc tận dụng khả năng hỗ trợ scripting mà cả PDFium (trình đọc PDF của Chromium) và PDF.js (của Firefox) đều triển khai ở một mức độ nhất định. Theo Rinsma, các tệp PDF có thể chứa các trường nhập liệu văn bản, nút bấm, hộp kiểm, v.v. Các hàm xử lý JavaScript có thể được gắn với các sự kiện trên những “widget” này, cho phép thay đổi thuộc tính của chúng từ bên trong JavaScript. Về cơ bản, các chức năng scripting vốn dùng để kiểm tra nội dung biểu mẫu đã được tái sử dụng để sửa đổi nội dung của PDF. Tài liệu tạo ra một lưới các nút có thể được hiển thị hoặc ẩn theo chương trình, hoạt động như các “pixel” đồ họa. Trò chơi được điều khiển thông qua các nút bấm hoặc các phím gõ vào một trường văn bản.
DOOM PDF: Đưa game bắn súng huyền thoại lên tài liệu
Tiếp nối ý tưởng này, Rinsma đã tiến xa hơn khi hoàn thành một bản port của tựa game bắn súng góc nhìn thứ nhất năm 1993, DOOM, lên định dạng PDF. Dự án này dựa trên DOOM-ASCII, một phiên bản DOOM hoạt động được trong môi trường chỉ có văn bản với các ký tự ASCII, được biên dịch cho các trình duyệt web bằng WebAssembly và Emscripten. Hiện tại, DoomPDF chỉ tương thích với Chrome và các trình duyệt dựa trên Chromium.
Trò chơi DOOM được tái tạo trong tệp PDF hiển thị trên Google Chrome
Phiên bản DOOM trên PDF này hoạt động, mặc dù tốc độ xử lý còn chậm, ngay cả trên các cấu hình mạnh như Chrome 134 trên M1 Mac Mini. Màn hình game hiển thị đơn sắc, không có màu như bản gốc DOOM-ASCII, vì màu sắc của các “pixel” nút bấm không thể được cập nhật mà không phải hoán đổi chúng bằng các phần tử khác. Rinsma giải thích rằng, ngay cả với một màn hình GameBoy (160x144x3), số lượng trường cần xử lý lên tới gần 70.000, khiến mọi thứ chậm đi đáng kể.
Mã nguồn mở và tiềm năng phát triển
Mã nguồn của cả PDF Tetris và DoomPDF đều được công bố trên GitHub, mở ra cơ hội cho cộng đồng khám phá và phát triển thêm. Những dự án sáng tạo này không chỉ cho thấy khả năng chưa được khai thác của định dạng PDF và các trình duyệt web, mà còn thể hiện tinh thần không ngừng thử nghiệm, vượt qua giới hạn của công nghệ.
Kết luận
Việc chạy Tetris và DOOM trực tiếp trong một tệp PDF là minh chứng rõ ràng cho thấy tài liệu điện tử không còn đơn thuần là công cụ lưu trữ thông tin tĩnh. Với sự phát triển của công nghệ trình duyệt và sự sáng tạo của các nhà phát triển, định dạng PDF đang mở ra những tiềm năng ứng dụng bất ngờ, biến một tài liệu tưởng chừng đơn giản thành một nền tảng tương tác, thậm chí là sân chơi giải trí. Đây là một bước tiến thú vị, khuyến khích chúng ta nhìn nhận lại và khám phá sâu hơn về khả năng của các công nghệ quen thuộc.