ゲームエンジン開発を行う上で重要な考え方にデータ指向設計 (Data Oriented Design) というものがあります。今回はこのデータ指向設計を例を交えながら紹介させていただきます。
データ指向設計は、その名の通りデータに着目した設計思想です。プログラムがやることは、データを入力にとって、何らかのデータを出力することです。データ指向設計では、そのデータをどのようにメモリに配置し、どのように読み込み、どのように書きだすのかに着目して設計を行います。
データ指向設計では主に次のようなことを行います。
- データのアクセスパターンを設計する
- データのアクセスパターンに応じてメモリレイアウトを設計する
さらに以下の点も考慮します。
- 複数のインスタンスを同時に処理するように設計する
これは複数のインスタンスを同時に処理するほうが最適化しやすいからです。