ゲームでの継承は、実際に実行できる最悪のことの1つです(特にエンティティに関して)。理由についてはこちらをお読みください。継承を介した合成は、ゲームで長い道のりを歩みます。エンジンの他の領域に関しては、それは本当に重要ではありません。たとえば、ある種の外部ネットワークサービスを呼び出している場合、1つの汎用タイプのサービスをたとえばに継承できます。HTTPServiceとSocketService-慣れ親しんだエンタープライズアプリと同じです。
ゲームが本当に単純でない限り、コンポーネントベースのエンティティ(CBE)アーキテクチャを使用する必要があります。一般的な考え方は、エンティティの場合、継承されるのではなく一般的に構成されている理由は、特定のエンティティがどの機能を持つかを実行時まで知ることができないためです。。たとえば、プレイヤーの船をスペースシューターに乗せます。ゲームプレイのある時点まで、プレイヤーがどの武器、防具、システム(つまりコンポーネント)を拾い、購入、売却、損失、破壊したかなどはわかりません。したがって、これをモデル化する唯一の現実的な方法はオブジェクトの構成を通じて。このシナリオのプラス面は、敵の種類を見るたびに常に同じ敵ではなく、同じ方法で構築された完全にカスタマイズ可能な敵を持つこともできることです。したがって、CBEを使用すると、火星の貨物船が表示され、「あれは小さなレーザーしか持っていないので、それを降ろします」と思うかもしれません。ワームホール銃。サプライズサプライズ!
コンポーネント化は、ロジックの暗黙的な結合を除去することであり、それは良いことです。