Một trò chơi nhiều người chơi giống DOOM được viết bằng SQL đã được triển khai

Dự án DOOMQL được trình bày, phát triển một biến thể của trò chơi DOOM, được viết bằng SQL và có khả năng thực thi bên trong Hệ quản trị cơ sở dữ liệu CedarDB, tương thích một phần với PostgreSQL. Trò chơi hỗ trợ chế độ nhiều người chơi và hiển thị bằng đồ họa ASCII. Mã dự án được phân phối theo giấy phép MIT.

Tất cả các thành phần của trò chơi, bao gồm mã kết xuất, đồng bộ hóa trạng thái người chơi trong các trò chơi nhiều người chơi và vòng lặp trò chơi, đều được viết bằng SQL. Logic trò chơi được triển khai bằng cách sử dụng bảng, chế độ xem (VIEW) và thủ tục lưu trữ, điều này phân biệt DOOMQL với các dự án tương tự như DuckDB-DOOM (sử dụng thủ tục lưu trữ trong WebAssembly) và pg_doom (được triển khai như một phần mở rộng cho PostgreSQL bằng C).

DOOMQL được phát triển dựa trên khái niệm "mọi thứ đều là dữ liệu", sử dụng các bảng để lưu trữ trạng thái của bản đồ, người chơi, vật thể di chuyển trong màn chơi, sự kiện đầu vào, cài đặt và sprite. Vòng lặp trò chơi chịu trách nhiệm xử lý và cập nhật trạng thái trò chơi được chạy bởi một tập lệnh shell 20 dòng, thực thi mã SQL 30 lần mỗi giây để tính toán quỹ đạo bắn, phân tích va chạm, xử lý dữ liệu đầu vào và hồi sinh người chơi.

Trình kết xuất 3D dựa trên SQL hỗ trợ dò tia, chiếu sprite lên cảnh 3D, xử lý chồng chéo đối tượng và giao diện Hiển thị Trực quan (HUD). Toàn bộ logic kết xuất được triển khai bằng các chế độ xem. Nhiều người chơi có thể kết nối vào trò chơi cùng lúc và trạng thái của họ được đồng bộ hóa bằng bảng và chế độ xem.

Về phía người dùng, một máy khách (client) được khởi chạy, bao gồm khoảng 150 dòng mã Python. Công việc của máy khách được rút gọn thành việc truyền thông tin về các lần nhấn phím và xuất khung hình ra thiết bị đầu cuối. Đầu ra được sắp xếp bằng các truy vấn SELECT được thực hiện định kỳ đến chế độ xem "màn hình" trong hệ quản trị cơ sở dữ liệu (DBMS), chế độ này tự động tạo hình ảnh theo từng dòng (mỗi dòng đầu ra để đáp ứng truy vấn SELECT tương ứng với một dòng trên màn hình). Thông tin về các lần nhấn phím và việc thêm người chơi mới được thực hiện thông qua các truy vấn INSERT.

Nguồn: opennet.ru

Mua dịch vụ lưu trữ đáng tin cậy cho các trang web có bảo vệ DDoS, máy chủ VPS VDS 🔥 Mua dịch vụ hosting website đáng tin cậy với bảo vệ DDoS, máy chủ VPS VDS | ProHoster