For assignment 2 you get to take
your first crack at actually programming a game. We will provide you with code
that handles most of the low-level messy stuff (such as selecting the video
mode, setting up a back buffer and page flipping, interacting with DirectX).
You have to design a 2D arcade game, draw the graphics and program the inner
workings of your game. You have three weeks to create a working arcade
game, so design and engineer carefully to make sure you are done on time. We
expect a game on the order of Centipede (or more!). The more
original the game is the better. You should not do a copy/clone of an
existing game. Be sure to attend the classes September 13 & 15, these
sessions will help you get to know the DXFramework and the requirements of the
assignment.
Your program must run under
Windows XP.
Your grade on assignment 2
will be based on 4 factors:
Is the game fully functional?
The
most important thing that we're looking for is a working game. It should
include scoring (if appropriate), multiple lives for the player, and the
ability to play multiple games. If the game is almost but not quite finished or
still contains bugs your grade will suffer much more than if it is a working
game with fewer features. When you design your game make sure you can finish
the project within the three-week time frame. Create a schedule and stick to
it. The best plan is not to try to write the whole thing before getting
anything to run. Do incremental development -- get something running and then
add more features.
Is the game nontrivial?
You
won't get a good grade if your final game is just pong or breakout with
different colors and a bigger paddle. Your game should be something you are
proud to hand in. More specifically, we will be looking at how many objects can
be in the game at once, how they interact - how good/realistic are any physics
and/or collision detection, sound, whether it can be played by two people (not
required, but sort of extra credit that makes up for other weaknesses),
originality, artwork, ... Other ways to make the game more complex are having
terrain, a playing area larger than the screen with scrolling, some objects
that behave independent of the player (AI!), ....
Is the game well designed?
We
talked about designing a game and what makes a game fun. Make sure you
demonstrate to us that you were paying attention in class and learned
something. This also includes things like how fun it is to play, whether it
looks good (has good graphics), has good "feel" in controlling the objects, ... The game should not be too easy or too hard
(maybe it can have different levels of difficulty!).
Is the game well documented?
You
must have a good design document that describes in detail what the concept of
the game is and how you implemented it. You must turn in your code and
a design document. If necessary, you may turn in a manual so we can play your
game. Better than a manual is having all of the instructions embedded in the game.
Finally, turn in a half page description of what you think makes your program good
according to the grading criteria listed above.
To do this assignment you
will need to use Microsoft Visual Studio .NET 2005, the DXFramework (see
below), and a paint program (such as Adobe Photoshop, the GIMP,
or other paint program available on CAEN machines, etc.).
C/C++ Compiler
You
need Microsoft Visual Studio .NET 2005.
The "DXFramework"
This
code has been written specifically for this assignment. It handles all of the
low level stuff that is such a pain in game programming so you can concentrate
more on creating the game. You can find the dxframework
package at http://dxframework.org/.
Follow the download link and grab the newest version's source zip file, which
will contain a project workspace where you will replace existing code with your
game. Notes on the DXFramework:
Paint Program
You
will have to create graphics for each of your game objects. You can use any
paint program that creates BMP and/or PNG files. Adobe Photoshop, the GIMP, etc.
are all appropriate choices.
You should test out
your program on the machines in the CAEN labs in the CSE building to make sure they run correctly.
You
will submit the following items on a CDROM. A single
zip file would be best. Please name the .zip file with your last name.
If I was handing in the assignment, it would be jamin.zip.
1.
Your game
executable -- runnable on PC in the CAEN labs in the CSE building.
2.
A design document
for you game.
3.
A folder containing
the source code of you game and the Visual Studio .NET project file.
4.
A manual for your
game if the instructions for running the game are not embedded in the game.
5.
A document that
points out how your program meets the grading criteria mentioned above.
I
will then begin the grueling task of playing all your games.