エンティティ・コンポーネント・システム
ECSによる設計には、いくつかの問題がある。
今日広く使用されている、Martinの用語 :
エンティティ: エンティティとは汎用オブジェクトである。通常、1つのユニークなIDのみで構成されるこれらは「すべての粗末なゲームオブジェクトを分離されたアイテムとしてタグ付けする」。実装は一般的に平凡な整数値をこれに使う。
コンポーネント: オブジェクトの1つの様相、あるいはこれが如何にして世界とインタラクトするか、を表す生のデータ。「エンティティをこの特有の様相を持つとラベル付けする」。実装は一般的に、構造体、クラス、あるいは連想配列を使う。
システム: 「各システムは継続的に実行され(あたかも各システムがそれぞれのプライベートスレッドを持つかのように)、そのシステムと同じ様相を持つコンポーネントを持つエンティティすべてに対して包括的な作用を実行する。」