# Cơ sở dữ liệu đánh đấm chuyện gì đang xảy ra?

Đăng ngày: 2026-07-20

Tôi vẫn nhớ có lần ngồi bàn về mấy trò chơi điện tử hồi xưa, ai cũng ngạc nhiên khi biết Doom được tạo ra chỉ bằng C++, tối ưu đến từng byte. Bây giờ, một anh kỹ sư tên Peter Gostev lại mang đến một phiên bản Doom "nhân tạo" khác, kỳ cục hơn nhiều: DOOMQL, một game giống Doom nhưng SQLite mới là game engine, chứ không chỉ là nơi lưu trữ dữ liệu. Nghe có vẻ điên rồ, nhưng anh ấy đã làm được với sự trợ giúp của AI. Peter Gostev đã dùng GPT-5.6 Sol để xây dựng DOOMQL. Ý tưởng chủ đạo là "điều gì sẽ xảy ra nếu SQLite là engine game, thay vì chỉ là nơi game lưu trữ dữ liệu?". Kết quả là một trò chơi nhỏ, độc đáo, nơi SQL điều khiển mọi thứ từ di chuyển, va chạm, kẻ thù, chiến đấu, tiến độ game, cho đến từng pixel RGB trên màn hình. Game này được triển khai dưới dạng một script Python chạy trong terminal. Để ai cũng có thể thử nghiệm, Peter đã cung cấp các bước đơn giản: cd /tmp, git clone https://github.com/petergpt/doomql, cd doomql, và cuối cùng là uv run host/doomql.py. Đáng chú ý, toàn bộ công cụ dò tia (ray tracer) được cài đặt trong SQLite bằng một truy vấn SQL khổng lồ sử dụng CTE đệ quy. Trong quá trình chơi game trên terminal, Peter còn sử dụng Datasette để khám phá database SQLite của game, vốn được tạo ra tại /tmp/doomql/.doomql/doomql.sqlite. Đặc biệt, anh ấy dùng plugin Datasette Apps mới, cho phép tạo các ứng dụng HTML+JavaScript tùy chỉnh có thể chạy truy vấn SQL trực tiếp trong giao diện Datasette. Với sự trợ giúp của Claude chat (Fable 5), Peter đã dán một đoạn prompt vào và yêu cầu: "Tạo một ứng dụng hiển thị trạng thái màn hình hiện tại sử dụng view frame_pixels với các cột x, y, r, g, b. Hãy làm nó tự động làm mới mỗi giây." Kết quả là một ứng dụng HTML+JavaScript chạy trong Datasette, cho phép anh theo dõi trạng thái game theo thời gian thực. Sau đó, anh ta còn yêu cầu Claude thêm một minimap. Đây là một dự án khá "phá cách" khi nhìn vào vai trò truyền thống của cơ sở dữ liệu. Nó cho thấy không chỉ khả năng của AI trong việc hỗ trợ lập trình, mà còn cả việc chúng ta có thể đẩy giới hạn của những công cụ tưởng chừng đã định hình rất rõ ràng. Nếu một cơ sở dữ liệu có thể trở thành engine của một game bắn súng góc nhìn thứ nhất, thì có lẽ chúng ta cần đặt lại câu hỏi về mọi giới hạn mà chúng ta đang tự đặt ra cho các công nghệ khác.

Canonical: https://www.tungpham.vn/blog/co-so-du-lieu-danh-dam-chuyen-gi-dang-xay-ra
