Örneğin aşkına:
- Diyelim ki dünyada 10 oda var.
- Diyelim ki dünyada 10 kişi yaşıyor.
- Ve her varlığın kendi "günlük rutini" vardır, burada odada belirli eylemler gerçekleştirir ve odalar arasında gezinebilir.
Oyuncunun bir seferde sadece bir odada olabileceği düşünüldüğünde, diğer varlıkların diğer odalarda ekran dışında gerçekleştirdiği eylemleri izlemenin iyi bir yolu nedir?
- En basit seçenek, her karedeki 10 birimden her birini kontrol etmek, konumlarını / durumlarını kontrol etmek ve varlığın oyuncunun herhangi bir zamanda bulunduğu odada olup olmayacağını belirlemektir. (Ancak bu, özellikle oda / varlık miktarı arttıkça gerçekten kaynak ağır geliyor.)
Başka bir seçenek, oyunun başlangıcından bu yana geçen süreyi takip etmektir, daha sonra her bir varlık, modelinin oyuncunun bulunduğu odayla kesişip kesişmediğini kontrol eder ve eğer varlığın bu belirli zamanda aynı odada olması gerekir, kalıpları oyuncunun bulunduğu odayla kesişmeyen varlıklar, oyuncu kalıplarının kesiştiği bir odaya girene kadar hiçbir şey yapmaz ve sadece o noktada hesaplanıp hesaplanmayacağını hesaplar render etmeleri gerekir. (Ama oda ile etkileşime girerse, o zaman o zamandaki konumlarını belirlemek için rotalarını kesen odaların durumunu kontrol etmek zorunda kalacaklar, ki bu o kadar da büyük değil.)
Geldiğim üçüncü seçenek, her şeyden önce sadece oyuncu konumuyla kesişen rotalara (daha önce açıklandığı gibi) bakmak, ikincisi bir odaya girdikten sonra, oyuncunun o odada olup olmadığını kontrol etmek, eğer değilse odanın durumu ve bir sonraki odaya geçilmesi ne kadar sürer. Örneğin, bir hademe NPC odaya girer, odanın durumunu kontrol eder, oyuncu tarafından yapılan bir dökülme olduğunu görür, temizlemenin ne kadar zaman alacağını ve yolun ne kadar süreceğini vb. Hesaplar. Bir sonraki odaya girme zamanı geldiğinde, sadece oyuncunun odada olup olmadığını kontrol ederiz. NPC'nin oluşturma amaçları için tam yeri sadece oyuncu odaya girdiğinde hesaplanır.
Bir süre beyin fırtınasından sonra üçüncü seçeneğe geldim, ama belki de böyle şeyleri işlemenin bilinen veya daha iyi bir yolu olup olmadığını merak ediyordum?