Misalnya sake:
- Katakanlah ada 10 kamar di dunia.
- Dan katakanlah dunia dihuni oleh 10 entitas.
- Dan setiap entitas memiliki "rutinitas harian" sendiri di mana ia melakukan tindakan tertentu di dalam ruangan dan juga dapat bernavigasi di antara kamar.
Mengingat bahwa pemain hanya dapat berada di satu ruangan pada satu waktu, apa cara yang baik untuk melacak tindakan yang dilakukan entitas lain di kamar lain di luar layar?
- Opsi yang paling mudah adalah memeriksa masing-masing dari 10 entitas pada setiap frame, memeriksa posisi / negara mereka dan menentukan apakah entitas harus berada di ruangan di mana pemain berada pada waktu tertentu. (Namun ini terasa sangat berat sumber daya terutama karena jumlah kamar / entitas meningkat.)
Pilihan lain adalah untuk melacak waktu yang telah berlalu sejak awal permainan, maka masing-masing entitas memeriksa apakah polanya berpotongan dengan ruang pemain aktif, dan jika ia memeriksa terhadap waktu apakah atau tidak entitas seharusnya berada di ruangan yang sama pada waktu tertentu, entitas yang polanya tidak bersinggungan dengan ruang saat pemain berada tidak melakukan apa-apa sampai pemain memasuki ruangan yang berpotongan pola mereka dan hanya pada titik itu menghitung apakah atau tidak mereka harus membuat. (Tetapi jika mereka berinteraksi dengan ruangan, maka mereka harus selalu memeriksa keadaan kamar yang memotong rute mereka untuk menentukan lokasi mereka pada saat itu, yang tidak terlalu bagus.)
Opsi ketiga yang saya datangi adalah pertama-tama hanya melihat rute yang memotong lokasi pemain (seperti yang dijelaskan sebelumnya), kedua saat memasuki ruangan, periksa apakah pemain ada di ruangan itu, jika tidak maka untuk hanya memeriksa keadaan ruangan dan berapa lama untuk melanjutkan ke kamar berikutnya. Misalnya seorang petugas kebersihan NPC memasuki ruangan, memeriksa keadaan ruangan, melihat bahwa ada tumpahan yang dibuat oleh pemain, menghitung berapa banyak waktu yang diperlukan untuk membersihkannya dan berapa lama lintasan akan berlangsung dll. Dan sampai disebutkan waktunya tiba untuk memasuki kamar sebelah kami hanya memeriksa apakah pemain ada di dalam ruangan. Lokasi persis NPC untuk tujuan rendering hanya akan dihitung ketika pemain memasuki ruangan.
Setelah melakukan brainstorming beberapa saat, saya sampai pada pilihan ketiga, tetapi saya bertanya-tanya apakah mungkin ada cara yang diketahui atau lebih baik untuk menangani hal-hal seperti ini?