「エンティティ・コンポーネント・システム」の版間の差分
Administrator (トーク | 投稿記録) 編集の要約なし |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| (同じ利用者による、間の1版が非表示) | |||
| 4行目: | 4行目: | ||
== 概要 == | == 概要 == | ||
ECSは「データ」と「処理」が分離していることで「階層構造がない」という特徴がある。 | |||
階層構造は「階層を大きく組み直したいとき」に依存関係が複雑すぎて「右を治したら左が壊れる」という状態に陥り破綻するという問題を抱えているが、ECSを使えばこの問題を回避できる。 | |||
このことから「上層部の思いつきによる急な仕様変更に強い」と言われる。 | |||
* 「[[階層化の有害性]]」も参照 | |||
いわゆる「[[オブジェクト指向]]」を全否定したものだが、一部の[[オブジェクト指向プログラミング言語]]との相性は悪くなく、[[インターフェイス]]と[[構造体]]と[[LINQ]]を搭載する[[C#]]との相性は非常に良い。 | |||
ECSはゲーム業界では非常に人気がある。 | |||
[[ゲームエンジン]]の[[Unity]]も独自のECSを採用している。 | [[ゲームエンジン]]の[[Unity]]も独自のECSを採用している。 | ||
== 主な用語 == | == 主な用語 == | ||
| 40行目: | 44行目: | ||
* コンポーネントAを持つエンティティに対する処理(システム) | * コンポーネントAを持つエンティティに対する処理(システム) | ||
* コンポーネントAとコンポーネントBを併せ持つエンティティに対する処理(システム) | * コンポーネントAとコンポーネントBを併せ持つエンティティに対する処理(システム) | ||
[[category: プログラミング]] | |||