EnTT
詳細情報
- 作者
- Michele Caini(skypjack)
- 公開
- 2017年
- 種別
- C++ライブラリ
- ライセンス
- MIT
- ソースコード
- github.com/skypjack/entt
アーキタイプではなくスパースセットでエンティティ・コンポーネント・システムを実現する、ヘッダオンリーの現代的なC++ライブラリ。
Michele Caini が2017年に公開した。コンポーネントの型ごとにスパースセット(コンポーネントを詰めた密配列と、エンティティIDで引くスパースな添字の組)を持つ。そのため、コンポーネントの追加や削除はほぼ無料だ。エンティティ全体をテーブル間で移し替えるアーキタイプ方式とはこの点が違う。代償は複数のコンポーネントを同時に走査するときに現れ、EnTT は集合の並びを揃えて保つ「グループ」でこれを和らげている。
エンジンではなく部品であり、Minecraft Bedrock Edition のECSの中核として最もよく知られる。どちらの格納方式が本当に速いのかという終わらない論争では、基準点の役割も果たしている。答えは例によって「場合による」だ。