คำถามของฉันคือ:
วิธีหนึ่งจะเก็บข้อมูลบริบททั่วโลกเช่น ข้อมูลข้อมูลโลกเวลาโลกปัจจุบัน ฯลฯ ในระบบองค์ประกอบเอนทิตี
ฉันคิดว่าจะทำงานเพื่อสร้างเกมจำลองสถานการณ์แบบเปิดของ Dwarf Fortress สไตล์โลกใน C ++ ฉันได้สร้างเอ็นจิ้นเกมสไตล์เอนทิตีเพื่อความสนุกและตอนนี้ฉันกำลังพยายามหาวิธีที่ฉันจะทำงานในคุณสมบัติทั้งหมดที่ฉันต้องการ นอกเหนือจากการเล่นเกมมาตรฐาน (การเรนเดอร์ฟิสิกส์ข้อมูลส่วนประกอบเฉพาะเอนทิตี ฯลฯ ) แล้วฉันยังต้องการมีข้อมูลบริบทระดับโลกที่ระบบที่เกี่ยวข้องทั้งหมดสามารถเข้าถึงได้ (เช่นข้อมูลโลกเช่นปีปัจจุบัน ไม่ว่าจะเกิดภาวะโลกร้อนหรืออะไรก็ตามที่เกี่ยวข้องกับการจำลองโลก) เดิมทีฉันเคยคิดที่จะสร้างองค์ประกอบ "โลก" แต่มันดูไร้จุดหมายและยากหากระบบต่าง ๆ มากมายต้องการเข้าถึงข้อมูล "ทั่วโลก" อย่างมีเหตุผล
มันจะสมเหตุสมผลไหมที่จะมีองค์ประกอบ "โลก" หรือฉันควรเก็บข้อมูลนี้ด้วยวิธีอื่น?
ฉันยังคิดที่จะทำให้ข้อมูลนี้เป็นสากลดังนั้นจึงให้การเข้าถึงระบบใด ๆ ที่ต้องการใช้งาน ดูเหมือนเป็นการละเมิดหลักการองค์ประกอบเอนทิตี้โดยทั่วไปและอาจยุ่งเหยิงด้วยเหตุผลอื่น แต่ฉันคิดว่ามันอาจใช้งานได้จริง
สิ่งอื่นที่ฉันคิดว่าน่าจะฝังข้อมูลบริบทโลกที่เกี่ยวข้องลงในระบบโดยตรง ตัวอย่างเช่นถ้าฉันมีAgeSystem
"อายุ" เอนทิตีทั้งหมดที่มีgetsWeakerAsTimePasses
ส่วนประกอบหรืออะไรก็ตามบางทีระบบนี้อาจเก็บข้อมูลเวลาที่เกี่ยวข้องสำหรับโลกโดยตรงเป็นข้อมูลสมาชิกที่จะใช้ในการคำนวณเวลาที่ผ่านไปและจำนวนเท่าใด อายุและความอ่อนแอของผู้คน ฯลฯ ตัวเลือกที่สามนี้เป็นสิ่งที่ฉันชอบน้อยที่สุด แต่สิ่งที่เกิดขึ้นกับฉันในการระดมสมอง
มีใครให้คำแนะนำได้บ้าง