Tự xây dựng ứng dụng cơ sở dữ liệu tình báo lấy cảm hứng từ Resident Evil

06 tháng 4, 2026·3 phút đọc

Lấy cảm hứng từ các hồ sơ mật trong game Resident Evil, tác giả đã phát triển ARCHIVES - một ứng dụng cơ sở dữ liệu cốt truyện với giao diện máy trạm MDI và khả năng phân tích tìm kiếm ngôn ngữ tự nhiên.

Tự xây dựng ứng dụng cơ sở dữ liệu tình báo lấy cảm hứng từ Resident Evil

Tự xây dựng ứng dụng cơ sở dữ liệu tình báo lấy cảm hứng từ Resident Evil

Khi Resident Evil Requiem ra mắt, thay vì tập trung vào lối chơi, tôi lại bị ám ảnh bởi một chi tiết nhỏ: các cơ sở dữ liệu tình báo, những bộ hồ sơ mật (dossiers) và tính thẩm mỹ của các tài liệu tuyệt mật. Sự ám ảnh này đã theo tôi từ thời thơ ấu. Tôi muốn nó tồn tại như một công cụ thực sự.

Vậy nên, thay vì chờ đợi, tôi tự tay xây dựng nó.

ARCHIVES là gì?

ARCHIVES là một ứng dụng cơ sở dữ liệu lore (cốt truyện) với giao diện mô phỏng thiết bị đầu cuối tình báo tuyệt mật. Đây không phải là một trang wiki tự do. Mỗi thực thể đều có kiểu dữ liệu, các mối quan hệ được xác định kiểu và một bộ ghi chép cấu trúc phong phú bao gồm lịch sử lây nhiễm, các giai đoạn đột biến, nhật ký chuyển đổi ý thức, đánh giá tình báo, lịch sử liên kết cũng như hồ sơ tử vong và hồi sinh.

Giao diện người dùng (frontend) được xây dựng dưới dạng một bàn làm việc Multiple Document Interface (MDI). Các hồ sơ, biểu đồ quan hệ, bản đồ tương tác và kết quả tìm kiếm đều mở dưới dạng cửa sổ có thể kéo thả và thay đổi kích thước ngay trong một không gian làm việc duy nhất. Không có điều hướng trang web truyền thống. Tất cả mọi thứ cùng tồn tại trên một màn hình.

Một số điểm thú vị trong quá trình xây dựng

Hệ thống cửa sổ MDI

Hầu hết các Single Page Applications (SPA) hiện nay đều điều hướng giữa các trang. Tuy nhiên, tôi muốn mọi thứ mở đồng thời như một máy trạm làm việc thực thụ. Mỗi cửa sổ có vị trí, kích thước, chỉ số z-index, trạng thái thu nhỏ và phóng to, tất cả được quản lý bằng thư viện Zustand.

Khi nhấp vào một liên kết thực thể bên trong một hồ sơ, thực thể đó sẽ mở trong một cửa sổ mới thay vì điều hướng đi chỗ khác. Việc sử dụng React 19 kết hợp với Babel Compiler plugin để tự động ghi nhớ (memoization) đã giúp cải thiện đáng kể hiệu suất hiển thị khi có nhiều cửa sổ được mở cùng lúc.

Bộ phân tích tìm kiếm ngôn ngữ tự nhiên

Vượt xa khả năng tìm kiếm từ khóa thông thường, tôi đã xây dựng một trình phân tích truy vấn (query parser) giúp mã hóa ý định và ánh xạ các từ hành động tới các kiểu quan hệ và bảng ghi chép cụ thể.

  • Khi tìm kiếm "ai bị nhiễm" (who infected), hệ thống sẽ truy xuất hồ sơ lây nhiễm.
  • Cụm từ "ai đã giết" (who killed) sẽ lọc hồ sơ tử vong theo kẻ giết người.
  • "Đồng minh của" sẽ giải quyết theo các slug kiểu quan hệ và liên kết.

Hiện tại, hệ thống có hơn 50 động từ hành động được ánh xạ, bổ sung bởi các kiểu quan hệ tồn tại trong cơ sở dữ liệu tại thời điểm chạy. Kết quả tìm kiếm bao gồm danh sách thực thể được xếp hạng, một biểu đồ con của các kết nối và một bản tin tình báo được tạo tự động.

Tham khảo dự án:

Bài viết được tổng hợp và biên soạn bằng AI từ các nguồn tin tức công nghệ. Nội dung mang tính tham khảo. Xem bài gốc ↗