Por que arquivos grandes são melhores que arquivos pequenos para consoles?

18

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?

Triang3l
fonte
Talvez um análogo no mundo da web: CSS Sprites
Nick T
Sprites CSS é uma desvantagem desagradável de ainda usar o velho HTTP 1.1 enferrujado, que aparentemente torna os servidores incapazes de enviar muitos recursos com uma única conexão. Desejo um novo padrão.
Kos
11
@Kos Seu desejo foi atendido , embora infelizmente ainda não tenha sido implementado.
Phihag #
Obrigado por isso! Quero assar um bolo para eles, para que funcionem mais rápido.
Kos

Respostas:

37

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.

Adão
fonte
9
Resposta muito boa. Direto ao ponto, com exemplos de busca de um arquivo x vários arquivos.
William Mariager 26/11
11
Além disso, para jogos on-line competitivos, é muito, muito mais rápido (e usa muito menos espaço em disco) verificar se o player não violou um único arquivo enorme do que validar individualmente milhares de arquivos pequenos.
Trevor Powell
Palavra-chave do Google: sistema de arquivos virtual. Além disso, a bem declarada necessidade de sistemas de arquivos virutais parece indicar que sistemas de arquivos não virtuais poderiam usar um pouco mais de polimento :(.
Kos
No entanto, isso é ruim para aqueles que usam SSDs - não podemos mover o material raramente carregado para os HDDs, porque todos os dados do jogo estão dentro de um arquivo grande. Digamos pelo WoW que nunca vou a Outland; Acabei de mudar esse arquivo do SSD. Não é tão factível para dizer ... CoD 4.
Mircea Chirea
6

Além da resposta muito boa dada por Adam, eu também gostaria de destacar alguns outros fatores importantes:

  1. 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, é

  2. 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.

Alexander Galkin
fonte
Fiz o desenvolvimento do Android e do BlackBerry e nunca tive nenhum problema em ter muitos arquivos pequenos. Eu não tinha conhecimento do benefício de arquivos maiores até agora, no entanto ... #
287 ADB