動作/属性GameComponentアーキテクチャ
私は大学生で、ゲーム開発は私にとって少し趣味です。私は新しいゲームを書いていて、ゲームエンジンをより柔軟に(そして将来の取り組みのための強固な基盤を提供できるようにするために)開発するための新しいアプローチを探しています。ゲームエンティティを表すために深い継承に依存するのではなく(継承ツリーのルートノードとリーフノードが重い場合や、場合によってはダイヤモンドの継承につながる可能性がある)方法に関するいくつかの記事を見つけましたが、より良いアプローチはロジックをモデル化することですコンポーネント内(より良い、動作と属性)。 これを示すプレゼンテーションは次のとおりです。http: //www.gdcvault.com/free/gdc-canada-09 「ゲームオブジェクトコンポーネントアーキテクチャの理論と実践...」 XNAとC#を使用してこれを実装しています。私はエンティティクラスがあります: class Entity { private Game1 mGame; private Dictionary<AttributeType, object> mAttributes; private Dictionary<BehaviorType, Behavior> mBehaviors; public Entity(Game game) { mGame = game; mAttributes = new Dictionary<AttributeType, object>(); mBehaviors = new Dictionary<BehaviorType, Behavior>(); } public Game GetGame() { return mGame; } //Attributes public void SetAttribute<T>(AttributeType attributeType, T …