シングルプレイヤーゲームで大きなレベルをチャンク/キャッシングする


8

大きな非線形レベルをファイルベースのチャンクにオフロードし、それらをオンデマンドでロードすることは意味がありますか?レンダリングのパフォーマンスを向上させるためにレベルチャンキングを実装しましたが、すべてのレベルオブジェクトは引き続きRAMに保持されます。

もしそうなら、どのように私たちは生きている/変化する世界の幻想を維持するのでしょうか?レベルは線形ではなく、むしろそれ自体が世界のようであるので、通過したものが永遠に過ぎ去ったと偽ることはできません。

レベルを十分に複雑にするだけでなく、常にメモリに永続化するのに十分最適化し、完全に離れたポイント(つまり、まったく新しいレベル)にジャンプできるようにするマイクロ/マクロジャンプポイントを実装することをお勧めします。世界の一貫性、そして変化する世界の幻想について。また、これにより、一見非線形の世界でわずかに線形のストーリーをたどることができます。プレイヤーを元の状態に戻す場合は、「遠い」レベルの既存の状態に新しい状態を適用するだけで十分です。

回答:


6

チャンクを作成することは本当に良い考えですが、賢く使う必要があります。非常に大きな世界のような錯覚を与えるために同じ考えを使用する多くの大きなタイトルがあります。たとえば、私は胞子や忘却について言及することができます。

まず、胞子について話しましょう。銀河の段階では、物事がどのように機能するかを簡単に確認できるからです。

銀河には多くの惑星がありますが、それらのすべてが同時に記憶にあるわけではありません。ある惑星のゲームに近づくたびに、その惑星のテクスチャがハードディスクから自動的に読み込まれます。次に、十分に近づくと、惑星に入り、いくつかの変更を加えることができます。あなたが惑星の中にいる間、宇宙に関するほとんどすべてのデータが割り当て解除されます。そして、あなたはあなたが好きなその惑星でどんな変化をするかもしれません。その後、スペースビューに戻ることができます。今回のゲームは他の惑星のデータをリロードし、その惑星で行った変更を保存します。たとえば、山を作成した場合、すべてのメッシュとテクスチャの変更は再びファイルに保存されます。ファイルに保存されるいくつかのイベントもあります。生物が惑星で進化するのを助ける装置を置くときのように。これらのイベントは、惑星から遠く離れてそれらをトリガーするまでアクティブのままです。

基本的な考え方は同じですが、忘却においては少し異なります。あなたが野生で歩くとき、ゲームは絶えずエリアを積み下ろししています。PS3で忘却をプレイしようとした場合、このプロセスにより移行領域にいくつかの小さな遅延が生じました(または少なくとも私はそうしたと聞きました)。ゲームを完全に停止するエリアもいくつかあり、あなたがあなたが住む洞窟に入るときのようにロード画面が表示されます。この方法を使用すると、都市の複雑さとメモリ使用量を簡単に削減できました。都市にある家の数と、それらをロードしたい場合に消費するメモリの量を考えてください。また、家に近づくたびに同じ荷積みシステムと荷降ろしシステムを使用したい場合は、ほぼすべてのhdd帯域幅が必要であり、hddに損傷を与える可能性があることにも注意してください。

私の答えを結論付けるために、私はあなたがあなたのゲームで広い領域のために同じ方法を使うことを勧めます。また、アンロード中にエリアでプレーヤーが行った変更を保存する必要があります。この方法は、プレイヤーに現実世界を探索する非常に快適な体験を提供します。ただし、オブジェクトが多く、データ転送にほとんどのストレージ帯域幅が必要になる可能性があると思われる領域では、ロード画面を使用する従来の方法を使用します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.