Моє запитання таке:
Як можна зберігати глобальні дані контексту, тобто. інформація про світові дані, поточний світовий час тощо в системі компонентів сутності?
Я думаю, що я працюю над тим, щоб створити світову імітаційну гру в стилі «Карлик-фортеця» в C ++. Я створив двигун ігрового двигуна для стильових компонентів просто для розваги, і зараз я намагаюся зрозуміти, як я буду працювати у всіх необхідних функціях. На додаток до стандартної гри в ігри (візуалізація, фізика, дані, що стосуються конкретних компонентів, тощо), я також хотів би мати деякі глобальні контекстуальні дані, до яких мали би доступ усі відповідні системи (тобто, світові дані, наприклад, на який рік це зараз , чи відбувається глобальне потепління, будь-які речі, які мали би відношення до моделювання світу). Я спочатку думав про створення "світового" компонента, але це здається безглуздим і складним, якщо багато різних систем потребують доступу до цих логічно "глобальних" даних.
Чи має сенс мати "світовий" компонент або я повинен зберігати ці дані іншим чином?
Я також думав би просто зробити ці дані глобальними, таким чином надавши доступ до будь-яких систем, які хотіли б їх використовувати; це здається порушенням принципів суб'єктних компонентів в цілому, і може бути безладним з інших причин, але я подумав, що це може справді спрацювати.
Інше, про що я думав, - це фактично вбудовувати відповідні дані світового контексту безпосередньо в самі системи. Наприклад, якби у мене були AgeSystem
"постарілі" всі сутності, у яких є getsWeakerAsTimePasses
компонент чи що-небудь ще, можливо, ця система могла б безпосередньо зберігати відповідні дані часу для світу як дані членів, які він використовував би для обчислення проходження часу і скільки вік і слабшають люди і т. д. Цей третій варіант був мені найменш улюбленим, але щось, що траплялося мені в мозковому штурмі.
Хтось може порадити?