Por que os desenvolvedores de jogos de console usam arquivos grandes para armazenar dados de jogos em vez de arquivos pequenos, como no PC? Menos fluxos na memória? Precisa acessar a árvore de arquivos várias vezes? Outra razão?
Por que os desenvolvedores de jogos de console usam arquivos grandes para armazenar dados de jogos em vez de arquivos pequenos, como no PC? Menos fluxos na memória? Precisa acessar a árvore de arquivos várias vezes? Outra razão?
Respostas:
Ter um único arquivo grande traz alguns benefícios para o desempenho, independentemente da plataforma. Muitos jogos para PC também usam arquivos grandes.
É possível armazenar em cache manualmente o deslocamento de cada arquivo no arquivo grande, para evitar a necessidade de ler as entradas do diretório do sistema de arquivos (que podem envolver várias buscas por arquivo aberto, se você não encontrar o cache).
Você obtém controle total da ordem dos dados no arquivo, para organizá-lo para minimizar a necessidade de buscas lentas.
A compactação de dados geralmente é mais eficaz em um único arquivo grande do que em arquivos individuais.
Observe que evitar buscas é muito eficaz para acelerar os tempos de carregamento. Um disco rígido típico pode ter um tempo de busca de 10 ms e uma taxa de transferência de 100 MB / s. Digamos que você precise carregar 100 arquivos shader com um tamanho total de 1 MB. Se você precisar procurar por cada um, levará um segundo para carregar todos. Com uma única busca, você procura 20ms para carregar todos eles.
É claro que nem todos os consoles têm discos rígidos, e as unidades ópticas têm desempenho de busca ainda pior, portanto esses shaders podem levar 5 ou mais segundos para carregar um DVD durante a busca. Além disso, os consoles têm muito menos memória para uso como cache do que um PC; portanto, eles tendem a carregar dados com mais frequência.
Além da resposta muito boa dada por Adam, eu também gostaria de destacar alguns outros fatores importantes:
Quanto menos arquivos você tiver, mais fácil será a implantação do seu aplicativo. Isso é especialmente verdadeiro se você deseja implantar seu aplicativo em plataformas móveis, como iOS, Android ou Windows Phone. Mesmo que, no Windows Phone, você ainda possa ter quantos arquivos desejar, já que os arquivos XAP, usados para implantação, são apenas um arquivo zip, é
Ter todos os seus ativos em um único arquivo garante que todos sejam baixados / lidos "em partes" . Muitos jogadores pedem uma demora considerável para fazer o download de itens ou descompactá-los antes do início do jogo, mas não serão indulgentes desde que enfrentem pausas sutis durante o jogo. É claro que você pode pré-armazenar em cache seus recursos na RAM, mas carregá-los "em partes" ainda é mais fácil para esse propósito do que carregá-los por arquivo.