The final core class of the engine is the “Engine” class. This class maintains the GameScreen stack, keeps track of utility classes, and is the starting point for updating and drawing all the GameScreens and thus all the Components. Later on it will also be in charge of saving and loading the state of the [...]
-
October 21st, 2009 by Sean
One feature of the GameScreen is that it can draw components in whatever order they want to be drawn in. This can be useful for features like transparency, where transparent objects must be drawn last so that they can draw over the object behind them. To implement this, we will provide a property on the [...]
-
October 20th, 2009 by Sean
Add a new class to your engine’s project, and this time call it “GameScreen”. Once again we can remove some of the “using” statements, until we are left with the following. using System; using System.Collections.Generic; namespace InnovationEngine { public class GameScreen { } } As GameScreen is in charge of managing a set of components, [...]
-
October 20th, 2009 by Sean
The component class is pretty simple. It only needs to (for now) provide an Update function and a Draw function, and keep track of its name. The name needs to remain unique, meaning that it must always be the only component that has that name. This is so that later on when we get into [...]
-
October 20th, 2009 by Sean
Let’s start with some design discussion. Possibly the most useful thing you can do with your game engine is modularize it. This means that you have a separate class for each “thing” you will have in the game. For example, you will have a terrain class that only works with terrain, and a sky class [...]
-
October 19th, 2009 by Sean
First things first, you need Microsoft Visual C# Express Edition and Microsoft XNA Game Studio installed on your computer. If you don’t, follow Microsoft’s XNA Quick Start Guide. Once you have installed everything, go ahead and launch Visual C# Express. The first thing we must do with any project is create the “Solution” file, which [...]
-
October 19th, 2009 by Sean