Phát triển công cụ trò chơi
Tôi đang lên kế hoạch cho một trò chơi máy tính và động cơ của nó. Sẽ có một thế giới 3 chiều với góc nhìn người thứ nhất và bây giờ nó sẽ là một người chơi. Ngôn ngữ lập trình là C ++ và nó sử dụng OpenGL.
Quyết định thiết kế tập trung dữ liệu
Quyết định thiết kế của tôi là sử dụng kiến trúc tập trung dữ liệu trong đó có người quản lý sự kiện toàn cầu và người quản lý dữ liệu toàn cầu . Có nhiều thành phần như vật lý, đầu vào, âm thanh, trình kết xuất, ai, ... Mỗi thành phần có thể kích hoạt và lắng nghe các sự kiện . Hơn nữa, mỗi thành phần có thể đọc, chỉnh sửa, tạo và xóa dữ liệu .
Câu hỏi là về người quản lý dữ liệu.
Có nên sử dụng cơ sở dữ liệu quan hệ
Tôi có nên sử dụng Cơ sở dữ liệu SQL, ví dụ SQLite hoặc MySQL, để lưu trữ dữ liệu trò chơi không? Nó chứa hầu như tất cả các nội dung trò chơi như vật phẩm, nhân vật, hàng tồn kho, ... Ngoại trừ các mắt lưới và kết cấu thậm chí còn liên quan đến hiệu suất nhiều hơn, vì vậy tôi sẽ giữ chúng trong bộ nhớ.
Là một cơ sở dữ liệu SQL đủ nhanh để sử dụng nó cho việc đọc và viết thông tin trò chơi trong thời gian thực, giống như vị trí của một nhân vật chuyển động? Tôi cũng cần quan tâm về khả năng tương thích đa nền tảng. Ngoài việc giữ mọi thứ trong bộ nhớ, tôi có những lựa chọn thay thế nào?
Lợi thế sẽ là
Ưu điểm của việc sử dụng cơ sở dữ liệu quan hệ như MySQL sẽ là cấu trúc định hướng dữ liệu cho phép tính toán nhanh. Tôi sẽ không cần các đối tượng để đại diện cho các thực thể. Tôi có thể dễ dàng truy vấn dữ liệu của các đối tượng gần trình phát cần thiết để kết xuất. Và tôi không phải quan tâm đến dữ liệu của các đối tượng ở xa. Hơn nữa, sẽ không cần lưu tên vì trạng thái trò chơi lỗ được lưu trong cơ sở dữ liệu. Cuối cùng nhưng không kém phần quan trọng, việc mở rộng trò chơi thành trò chơi trực tuyến sẽ tương đối dễ dàng vì đã có một nơi lưu trữ trạng thái trò chơi lỗ.