Files
quartz-research-note/content/Entity Component System.md
Matsuura Tomoya(Windows) 51fa440e02
All checks were successful
Build / build (push) Successful in 11m19s
[obsidian] vault backup: 2025-07-25 21:06:47[
2025-07-25 21:06:47 +09:00

1.5 KiB
Raw Blame History

#programming

主にゲームエンジンなどで採用されるプログラミングのパラダイム。

最近のUnityでも内部的に採用されている。

RustだとBevyが有名。

オブジェクト指向と比べると、データのメモリ分布が、オブジェクトごとに並ぶのではなく個別のメンバー変数ごとに並ぶことになり、CPUのメモリキャッシュに乗りやすいなどの利点がある。

[Rust] ECSアーキテクチャ [bevy_ecs] | DevelopersIO

Intro to ECS - Unofficial Bevy Cheat Book

データのモデリング方法としてなにがうれしいのか

オブジェクト指向と比べた時の利点が基本的にさっきのような、パフォーマンス面での利点が強調されることが多い。ただ、何かパフォーマンスのためにせっかくプログラミング言語が用意してくれたデータのモデリング技法を犠牲にしているような気がしてならず、あんまり旨味がよくわからなかった。

ただ、Bevyの設計をいろいろ読んでいると、モデリングとしての核心は、「集合の中から特定の要素を持つもの部分集合を指定して挙動を個別に操作する依存性がない操作同士はどういう順番で実行してもいい」ということかなと思った。