Description:
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.
History
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.
DDAnimationClass
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.
DirectPlayClass
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.
DirectInputClass
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.
DirectPlayClass
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.