4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

データ指向設計(Data Oriented Design)でのゲーム開発について

Last updated at Posted at 2019-09-01

詳細

ゲーム開発を行う上での考え方に**データ指向設計 (Data Oriented Design)**というものがあります。

この数十年でCPUの性能が1万倍以上になっているのに対して、メモリの性能は10倍未満しか達していません。更に今後もCPUとメモリとの差はだんだん増えていくと思われます。
そのため、ゲーム開発でのボトルネックがメモリ帯域となることが多くなりました。01.png
**参考:**INTRODUCTION TO DATA ORIENTED DESIGN
https://www.ea.com/frostbite/news/introduction-to-data-oriented-design

ゲームの処理やパフォーマンスに一番影響されるのはメモリの読み取りスピードです。現在、CPUのほとんどの時間がメモリからのデータの転送待ちになっています。CPUの性能を引き出すためには、メモリ帯域をいかに効率よく使うかが重要になっています。

今後のゲーム開発では、メモリのデータを読み取るプロセスをできるだけ少なくすることに着目した設計が求められます。**データ指向設計 (Data Oriented Design)**ではこの様な考え方のもと、効率の良いメモリレイアウトを考えて設計します。

データ指向設計とは

プログラムでは、データを入力として受け取り、データに何らかの加工を行い、結果のデータを出力しています。
何をするにもデータが絡みます。そのため、データのメモリレイアウトや、データがどう読まれて書き出されるのかに着目した設計がデータ指向設計です。

Unityでのデータ指向設計について

Unityの場合はEntity Component System(略称:ECS)というソフトウェアアーキテクチャパターンがあります。

サンプルコード:EntityComponentSystemSamples
https://github.com/Unity-Technologies/EntityComponentSystemSamples
02.gif

参考

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?