Click here to Skip to main content
11,578,739 members (63,081 online)
Click here to Skip to main content

SpaceWarrior - 2D DirectDraw Game - Part II

, 3 Jan 2007 134.9K 29
Rate this:
Please Sign up or sign in to vote.
An article on creating a simple 2D DirectDraw game (the game elements).


In the first part of this short game programming tutorial, you have seen how to create the main game window. Now, since we have a game scene, we need a game story, and game actors placed on that scene.

The Story

As we have agreed in the first part, we are going to create a simple 2D scrolling game (the space shooter game), learning that way the things that make up the game. So, the game story will be simple: you will pilot with the starship vessel through the asteroid field and fight against the enemy UFOs which will attack you during the game play. Now, let's see how to build these game elements.

The Player

I have decided to use some 3D modeling software in order to create the player starship and its animation. After some hard work, here is what came out (I am not a modeling expert as you can see):

The Player - Screenshot

Since this is a scrolling shooter, the player will move to left, right, up, or down, or in some combination of these four movements. But, I have created animation just for going left and right. So, what does this image represent at all? It is called tile set image of the game character. In the game, it will be known as a "sprite". If differs from a static image because it has more images that make up an animation when played one by one on the screen. The more the number of images, the smoother the animation will be, but it will take more system memory to hold it.

The Asteroid

I have also modeled the asteroid and came up with the following tile sets:

The Asteroid - Screenshot The Asteroid - Screenshot

The asteroid has a "rotating" animation, and is free to fly to any direction, but in this case, I have decided to make it fall from the top of the screen to the bottom. If it hits the starship enough times, it will destroy it. Also, if the star ship fires a plasma towards the asteroid and hits it, it will be destroyed. So, we need the explosion animation for this.

The Explosion

I found the free "explosion.gif", an animated explosion GIF image, on the Internet, and took out the frames, and got the following:

The Explosion - Screenshot

The explosion will occur in the case the starship hits the asteroid (and destroys it) or vice-versa.


The UFO modeled tile set looks like this:

The UFO - Screenshot

Now, the movement of the UFO will depend on some other things, but we can say in this moment that it can move in any direction. It will attack the player, but can not be damaged by the asteroids nor will it damage them.

The Plasma

The plasma is a simple image, found on the Internet (also free), which looks like this:

The Plasma - Screenshot The Plasma - Screenshot

The plasma is fired by the player starship or UFOs. It can go just up or down, and that is why there are two versions of the same image. Since it travels very fast, I thought it would be very silly to animate something like this.

The Star Field

The game background star field is generated as a different intensity random placed white pixels, like below:

The Starfield - Screenshot


Now, we have modeled, prepared, and explained each game element of interest in our game. You may notice that here is missing the sound part, since I haven't put any sound in the game yet, but I'll write a separate article about that topic when I do. In the next part, we will see how to initialize and shutdown the DirectX sub-system.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Software Developer (Senior) Elektromehanika d.o.o. Nis
Serbia Serbia
He has a master degree in Computer Science at Faculty of Electronics in Nis (Serbia), and works as a C++/C# application developer for Windows platforms since 2001. He likes traveling, reading and meeting new people and cultures.

You may also be interested in...

Comments and Discussions

-- There are no messages in this forum --
| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.150603.1 | Last Updated 3 Jan 2007
Article Copyright 2007 by darkoman
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid