Наприклад заради:
- Скажімо, у світі є 10 номерів.
- Скажімо, світ населений 10 сутностями.
- І кожне підприємство має свій "розпорядок дня", коли воно виконує певні дії в кімнаті, а також може пересуватися між кімнатами.
Зважаючи на те, що гравець може перебувати лише в одній кімнаті за один раз, який хороший спосіб відстежувати дії, які інші суб'єкти виконують в інших екранах за межами екрану?
- Найпростіший варіант - це перевірити кожну з 10 сутностей на кожному кадрі, перевірити їх положення / стан та визначити, чи повинна особа знаходитися в кімнаті, де знаходиться гравець у будь-який момент часу. (Це, однак, вважає, що ресурс дуже важкий, особливо, коли кількість кімнат / об'єктів збільшується.)
Інший варіант - відстежувати час, що минув з початку гри, тоді кожен із суб'єктів перевіряє, чи перетинається його візерунок з кімнатою, на якій грає, і чи це він перевіряє на час, чи ні Суб'єкт повинен знаходитися в одній кімнаті в цей конкретний час, суб'єкти, чиї зразки не перетинаються з поточною кімнатою, в якій знаходиться гравець, не роблять нічого, поки гравець не ввійде в кімнату, в якій перетинається їхня картина, і лише в цей момент підраховують, чи ні вони повинні винести. (Але якщо вони взаємодіють із кімнатою, то їм доведеться завжди перевіряти стан кімнат, які перетинають їхній маршрут, щоб визначити їхнє розташування в той момент часу, що не так вже й велико.)
Третім варіантом, до якого я прийшов, було б, перш за все, лише подивитися на маршрути, які перетинають місце розташування гравця (як описано раніше), по-друге, зайшовши в кімнату, перевірте, чи грає в цій кімнаті, якщо ні, то лише перевірити стан кімнати та скільки часу буде потрібно, щоб перейти до наступної кімнати. Наприклад, двірник NPC заходить у приміщення, перевіряє стан кімнати, бачить, що є розлив, зроблений гравцем, обчислює, скільки часу знадобиться, щоб очистити його та скільки часу пройде шлях тощо. І поки згадане Час належить вступити до наступної кімнати, ми лише перевіряємо, чи грає в кімнаті. Точне розташування NPC для цілей рендерінгу буде розраховано лише тоді, коли гравець заходить до кімнати.
Після деякого мозкового штурму я прийшов до третього варіанту, але мені було цікаво, чи, можливо, існує відомий чи кращий спосіб поводження з такими речами?