Sunday, November 13, 2005

How it got started

First off I should mention why I'm doing this.

I'm a big fan off Xenon 2 and I loved the way you could buy and sell items for your ship at the end of a level. At one point you were able to have a ridiculously huge ship, well the same size ship but huge amount of addons put onto the side. From ion lasers to missiles launchers to hovering drones to side shooting things.
I liked the levels, they made good use of the sides of the screen having walls that you could hit or bouce off, plus you had monsters crawling accross, or was that R-Type? either way the walls were as dangerous as the enemies that came hurtling towards you. So I was certain from the beginning that I wanted that add-on feature in my game.


Years ago I created a 2d scrolling game. It was working from stars falling down to the enemies flying and shooting at you, to your ship being able to fly around. You could even upgrade your ship or change it.
I never did get round to finishing the game off however. Being a 2d game there was a lot of graphics works to be done and I just didn't have the time to create all the levels, graphics and animations I wanted. Since I now wanted to learn directx I thought, why not recreate this game in 3D, that way I can take advantage of lighting, meshes (hence not so much graphics works to be done), particles effects (so little or no explosion animations need to be pre-rendered) and other effects.




Since I was beginning development from scratch I tried to break the project up into two parts:
  • a Directx rendering engine project - This will handle all the interfacing with DirectX and the associated rendering routines. Hopefully as generic as possible.
  • a Game project - This will hold all the game related code, from SpaceShip classes to bullet and weapon classes to loading up resources (sounds,music,textures,meshes,etc).
I've never done any Directx programming before so there was steep learning curve to learn. The whole project/solution was as much about learning Directx 9, as it was about having fun and doing something that I eventually could be proud off.
After lots of searching I eventually found an example of Drectx 9 that didn't use DirectDraw. After reading through and digesting the code I later decided to make my game 3d and not use 2d bitmap sprites.
This example provided the basic skeleton of my eventual solution. I also found a fantastic example called PathFinder 3D that illustrated a lot of DX9 techniques. From how to draw particles to detecting what object the mouse is over (translating 2d screen coord to 3d world coords) and also how to set the opacity of objects.

With these two Directx9 examples and my years of knowledge I set out to create a 2d style scroller in a 3d world.
With the eventual aim of selling it.

0 Comments:

Post a Comment

<< Home


___