Open7
bevy入門
ECSの説明 (bevy は この考え方で実装されている)
- Entity Component System paradigm の略
- Entities, Components, Systems の3つからなる
- Entities は ユニークな "モノ"を表し、Componentsのグループが割り当てられる。
- その Components は Systems によって処理される。
具体例
- 1つのEntityが
Position
とVelocity
Componentを持つとして、別のEntityがPosition
とUI
コンポーネントを持つとする。 - Systemsは特定の Component型の集合を実行するロジックになる。
-
movement
system はPosition
とVelocity
を持つ全てのentities を実行する。
ECSパターンを使うと、アプリ上のデータとロジックをコアのコンポーネントとして分離するように矯正されるので、きれいに分離された設計で実装できる。
またメモリアクセスへの最適化に効率化や並列化が簡単にできるなどのメリットがある。
(雑に日本語訳
BevyのECS
- Components: 標準のRustデータ構造
- Systems: 標準のRust関数
- Entities: ユニークな整数型を持つ単純な型
Plugin
-
- Pluginで必要な機能だけをセットアップできる。
- Default Plugin もある。
Default Plugin
- WIndowPlugin (windowとのインタフェース), WinitPlugin ( Winiitライブラリ ウインドウをOSネイティブの画面APIで作成する)によって、画面がポップアップする
- hello message を繰り返すのは、"event loop" が含まれているから。ECS Scheduleは 1frame単位でループしている。
自作のPluginもできる