Por ejemplo sake:
- Digamos que hay 10 habitaciones en el mundo.
- Y digamos que el mundo está habitado por 10 entidades.
- Y cada entidad tiene su propia "rutina diaria" donde realiza ciertas acciones en la sala y también puede navegar entre las salas.
Dado que el jugador solo puede estar en una habitación a la vez, ¿cuál es una buena manera de realizar un seguimiento de las acciones que realizan las otras entidades en otras habitaciones fuera de la pantalla?
- La opción más sencilla es verificar cada una de las 10 entidades en cada cuadro, verificar su posición / estado y determinar si la entidad debe estar o no en la habitación donde se encuentra el jugador en un momento dado. (Sin embargo, esto se siente realmente con muchos recursos, especialmente a medida que aumenta la cantidad de sala / entidad).
Otra opción es hacer un seguimiento del tiempo que ha pasado desde el comienzo del juego, luego cada una de las entidades verifica si su patrón se cruza con la sala en la que se encuentra el jugador, y si lo hace, compara con el tiempo si se supone que la entidad está en la misma habitación en este momento en particular, las entidades cuyos patrones no se cruzan con la habitación actual en la que se encuentra el jugador no hacen nada hasta que el jugador ingresa a una habitación en la que se cruza su patrón y solo en ese punto calculan si deberían rendir. (Pero si interactúan con la habitación, tendrán que verificar siempre el estado de las habitaciones que se cruzan con su ruta para determinar su ubicación en ese momento, lo que no es tan bueno).
La tercera opción a la que llegué sería, en primer lugar, mirar solo las rutas que se cruzan con la ubicación del jugador (como se describió anteriormente), en segundo lugar al ingresar a una habitación, verificar si el jugador está en esa habitación, si no, entonces solo verificar estado de la habitación y cuánto tiempo llevará pasar a la siguiente habitación. Por ejemplo, un NPC de conserje ingresa a la sala, verifica el estado de la sala, ve que el jugador haya realizado un derrame, calcula cuánto tiempo tomará limpiar eso y cuánto tiempo llevará el recorrido, etc. Y hasta que se mencione es hora de ingresar a la siguiente habitación, solo verificamos si el jugador está en la habitación. La ubicación exacta del NPC para fines de representación solo se calcularía cuando el jugador ingrese a la sala.
Después de una lluvia de ideas, llegué a la tercera opción, pero me preguntaba si tal vez hay una forma conocida o mejor de manejar estas cosas.