
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 attractive, 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 Ive 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
Andre Lamothe for writing damn good DirectX books
Have fun playing and coding,
Tony Tromp