Bạn có thể nghĩ rằng các tệp PDF chỉ là những tài liệu tĩnh, được tạo ra để chứa văn bản, hình ảnh và 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à các phiên bản game kinh điển như Tetris và DOOM vừa được “cấy ghép” thành công vào định dạng này. Khám phá này mở ra một góc nhìn hoàn toàn mới về khả năng của PDF.
Tetris: Bất Ngờ Khi Chạy Ngay Trong Tệp PDF
Thomas Rinsma, một nhà phân tích bảo mật và nhà phát triển, đã công bố bản demo Tetris hoàn chỉnh có thể chạy toàn bộ trong tài liệu PDF. Tựa game giải đố cổ điển này có thể chơi được trên Google Chrome và các trình duyệt dựa trên Chromium, cũng như Mozilla Firefox. Bạn có thể tự mình trải nghiệm ngay với tệp PDF tại trang web của Rinsma.
Trải nghiệm game Tetris chạy mượt mà ngay trên tệp PDF trong trình duyệt
Theo Rinsma, “Khá nhiều người đã biết rằng PDF có thể có nhiều tính năng phong phú khi mở trong Adobe Acrobat/Reader, với hỗ trợ script cho các biểu mẫu và nội dung động. 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ợ script.” 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 PDF. Tài liệu tạo một lưới các nút bấm có thể hiển thị hoặc ẩn theo lập trình, hoạt động như “pixel” đồ họa. Trò chơi được điều khiển qua các nút bấm hoặc phím bàn phím gõ vào trường văn bản.
DOOM: Lột Xác Ngoạn Mục Ngay Trong Tài Liệu PDF
Thomas Rinsma sau đó đưa ý tưởng này đi xa hơn, hoàn thành việc “cấy ghép” tựa game bắn súng góc nhìn thứ nhất DOOM (1993) vào một tệp PDF. Phiên bản này dựa trên dự án DOOM-ASCII, một phiên bản DOOM hoạt động được trong môi trường chỉ văn bản với ký tự ASCII, biên dịch cho trình duyệt web bằng WebAssembly và Emscripten. Bạn có thể trải nghiệm DoomPDF ngay trong trình duyệt web của mình—hiện tại, chỉ hoạt động với Chrome và các trình duyệt dựa trên Chromium.
Hình ảnh game DoomPDF được chơi trên trình duyệt Google Chrome thông qua tệp PDF
Phiên bản DOOM này khá chậm trên Chrome 134 của M1 Mac Mini, nhưng vẫn hoạt động. Bài đăng blog cũng đề cập màn hình game hiển thị đơn sắc, không màu như DOOM-ASCII gốc, vì màu của các nút “pixel” không thể cập nhật nếu không hoán đổi 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ì đã có gần 70K trường, làm mọi thứ chậm lại quá nhiều.”
Mã Nguồn Mở và Tiềm Năng Tương Lai Của PDF
Mã nguồn cho PDF Tetris và DoomPDF đều có sẵn trên GitHub. Những phát hiện này chắc chắn sẽ bổ sung hoàn hảo vào danh sách các dự án độc đáo tương tự, như phiên bản DOOM II vừa được “cấy ghép” vào một máy pinball gần đây.
Kết luận:
Việc Thomas Rinsma thành công đưa các tựa game kinh điển vào tài liệu PDF đã mở ra một cánh cửa mới, cho thấy tiềm năng đáng kinh ngạc của định dạng file tưởng chừng chỉ “tĩnh” này. Nó minh chứng rằng với sự sáng tạo và am hiểu sâu về công nghệ, ngay cả những công cụ quen thuộc cũng có thể được biến hóa bất ngờ. Hãy thử trải nghiệm và chia sẻ cảm nghĩ của bạn về những khám phá đột phá này nhé!