Per esempio amor:
- Diciamo che ci sono 10 stanze nel mondo.
- E diciamo che il mondo è abitato da 10 entità.
- E ogni entità ha la sua "routine quotidiana" in cui compie determinate azioni nella stanza e potrebbe anche navigare tra le stanze.
Dato che il giocatore può essere solo in una stanza alla volta, qual è un buon modo per tenere traccia delle azioni che le altre entità stanno compiendo in altre stanze fuori dallo schermo?
- L'opzione più semplice è quella di controllare ognuna delle 10 entità su ogni frame, controllare la loro posizione / stato e determinare se l'entità dovrebbe trovarsi o meno nella stanza in cui si trova il giocatore in un dato momento. (Questo tuttavia sembra molto pesante in termini di risorse, specialmente quando aumenta la quantità di stanza / entità.)
Un'altra opzione è quella di tenere traccia del tempo trascorso dall'inizio del gioco, quindi ciascuna entità verifica se il suo modello si interseca con la stanza in cui si trova il giocatore e se lo fa controlla in base al tempo se il si suppone che l'entità si trovi nella stessa stanza in questo particolare momento, le entità i cui schemi non si intersecano con la stanza corrente in cui si trova il giocatore non fanno nulla finché il giocatore non entra in una stanza in cui i loro schemi si intersecano e solo a quel punto calcola se dovrebbero rendere. (Ma se interagiscono con la stanza, dovranno sempre controllare lo stato delle stanze che intersecano il loro percorso al fine di determinare la loro posizione in quel momento, il che non è eccezionale.)
La terza opzione a cui sono arrivato sarebbe innanzitutto guardare solo le rotte che intersecano la posizione del giocatore (come descritto in precedenza), in secondo luogo entrando in una stanza, controllare se il giocatore è in quella stanza, se non poi controllare solo il stato della stanza e quanto tempo ci vorrà per passare alla stanza successiva. Ad esempio un NPC bidello entra nella stanza, controlla lo stato della stanza, vede che c'è una fuoriuscita fatta dal giocatore, calcola quanto tempo ci vorrà per ripulirlo e quanto tempo impiegherà il percorso ecc. E fino a quando menzionato il tempo è dovuto per entrare nella stanza successiva controlliamo solo se il giocatore è nella stanza. La posizione esatta dell'NPC ai fini del rendering sarebbe calcolata solo quando il giocatore entra nella stanza.
Dopo un po 'di brainstorming sono arrivato alla terza opzione, ma mi chiedevo se forse c'è un modo noto o migliore per gestire cose come queste?