Difference between revisions of "Game Programming Class4"

esse quam videri
Jump to: navigation, search
(Game Components)
(Game Components)
Line 11: Line 11:
 
Common methods
 
Common methods
  
Enabled
+
'''Enabled'''
 
:Indicates whether GameComponent.Update should be called when Game.Update is called.  
 
: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.  
+
'''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)  
 
(available if it is a DrawableGameComponent)  
  
Visible:Indicates whether Draw should be called.
+
'''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.
+
'''DrawOrder'''
 +
:Order in which the component should be drawn, relative to other components that are in the same GameComponentCollection.
  
 
==Game Service==
 
==Game Service==

Revision as of 21:41, 14 February 2010

Game Components

About components Application Overview

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

  • GameComponent Class
  • DrawGameComponent Class

http://blogs.msdn.com/xna/archive/2006/08/31/734204.aspx

Common methods

Enabled

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.

  • IntroConsole.zip
  • IntroGameLibrary.zip

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.


<csharp>

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

</csharp>

IntroConsole/Game1.cs

Homework

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

Bonus

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