一般的な理由の1つは、近い将来にリソースが必要になるかどうかを判断するのが常に同じように簡単ではないことです。
例としてテレインページングを使用したので、それを続けます。
特定のマップグリッドにいて、隣接するすべてのマップグリッドをバックグラウンドで読み込む場合は、まったく合理的です。ユーザーがせいぜいそれらの1つを入力できることを知っています。その場合、隣接していないものをアンロードして、現在のものをロードできます。これに注意しました。
今、速い旅行を想像してください。ユーザーがどこに行くかを予測する方法はまったくありません。(通常)ほぼすべてのマップから選択できます。すべての可能な高速移動場所を事前に読み込むと、メモリが非常に多くなり(最初にマップ全体をメモリに読み込むこともできます)、時間がかかりすぎます(マップ全体が事前に読み込まれていない場合)。これはいつ起こりますか?彼らは高速旅行ダイアログを開くとき?問題は数倍悪化するだけです!
これが、「ロードなし」の地形ページングを備えたほとんどのゲームでさえ、高速移動時にロード画面を保持する理由です。また、十分に速く移動すると、マップがロードされていないゲームでもロード画面をトリガーできることがあります(TES Oblivionでこれを行ったことを思い出します)。
ここで、これが一般的にゲームリソースに適用されることを想像してください。多くの場合、関係は明らかではありません。可能なすべてのオプションをロードするか、ユーザーが何をしようとしているかを推測する必要があります。推測はコストがかかり(開発とCPUの両方で)、プログラムを作成するのは複雑です。具体例:
- ファイルの保存:ユーザーが保存画面に到達する前にすべての保存ファイルをロードするか、ロードするファイルを推測する必要があります(最新5など)。
- UI:多くの戦略ゲームは、派factに応じてUIを変更します。ユーザーがゲームを開始する前に、考えられるすべてのUIデザインを読み込む必要があります。
- ゲームの世界:MinecraftやCivilizationのようなRTSゲームのような手続き的に生成されたゲームでは、さまざまな程度で見るまで世界は存在しません。そもそも存在しなかったため、これをプリロードすることは不可能です。それらの事前計算は、せいぜい事前ロードと同様に行うことができ、RTSの場合には適用できません。
これらの問題のいくつかを回避する方法があるかもしれませんが、それを理解するには現実のお金がかかります。ほとんどのゲーマーは、合理的なローディング画面を受け入れ、もしあれば、それらを軽減するためにハードウェアにより多くを費やすことをいとわない傾向があります。異常に過度であるか破壊的でない限り(レベルの途中でロードするなど)、ゲームの問題ではなくハードウェアの問題と見なされます。
バックグラウンドでの読み込みは無料ではありません。通常、バックグラウンドローディングテレインと一部のモデルファイルの現代的な使用による影響は最小限ですが、突然多くの異なるリソースについて推測している場合、特に信頼できるメトリックがなく、多くのリソースをアンロードして余分なリソースをロードする必要がある場合、システムをほこりにすることができます。
バックグラウンドローディングのアイデアは、より良い使用のためにデッドサイクルを使用することですが、使用するデッドサイクルはそれほど多くありません。メモリについても同じことが言えます。プリロードにより、ゲームのメモリ使用量が大幅に増加します。ロード画面を使用すると、既存のリソースをダンプできます。バックグラウンドでロードするような贅沢はありません。つまり、それだけでゲームのメモリ要件を2倍にすることができます。