Open7

bevy入門

scnshscnsh

ECSの説明 (bevy は この考え方で実装されている)

  • Entity Component System paradigm の略
  • Entities, Components, Systems の3つからなる
  • Entities は ユニークな "モノ"を表し、Componentsのグループが割り当てられる。
  • その Components は Systems によって処理される。

具体例

  • 1つのEntityが PositionVelocity Componentを持つとして、別のEntityが PositionUIコンポーネントを持つとする。
  • Systemsは特定の Component型の集合を実行するロジックになる。
  • movement system はPositionVelocityを持つ全てのentities を実行する。

ECSパターンを使うと、アプリ上のデータとロジックをコアのコンポーネントとして分離するように矯正されるので、きれいに分離された設計で実装できる。
またメモリアクセスへの最適化に効率化や並列化が簡単にできるなどのメリットがある。

(雑に日本語訳

scnshscnsh

BevyのECS

  • Components: 標準のRustデータ構造
  • Systems: 標準のRust関数
  • Entities: ユニークな整数型を持つ単純な型
scnshscnsh

Plugin

    • Pluginで必要な機能だけをセットアップできる。
  • Default Plugin もある。

Default Plugin

  • WIndowPlugin (windowとのインタフェース), WinitPlugin ( Winiitライブラリ ウインドウをOSネイティブの画面APIで作成する)によって、画面がポップアップする
  • hello message を繰り返すのは、"event loop" が含まれているから。ECS Scheduleは 1frame単位でループしている。

自作のPluginもできる