Perché gli sviluppatori di giochi per console utilizzano file di grandi dimensioni per archiviare i dati di gioco anziché file di piccole dimensioni come su PC? Meno flussi in memoria? Devi accedere all'albero dei file più volte? Un'altra ragione?
Perché gli sviluppatori di giochi per console utilizzano file di grandi dimensioni per archiviare i dati di gioco anziché file di piccole dimensioni come su PC? Meno flussi in memoria? Devi accedere all'albero dei file più volte? Un'altra ragione?
Risposte:
Avere un singolo file di grandi dimensioni ha alcuni vantaggi in termini di prestazioni, indipendentemente dalla piattaforma. Molti giochi per PC usano anche file di grandi dimensioni.
È possibile memorizzare manualmente nella cache l'offset di ciascun file all'interno del file di grandi dimensioni, per evitare la necessità di leggere le voci della directory del file system (che può comportare più ricerche per file aperte se si perde la cache).
Ottieni il pieno controllo dell'ordine dei dati all'interno del file, in modo da poterlo organizzare per ridurre al minimo la necessità di ricerche lente.
La compressione dei dati è generalmente più efficace su un singolo file di grandi dimensioni, rispetto ai singoli file.
Si noti che evitare le ricerche è molto efficace per accelerare i tempi di caricamento. Un tipico disco rigido potrebbe avere un tempo di ricerca di 10 ms e una velocità di trasferimento di 100 MB / s. Supponiamo che sia necessario caricare 100 file shader con una dimensione totale di 1 MB. Se devi fare una ricerca per ognuno, ci vorrà un secondo per caricarli tutti. Con una sola ricerca stai guardando 20ms per caricarli tutti.
Ovviamente non tutte le console hanno dischi rigidi e le unità ottiche hanno prestazioni ancora peggiori, quindi quegli shader potrebbero impiegare 5 o più secondi per caricare un DVD durante la ricerca. Inoltre le console hanno molta meno memoria per l'uso come cache rispetto a un PC, quindi tendono a caricare i dati più spesso.
Oltre all'ottima risposta fornita da Adam, vorrei anche sottolineare alcuni altri importanti fattori:
Il minor numero di file che hai più facile è la distribuzione della tua applicazione. Ciò è particolarmente vero se si desidera distribuire l'applicazione su piattaforme mobili, come iOS, Android o Windows Phone. Anche se nel caso di Windows Phone è ancora possibile avere tutti i file desiderati, poiché i file XAP, utilizzati per la distribuzione, sono solo un archivio zip, è
Avere tutte le risorse in un singolo file garantisce che siano tutte scaricate / lette "in pezzo" . Molti giocatori ti scuseranno di un notevole ritardo per il download di risorse o per la loro decompressione prima dell'inizio del gioco, ma rimarranno indulgenti fintanto che dovranno affrontare anche pause sottili durante il gioco. Ovviamente puoi pre-memorizzare nella cache le tue risorse nella RAM, ma caricarle "in pezzo" è ancora più facile per questo scopo che caricarle in base al file.