コンソール用に大きなファイルが小さなファイルよりも優れているのはなぜですか?


18

コンソールゲームの開発者がPCなどの小さなファイルではなく、大きなファイルを使用してゲームデータを保存するのはなぜですか?メモリ内のストリームが少ない?ファイルツリーに何度もアクセスする必要がありますか?他の理由?


おそらくウェブの世界のアナログ:CSSスプライト
ニックT

CSSスプライトは、古い錆びたHTTP 1.1をまだ使用することの厄介な欠点であり、サーバーが単一の接続で多くのリソースを送信できないようです。新しい標準が欲しい。
コス

1
あなたの願いがされてい@Kos 付与された、けれども、残念ながらまだ実装されていません。
フィハグ

これをありがとう!彼らがより速く働くように、私は彼らにケーキを焼きたいです。
コス

回答:


37

プラットフォームに関係なく、単一の大きなファイルを使用すると、パフォーマンスにいくつかの利点があります。多くのPCゲームも大きなファイルを使用します。

  • 大きなファイル内の各ファイルのオフセットを手動でキャッシュして、ファイルシステムディレクトリエントリを読み込む必要を回避できます(キャッシュを見逃した場合、ファイルごとに複数のシークが発生する可能性があります)。

  • ファイル内のデータの順序を完全に制御できるため、遅いシークの必要性を最小限に抑えるようにデータを調整できます。

  • 一般に、データ圧縮は、個々のファイルよりも単一の大きなファイルでより効果的です。

シークを避けることは、ロード時間を短縮するのに非常に効果的であることに注意してください。一般的なハードドライブのシーク時間は10ミリ秒、転送速度は100 MB /秒です。合計サイズが1MBのシェーダーファイルを100個ロードする必要があるとします。それぞれのシークを行う必要がある場合、すべてをロードするのに1秒かかります。1回のシークでは、すべてをロードするために20ミリ秒を見ています。

もちろん、すべてのコンソールにハードドライブがあるわけではなく、光学ドライブのシークパフォーマンスがさらに悪いため、これらのシェーダーはシーク時にDVDをロードするのに5秒以上かかる場合があります。また、コンソールはPCに比べてキャッシュとして使用するメモリがはるかに少ないため、データをより頻繁にロードする傾向があります。


9
とてもいい答えです。要するに、1つのファイルと複数のファイルを探す例があります。
ウィリアムマリアガー

1
さらに、競争力のあるオンラインゲームの場合、何千もの小さなファイルを個別に検証するよりも、プレーヤーが1つの巨大なファイルを改ざんしていないことを検証する方がはるかに高速です(そして、使用するディスクスペースがはるかに少なくなります)。
トレバーパウエル

Googleキーワード:仮想ファイルシステム。またVirutalのファイルシステムのためのよく述べた必要性は、非仮想ファイルシステムは、いくつかのより多くの研磨:(使用できることを示していると思われる
コス

しかし、これはSSDを使用している私たちにとっては悪いことです。すべてのゲームデータは大きなファイル内にあるため、まれにしかロードされないものをHDDに移動することはできません。うわー、私は決してアウトランドに行ったことはありません。そのファイルをSSDから移動するだけです。そう言うのためになんとかではない...のCoD 4
ミルチャChirea

6

Adamからの非常に良い答えとは別に、私は他のいくつかの重要な要因を指摘したいと思います。

  1. ファイルの数が少ないほど、アプリケーションの展開が簡単になります。 これは、iOS、Android、Windows Phoneなどのモバイルプラットフォームにアプリケーションを展開する場合に特に当てはまります。Windows Phoneの場合でも、展開に使用されるXAPファイルは単なるzipアーカイブであるため、必要な数のファイルを保持できます。

  2. すべてのアセットを1つのファイルにまとめることで、すべてのアセットが「断片的に」ダウンロード/読み取られることが保証されます。多くのゲーマーは、ゲームの開始前にアセットのダウンロードまたはアンパックに顕著な遅延を許しますが、ゲーム中に微妙な一時停止に直面する限り、彼らは寛大ではありません。もちろん、リソースをRAMに事前にキャッシュすることもできますが、ファイルごとにリソースをロードするよりも、「個別に」リソースをロードする方が簡単です。


AndroidとBlackBerryの開発を行ったことがありますが、小さなファイルが多すぎるという問題に遭遇することはありませんでした。私は...しかし、今までより大きなファイルの利益を知らなかった
ADB
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.