← Trang chủ
Tom's Hardware1 nguồn

Chuyên gia cơ sở dữ liệu chạy Doom trong SQL với 5.900 dòng mã bằng dự án SQLDoom

Database expert runs Doom in SQL with just 5,900 lines of code

Tóm tắt nhanh

  • Lukas Vogel tạo SQLDoom để chạy Doom bên trong hệ quản trị cơ sở dữ liệu CedarDB, dùng SQL làm lõi xử lý trò chơi và Python chỉ lo hiển thị, âm thanh và nhập liệu.
  • Toàn bộ logic trò chơi được thực hiện trong database; mã SQL của dự án dài 5.900 dòng so với 9.000 dòng mã C gốc.
  • Frontend hiển thị và âm thanh viết bằng ~1.000 dòng Python và renderer đồ họa riêng dài ~1.300 dòng, trong đó một truy vấn liên quan tới 89 bảng.
  • SQLDoom chạy hai luồng: luồng logic ở 35 Hz như bản gốc và luồng hiển thị riêng để nội suy vị trí camera giữa các cập nhật.
  • Vogel chuyển dữ liệu từ file WAD của Doom vào bảng quan hệ — cấu trúc bản đồ có quan hệ cha-con nên dễ mô tả bằng bảng thông thường.
  • Nhiều phần của vòng lặp gameplay đơn giản hóa nhờ SQL; thao tác cập nhật nhiều thực thể chỉ cần một câu lệnh UPDATE... WHERE và có thể thực thi song song.
  • Một số thuật toán như vẽ sàn và trần (flood-fill) không thuận tiện để viết bằng SQL, còn dữ liệu BSP và sắp xếp tường phù hợp với SELECT... ORDER BY.
  • Sử dụng database giúp đa người chơi dễ hơn nhờ snapshot, xác thực và kiểm soát truy cập; một tick chỉ cần START TRANSACTION, chạy logic rồi COMMIT.

Tóm tắt tự động bằng AI từ bài gốc, có thể có sai sót. Hãy kiểm chứng ở bài gốc.

Trích đoạn bài gốc

Database expert runs Doom in SQL again — full-featured SQLDoom is the sequel to embryonic DoomQL
Đọc bài gốc trên Tom's Hardware

Tapview chỉ hiển thị tiêu đề, trích đoạn ngắn, tóm tắt và đường dẫn tới bài gốc. Nội dung gốc thuộc bản quyền của Tom's Hardware.

Tin khác đang nóng