Câu hỏi của tôi là:
Làm thế nào một người sẽ lưu trữ dữ liệu bối cảnh toàn cầu, tức là. thông tin dữ liệu thế giới, thời gian thế giới hiện tại, vv trong một hệ thống thành phần thực thể?
Tôi nghĩ đến việc xây dựng một trò chơi mô phỏng thế giới kết thúc mở theo kiểu Pháo đài Lùn trong C ++. Tôi đã xây dựng một công cụ trò chơi theo phong cách thành phần thực thể chỉ để giải trí và hiện tôi đang cố gắng tìm ra cách tôi sẽ làm việc trong tất cả các tính năng tôi muốn. Ngoài việc chơi trò chơi tiêu chuẩn (kết xuất, vật lý, dữ liệu thành phần cụ thể, v.v.), tôi cũng muốn có một số dữ liệu theo ngữ cảnh toàn cầu mà tất cả các hệ thống có liên quan sẽ có quyền truy cập (ví dụ: dữ liệu thế giới như năm nay , cho dù sự nóng lên toàn cầu đang xảy ra, Bất kỳ loại điều nào có liên quan đến việc mô phỏng một thế giới). Ban đầu tôi đã nghĩ đến việc tạo ra một thành phần "thế giới", nhưng điều này dường như vô nghĩa và khó khăn nếu rất nhiều hệ thống khác nhau cần truy cập vào dữ liệu "toàn cầu" logic này.
Sẽ có ý nghĩa khi có một thành phần "thế giới" hay tôi nên lưu trữ dữ liệu này theo cách khác?
Tôi cũng đã nghĩ đơn giản là làm cho dữ liệu này trở nên toàn cầu, do đó cho phép truy cập vào bất kỳ hệ thống nào muốn sử dụng nó; Nó có vẻ như vi phạm các nguyên tắc thành phần thực thể nói chung, và có thể lộn xộn vì những lý do khác, nhưng tôi nghĩ rằng nó có thể thực sự hoạt động.
Một điều khác tôi nghĩ sẽ là thực sự nhúng dữ liệu bối cảnh thế giới có liên quan trực tiếp vào chính các hệ thống. Ví dụ: nếu tôi có một AgeSystem
"tuổi" tất cả các thực thể có getsWeakerAsTimePasses
thành phần hoặc không có gì, thì có lẽ hệ thống này có thể lưu trữ dữ liệu thời gian có liên quan cho thế giới dưới dạng dữ liệu thành viên mà nó sẽ sử dụng để tính thời gian trôi qua và bao nhiêu tuổi tác và những người yếu đuối, v.v. Lựa chọn thứ ba này là thứ tôi thích nhất, nhưng điều gì đó đã xảy ra với tôi trong việc động não.
Ai có thể tư vấn?