Thủ thuật
DOOMQL: Khi SQLite trở thành engine game thay vì chỉ là nơi lưu trữ dữ liệu
(giờ Việt Nam)
Tóm tắt AI
DOOMQL là một dự án thú vị sử dụng các truy vấn SQL phức tạp để xử lý toàn bộ logic game như di chuyển, va chạm và dựng hình ray-tracing ngay trong SQLite.
Bản dịch AI

13 tháng 7 năm 2026 - Link Blog
DOOMQL (thông qua) Peter Gostev đã xây dựng trò chơi này bằng GPT-5.6 Sol. Đây là một trải nghiệm rất thú vị:
DOOMQL bắt đầu với một câu hỏi cố tình phi lý: điều gì sẽ xảy ra nếu SQLite đóng vai trò là engine của trò chơi, thay vì chỉ là nơi lưu trữ dữ liệu của game?
Kết quả là một trò chơi nhỏ, độc đáo giống như Doom, trong đó SQL đảm nhận việc di chuyển, va chạm, kẻ thù, chiến đấu, tiến trình và mọi pixel RGB trên màn hình.
Nó được triển khai dưới dạng một script terminal Python - tôi đã thử nghiệm như sau:

Đây là truy vấn SQL khổng lồ thực hiện toàn bộ ray tracer trong SQLite bằng cách sử dụng CTE đệ quy.
Việc chạy script trên sẽ tạo ra một cơ sở dữ liệu SQLite tại /tmp/doomql/.doomql/doomql.sqlite, bạn có thể khám phá nó bằng Datasette như sau:
Tùy chọn --with datasette-apps sẽ cài đặt plugin Datasette Apps mới, hỗ trợ tạo các ứng dụng HTML+JavaScript tùy chỉnh có thể chạy trực tiếp các truy vấn SQL ngay trong giao diện Datasette.
Tôi đã tạo một ứng dụng mới, dán câu lệnh (prompt) copy-paste vào Claude chat (Fable 5) và yêu cầu nó:
Hãy xây dựng một ứng dụng hiển thị trạng thái hiện tại của màn hình bằng cách sử dụng view frame_pixels với các cột x, y, r, g, b. Thiết lập để nó làm mới mỗi giây một lần.
Điều này mang lại cho tôi một ứng dụng HTML+JavaScript hoạt động ngay trong Datasette, có thể phản ánh trạng thái hiện tại trong khi tôi chơi game trên terminal. Sau đó, tôi thêm vào:
thêm một bản đồ nhỏ (minimap)
Và giờ đây, ứng dụng Datasette của tôi trông như thế này:
Đây là mã nguồn ứng dụng HTML - hãy dán nó vào instance Datasette của riêng bạn (sử dụng công thức uvx --with datasette-apps ở trên) để tự mình trải nghiệm.
Bài viết được AI dịch và tổng hợp tự động từ Simon Willison. Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.