Una razón común es que no siempre es igualmente fácil determinar si un recurso será necesario en el futuro cercano.
Como usó la paginación del terreno como ejemplo, continuaré con eso.
Es perfectamente razonable si está en una cuadrícula de mapa dada para cargar todas las cuadrículas de mapa contiguas en segundo plano. Usted sabe que el usuario puede, en el mejor de los casos, ingresar uno de esos. Cuando lo hacen, puede descargar los que ya no están adyacentes y cargar los que ahora están. Esto lo has notado.
Ahora imagine un viaje rápido. No hay absolutamente ninguna manera de predecir dónde puede elegir ir el usuario. Tienen (generalmente) casi todo el mapa para elegir. La precarga de todos los posibles lugares de viaje rápido requeriría demasiada memoria (en primer lugar, también podría cargar todo el mapa en la memoria) y demasiado tiempo (suponiendo que no tuviera todo el mapa precargado). ¿Cuándo pasaría esto? ¿Cuándo abren el diálogo de viaje rápido? ¡El problema solo empeoraría varias veces!
Es por eso que incluso la mayoría de los juegos con paginación de terreno "sin carga" todavía tienen pantallas de carga en viajes rápidos. También es por eso que, si te mueves lo suficientemente rápido, a veces puedes activar pantallas de carga incluso en juegos con mapas sin carga (recuerdo haberlo hecho en TES Oblivion).
Ahora imagine que esto se aplica a los recursos del juego en general, donde las relaciones a menudo no son obvias. Tendrá que cargar todas las opciones posibles o comenzar a adivinar lo que el usuario va a hacer. Adivinar es costoso (tanto en desarrollo como en CPU) y un desorden complejo para programar. Ejemplos específicos:
- Guardar archivos: necesitaría cargar todos los archivos guardados antes de que el usuario llegue a la pantalla de guardar, o adivinar qué archivo podrían cargar (últimos 5, etc.).
- Interfaz de usuario: muchos juegos de estrategia cambian su interfaz de usuario dependiendo de tu facción. Tendría que cargar todos los diseños de interfaz de usuario posibles antes de que el usuario comenzara su juego.
- Mundo del juego: en los juegos generados por procedimientos, como Minecraft o juegos RTS como Civilization, el mundo no existe hasta que se ve, en mayor o menor medida. Precargar esto es imposible ya que no existían para empezar; calcularlos previamente podría, en el mejor de los casos, hacerse de manera similar a la carga previa, y no es aplicable en el caso de RTS.
Puede haber formas de solucionar algunos de estos problemas, pero eso cuesta dinero de la vida real . La mayoría de los jugadores aceptan pantallas de carga razonables y, en todo caso, tienden a estar dispuestos a gastar más en hardware para mitigarlos. Se ve como un problema de hardware , no un problema de juego , a menos que sea inusualmente excesivo o perjudicial (como cargar en el medio de los niveles).
Y tenga en cuenta que la carga en segundo plano no es gratuita. Por lo general, el uso moderno del terreno de carga en segundo plano y algunos archivos de modelo tiene un impacto mínimo, pero si de repente está adivinando sobre muchos recursos diferentes, especialmente si no tiene métricas confiables y tiene que descargar muchos recursos y cargar superfluos , puede moler el sistema en polvo.
La idea de cargar en segundo plano es usar los ciclos muertos para un mejor uso, pero solo hay tantos ciclos muertos para usar. Lo mismo ocurre con la memoria: la precarga puede aumentar sustancialmente el uso de memoria de un juego. Con una pantalla de carga, puede volcar los recursos existentes. No existe ese lujo con la carga de fondo, lo que significa que podría duplicar el requisito de memoria del juego solo en ese aspecto.