I'm trying to design a small game using C# and XNA, before I start I wanted to make sure that this approach makes sense:
Basically, I want to create a GameObject Class that contains all elements that are common with everything I am going to draw on screen, be it a Weapon, Monster, Human, Pickup, etc.
So I was thinking I should create an Abstract Class called GameObject with Properties to set the Texture2D, Vector2 Location, A Draw() Method and a Move() Method.
Also, as I have Humans and Monsters, I could create a base class called Biped or similar and give it an "AttackBehavior" property (Which is a class in itself) so then I can create different attack methods (Humans attack Monsters, Monsters attack Humans). I would use an abstract implementation of the Move() method in my GameObject class so I can override it for items that don't move (Weapons, etc) and give different Move Speeds, patterns, etc to my Humans and Monsters.
So my questions are:
- Does this design pattern make sense? I've been reading Head First Design Patterns and reading about Composing objects (Hence my AttackBehavior object)
- What type of code should I put in my Game1.cs? Should this be the 'View' in the MVC pattern?