Game Programming Class4

esse quam videri
Revision as of 21:23, 14 February 2010 by Jeff (talk | contribs) (Game Components)
Jump to: navigation, search

Game Components

About components Application Overview

Game Components are reusable and easy to add to a game.

  • GameComponent Class
  • DrawGameComponent Class

Common methods


Indicates whether GameComponent.Update should be called when Game.Update is called.

UpdateOrder:Indicates the order in which the GameComponent should be updated relative to other GameComponent instances. Lower values are updated first.

(available if it is a DrawableGameComponent)

Visible:Indicates whether Draw should be called.

DrawOrder:Order in which the component should be drawn, relative to other components that are in the same GameComponentCollection.

Game Service

A game service is a game component that uses an interface to enforce a singleton pattern and make a single instance of a game component accessible to all other components. It's a nice mechanism to maintain a loose coupling between components.

A singleton is a class that only allows a single instance of the class to be created. A game service is not a true singleton as it uses a unique interface to identify and expose it at the game level.

A game service is a built in mechanism that allows a game to create and manage a single instance of a component ans allows other components access to the service.

Good candidates for a game service are.

  • InputHandler
  • GameConsole
  • Profiling Service
  • Scoreboard

Microsoft has added the

Console Class

Separate IntroGameLibrary Project to help Encapsulate Reusable Code.


IntroGameLibrary/GameConsole.cs To add the Component to the Game we make an declare in the game class. Then we need to add the component to the Game Components Collection.


       GameConsole gameConsole;
       public Game1()
           graphics = new GraphicsDeviceManager(this);
           Content.RootDirectory = "Content";
           gameConsole = new GameConsole(this);




  • Use the fps component to create a baseline log
  • Convert Project 3 to use the inputHandler service


  • Create your own game service and use it in an xna project