Bạn có thể thường nghĩ rằng các tài liệu PDF chỉ đơn thuần là những trang tĩnh chứa chữ, 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 nhiều tính năng tiềm ẩn hơn cho tài liệu PDF, minh chứng rõ ràng nhất là sự xuất hiện của các phiên bản game Tetris và DOOM chạy trực tiếp bên trong chúng. Đây là một bước tiến đáng kinh ngạc, phá vỡ mọi giới hạn về cách chúng ta tương tác với tệp PDF truyền thống.
Tetris Trực Tiếp Trong Tài Liệu PDF: Pdftris
Thomas Rinsma, một nhà phân tích bảo mật và phát triển phần mềm, đã công bố một bản demo hoạt động của trò chơi xếp hình kinh điển Tetris, chạy hoàn toàn trong một tài liệu PDF. Game có thể chơi được trên Google Chrome và các trình duyệt dựa trên Chromium khác, cũng như Mozilla Firefox. Bạn có thể tự mình trải nghiệm với tệp PDF này trên trang web của Rinsma.
Giao diện trò chơi Tetris được nhúng và vận hành ngay trên một tệp PDF, thể hiện khả năng vượt trội của tài liệu PDF động.
Blog của Rinsma giải thích rằng: “Khá nhiều người biết rằng PDF có thể rất giàu tính năng khi được mở trong Adobe Acrobat/Reader, với hỗ trợ scripting cho các biểu mẫu và nội dung động khác. Tuy nhiên, hóa ra cả PDFium (trình đọc PDF của Chromium) và PDF.js (của Firefox) cũng triển khai một chút hỗ trợ scripting. […] Các tệp PDF có thể chứa trường nhập văn bản, nút bấm, hộp kiểm, v.v. Các trình xử lý JavaScript có thể được gắn với các sự kiện trên các tiện ích (“trường”) này và các thuộc tính của chúng có thể được sửa đổi từ bên trong JavaScript.” Về cơ bản, các chức năng scripting vốn được thiết kế để kiểm tra nội dung của các biểu mẫu có thể được tái sử dụng để thay đổi nội dung của chính tài liệu PDF. Tài liệu này 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”. Trò chơi được điều khiển thông qua các nút có thể nhấp hoặc các phím gõ vào trường văn bản.
Bước Đột Phá Với DOOM: DoomPDF
Rinsma sau đó đã nâng tầm ý tưởng này, hoàn thành một phiên bản của trò chơi bắn súng góc nhìn thứ nhất DOOM năm 1993, cũng trong tài liệu 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 trình duyệt web bằng cách sử dụng WebAssembly và Emscripten. Bạn có thể thử DoomPDF trong trình duyệt web của mình—hiện tại, phiên bản này chỉ hoạt động với Chrome và các trình duyệt dựa trên Chromium.
Hình ảnh game bắn súng kinh điển DOOM được hiển thị bên trong một tài liệu PDF, chạy trên trình duyệt Google Chrome.
Mặc dù phiên bản DOOM này khá chậm trên Chrome 134 trên M1 Mac Mini, nhưng nó thực sự hoạt động. Bài đăng trên blog của Rinsma cũng đề cập rằng màn hình game hiển thị đơn sắc, không có màu như dự án DOOM-ASCII gốc, bởi vì màu của các nút “pixel” không thể được cập nhật mà không phải thay thế chúng bằng các yếu tố khác. Rinsma giải thích: “Ngay cả đối với một màn hình GameBoy (160x144x3) thì đây cũng là gần 70 nghìn trường, điều này làm chậm mọi thứ quá nhiều.”
Tiềm Năng Công Nghệ Đằng Sau
Mã nguồn cho PDF Tetris và DoomPDF đều có sẵn trên GitHub. Những dự án độc đáo này không chỉ là những minh chứng kỹ thuật thú vị mà còn mở ra một cái nhìn mới về tiềm năng của các tài liệu PDF, vượt xa mục đích ban đầu của chúng. Chúng cho thấy khả năng sáng tạo không giới hạn của các nhà phát triển và công nghệ trình duyệt hiện đại trong việc biến những điều tưởng chừng không thể thành hiện thực, mang lại trải nghiệm công nghệ bất ngờ và đầy cảm hứng cho người dùng.
Những dự án này đi kèm hoàn hảo với các phiên bản DOOM khác được port sang các nền tảng độc đáo, như DOOM II trên máy chơi pinball gần đây.
Tài liệu tham khảo: