Sé que la eficiencia es clave en la programación de juegos y he tenido algunas experiencias con la representación de un "mapa" anteriormente, pero probablemente no de la mejor manera.
Para un juego 2D TopDown: (simplemente renderiza las texturas / mosaicos del mundo, nada más)
Digamos que tienes un mapa de 1000x1000 (mosaicos o lo que sea). Si el mosaico no está a la vista de la cámara, no se debe renderizar, es así de simple. No es necesario renderizar un mosaico que no se verá. Pero dado que tiene 1000x1000 objetos en su mapa, o tal vez menos, probablemente no desee recorrer todos los mosaicos de 1000 * 1000 solo para ver si se supone que deben representarse o no.
Pregunta: ¿Cuál es la mejor manera de implementar esta eficiencia? ¿De modo que "más rápido / más rápido" puede determinar qué mosaicos se supone que se renderizarán?
Además, no estoy construyendo mi juego alrededor de fichas renderizadas con un SpriteBatch, por lo que no hay rectángulos, las formas pueden ser de diferentes tamaños y tener múltiples puntos, digamos un objeto curvo de 10 puntos y una textura dentro de esa forma;
Pregunta: ¿Cómo se determina si este tipo de objetos está "dentro" de la Vista de la cámara?
Es fácil con un rectángulo de 48x48, solo vea si X + Ancho o Y + Altura está en la vista de la cámara. Diferente con múltiples puntos.
En pocas palabras, cómo administrar el código y los datos de manera eficiente para no tener que ejecutar / recorrer un millón de objetos al mismo tiempo.