Lưu trữ tài sản trò chơi: Lưu trữ so với các tệp riêng lẻ [đã đóng]


8

Khi tôi đang trong quá trình tạo trò chơi 3D c ++ và tôi đã tự hỏi điều gì sẽ có lợi hơn khi xử lý các tài sản trò chơi liên quan đến lưu trữ. Tôi đã thấy một số trò chơi có một tệp tài sản duy nhất được nén với mọi thứ trong đó và các tệp khác có rất nhiều tệp nén nhỏ.

Nếu tôi có nhiều tệp riêng lẻ, tôi sẽ không cần tải một tệp lớn cùng một lúc và sử dụng hết bộ nhớ nhưng mã sẽ phải tìm kiếm tệp khi cấp độ tải để tìm tất cả các tệp chính xác cần thiết.

Không có tìm kiếm tệp cần thiết khi xử lý một tệp lớn, nhưng một lần nữa, tất cả các tài sản hiện tại không cần thiết sẽ được tải với một tệp thì sao?

Tôi cũng có thể có một tệp tài sản cho từng cấp độ, nhưng sau đó làm thế nào để tôi xử lý các tài sản được chia sẻ

Điều này đã làm phiền tôi trong một thời gian vì vậy hãy cho tôi biết những lợi thế và bất lợi khác là gì trong cách làm việc này.


7
Ngay cả với một tệp lớn, bạn không tải mọi thứ vào bộ nhớ, bạn chỉ tải nó từ tệp khi bạn cần.
Kikaimaru

Câu trả lời:


9

Từ cả điểm hiệu năng và điểm lưu trữ, tập tin tài nguyên duy nhất là giải pháp có lợi hơn (tuy nhiên trong thực tế, nó không phải lúc nào cũng thực sự đáng chú ý). Hạn chế là khó cập nhật và quản lý hơn.

IMO thường không quan trọng lắm, chỉ cần sử dụng thuận tiện hơn cho bạn, đó thực sự chỉ là một chi tiết kỹ thuật không nên xem xét cho đến khi bạn thực sự nhận thấy một số vấn đề với nó.


6
+1, Làm những gì dễ nhất từ ​​quan điểm của nhà phát triển cho đến khi nó chứng minh được vấn đề
John McDonald

4

Các tệp được giải nén giúp người dùng dễ dàng chỉnh sửa và thay thế các tệp hơn, giúp trò chơi trở nên thân thiện với chế độ hơn nhiều. Điều này có thể được coi là một lợi thế hoặc bất lợi, tùy thuộc vào thái độ của bạn đối với việc sửa đổi.

Từ góc độ hiệu năng: Tải rất nhiều tệp nhỏ từ ổ cứng có thể chậm hơn rất nhiều so với một tệp lớn, vì việc chống phân mảnh của một hệ thống tệp thường sẽ cố gắng tránh chia nhỏ các tệp lớn, nhưng rất nhiều tệp nhỏ trong cùng một thư mục có thể nằm rải rác trên đĩa. Vì vậy, khi bạn tải hàng ngàn tệp nhỏ, ổ đĩa có thể phải thực hiện rất nhiều tìm kiếm. Nhưng mặt khác, sử dụng tài liệu lưu trữ có thể khiến việc lấy các tệp riêng lẻ từ bên trong kho lưu trữ tốn kém hơn (tùy thuộc vào cách lưu trữ của bạn được cấu trúc bên trong), vì vậy bạn nên cố gắng nhóm các tệp thường cần thiết với nhau.

Từ góc độ bảo trì: Trừ khi bạn có một công cụ để thực hiện cập nhật gia tăng cho các tệp gói của mình, các bản vá của bạn sẽ lớn hơn rất nhiều khi bạn phải thay thế toàn bộ các gói để vá một tệp riêng lẻ.


1

Thông thường một gói sẽ nhanh hơn, tuy nhiên không phải lúc nào cũng thuận tiện, như Petr nói. Tuy nhiên, một cách để chống lại điều đó là làm cho công cụ của bạn có thể tải các tệp lỏng lẻo và đóng gói các tệp. Sau đó, trong chế độ gỡ lỗi, tải các tệp lỏng lẻo và trong chế độ phát hành, tải từ một gói

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.