Um motivo comum é que nem sempre é fácil determinar se um recurso será necessário no futuro próximo.
Como você usou a paginação do terreno como exemplo, continuarei com isso.
É perfeitamente razoável se você estiver em uma determinada grade de mapa carregar todas as grades adjacentes em segundo plano. Você sabe que o usuário pode, na melhor das hipóteses, inserir um deles. Quando o fazem, você pode descarregar os que não estão mais adjacentes e carregar os que estão agora. Isso você anotou.
Agora imagine viagens rápidas. Não há absolutamente nenhuma maneira de prever para onde o usuário pode optar por ir. Eles têm (geralmente) quase todo o mapa para escolher. O pré-carregamento de todos os locais de viagem rápidos possíveis exigiria muita memória (você também pode carregar todo o mapa na memória) e muito tempo (supondo que você não tivesse o mapa inteiro pré-carregado). Quando isso aconteceria? Quando eles abrem a caixa de diálogo de viagem rápida? O problema só se tornaria várias vezes pior!
É por isso que mesmo a maioria dos jogos com paginação de terreno "sem carga" ainda tem telas de carga em viagens rápidas. Também é por isso que, se você se move rápido o suficiente, às vezes pode acionar o carregamento de telas em jogos mesmo com mapas sem carga (lembro de ter feito isso no TES Oblivion).
Agora imagine isso aplicado aos recursos do jogo em geral, onde os relacionamentos geralmente não são óbvios. Você precisará carregar todas as opções possíveis ou começar a adivinhar o que o usuário fará. Adivinhar é caro (tanto no desenvolvimento quanto na CPU) e uma bagunça complexa para programar. Exemplos específicos:
- Salvar arquivos: você precisaria carregar todos os arquivos salvos antes que o usuário chegue à tela de salvamento ou adivinhe qual arquivo eles podem carregar (5 mais recentes, etc.).
- Interface do usuário: muitos jogos de estratégia alteram a interface do usuário, dependendo da sua facção. Você precisaria carregar todos os designs de interface do usuário possíveis antes de o usuário iniciar o jogo.
- Mundo do jogo: em jogos gerados proceduralmente, como Minecraft ou RTS como Civilization, o mundo não existe até ser visto, em graus variados. Pré-carregar isso é impossível, pois eles não existiam para começar; pré-calculá-los poderia, na melhor das hipóteses, ser feito da mesma forma que pré-carregamento, e não é aplicável no caso do RTS.
Pode haver maneiras de contornar alguns desses problemas, mas isso custa dinheiro da vida real para descobrir. A maioria dos jogadores aceita telas de carregamento razoáveis e, se alguma coisa, tende a gastar mais em hardware para atenuá-las. É visto como um problema de hardware , não um jogo , a menos que seja excessivamente excessivo ou perturbador (como carregar no meio dos níveis).
E lembre-se, o carregamento em segundo plano não é gratuito. Geralmente, há um impacto mínimo do uso moderno de terrenos com carregamento em segundo plano e de alguns arquivos de modelo, mas se você repentinamente adivinhar muitos recursos diferentes, especialmente se não possui métricas confiáveis e precisa descarregar muitos recursos e carregar outros supérfluos , você pode moer o sistema em pó.
A idéia do carregamento em segundo plano é usar os ciclos mortos para um uso melhor, mas existem apenas tantos ciclos mortos para usar. O mesmo vale para a memória - o pré-carregamento pode aumentar substancialmente o uso de memória de um jogo. Com uma tela de carregamento, você pode despejar os recursos existentes. Não existe esse luxo com o carregamento em segundo plano, o que significa que poderia dobrar os requisitos de memória do jogo apenas com base nisso.