Nemesis-7rc1 (Codename Deviate)


Nemesis-7 is a full-screen 2D shootem up that makes use of the DirectInput, DirectSound and DirectDraw interfaces from DirectX. The player controls a spaceship which he uses to duel the computer opponent. I implemented some artificial intelligence to make the CPU play more human. After doing this I really had to make him more stupid, because the damn CPU was unbeatable. You can find this code in the GameAI class located in the gameobjects drawer.  


When I just started the project there was no good resource on DirectX and C-sharp, and therefore it grabbed my attention to write a full-blown DirectX game to prove to my C++ mates that it is possible to do such a thing in C-sharp.  With full-blown I mean that it uses DirectX to process both input and output of the game. This generally speeds up the processing by its low-level architecture. The game I wanted to write should be sexy, but not too heavy. The reason for this is, I wanted to share the results with you within a few months and not after two years.  


To do:

-  Options menu is not finished by the time I released this. So I cut it out.
-  Support for DirectPlay, to do some Network battles with your friends.  

The programmers notes:  

In the src\DirectX\ directory you will find some wrapped up DirectX interfaces which I created to simplify DirectX access while writing code. These classes are easy and straightforward to use. 


The DDAnimationClass is a class which let you load a multiple frame indexed bitmap file and give control to snap the correct frame out of the lot, or present them one by one with a certain Interval and step.  


An easy to use wrapper for DirectPlay, which has a sub class called Sound. Within the Sound class you can Load .wav files to memory, play the sound buffer, play sound buffer looped mode, and fade sounds in/out.  


DirectInput is used to process the keyboard input actions. It was pretty hard to write this wrapper, but it really paid off by giving me a much faster response time than the normal keyboard and event triggering.  


I will add this class when I've finished it. It will allow Network playability of the game.    

Special Thanks to:

Ellen Waenink for testing and remarks.

Mark Johnsen for releasing the BreakOut source code.

It really helped a lot, and I still use the general structure of the game as well as the nice space picture you putted in there J

Andre Lamothe for writing damn good DirectX books  

Have fun playing and coding.

Similar Articles