「エンティティ・コンポーネント・システム」の版間の差分

編集の要約なし
編集の要約なし
 
(同じ利用者による、間の1版が非表示)
4行目: 4行目:


== 概要 ==
== 概要 ==
データと処理が分離しているので上層部の思いつきによる急な仕様変更に強いという特徴がある。
ECSは「データ」と「処理」が分離していることで「階層構造がない」という特徴がある。
階層構造は「階層を大きく組み直したいとき」に依存関係が複雑すぎて「右を治したら左が壊れる」という状態に陥り破綻するという問題を抱えているが、ECSを使えばこの問題を回避できる。
このことから「上層部の思いつきによる急な仕様変更に強い」と言われる。


ゲーム業界では非常に人気がある。
* 「[[階層化の有害性]]」も参照
 
いわゆる「[[オブジェクト指向]]」を全否定したものだが、一部の[[オブジェクト指向プログラミング言語]]との相性は悪くなく、[[インターフェイス]]と[[構造体]]と[[LINQ]]を搭載する[[C#]]との相性は非常に良い。
 
ECSはゲーム業界では非常に人気がある。
[[ゲームエンジン]]の[[Unity]]も独自のECSを採用している。
[[ゲームエンジン]]の[[Unity]]も独自のECSを採用している。
いわゆる「[[オブジェクト指向]]」を全否定したものだが、[[オブジェクト指向プログラミング言語]]との相性は悪くなく、[[インターフェイス]]と[[構造体]]と[[LINQ]]を搭載する[[C#]]との相性は非常に良い。


== 主な用語 ==
== 主な用語 ==
40行目: 44行目:
* コンポーネントAを持つエンティティに対する処理(システム)
* コンポーネントAを持つエンティティに対する処理(システム)
* コンポーネントAとコンポーネントBを併せ持つエンティティに対する処理(システム)
* コンポーネントAとコンポーネントBを併せ持つエンティティに対する処理(システム)
[[category: プログラミング]]