Abstracting support for 3D models
We know we will need to support at least three different models in Mars Runner. The player will need a vehicle to drive, the alien enemy will be flying a saucer, and we will need projectiles for both the player and the enemy to fire.
Instead of building all of the code to support 3D model rendering into separate classes for each of the entities, we will create a base class that will handle the common functionality for our different objects' need.