私は最近、最初のゲーム エンジンを開発しているので、パフォーマンスがすべてです。私は C++ の専門家ではありませんが、いくつかの調査の結果、キャッシュとメモリ アラインメントの重要性を発見しました。
基本的に私が見つけたのは、ループなどで一緒にアクセスする必要がある場合は、メモリを特別に整列させることをお勧めすることです。
今、私のプロジェクトでは、ゲーム オブジェクト マネージャーを実行しており、GameObjects 参照の配列を持つことを考えていました。つまり、オブジェクトの実際の記憶が次々と得られます。
static const size_t MaxNumberGameObjects = 20;
GameObject mGameObjects[MaxNumberGameObjects];
しかし、ゲーム オブジェクトがコンポーネント (メッシュ、リジッドボディ、トランスフォーメーションなど) のリストを持つコンポーネント ベースのデザインを実装する場合、配列を使用して何か得られるのでしょうか?
とにかく、単純な std::map をゲーム オブジェクトの格納に使用している人を見たことがあります。それで、あなたたちはどう思いますか?
純粋なコンポーネント モデルを使用した方がよいでしょうか?