For assignment
2, you get to take your first crack at actually programming a game. We will
provide you with a framework that handles most of the low-level messy stuff
(initializing rendering devices, setting up back buffering and vertical sync, etc.).
You have to design a 2D arcade game, create 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. As Tim Gunn says, “Make it work.”
We expect a game on the order of Centipede (or more!). The game should not be a reimplementation (or scaled down version) of an existing game. The more original the game is the better. Be sure to attend the classes September 12 & 14 - these sessions will help you get to know zenilib and the requirements of the assignment.
Your game must run under Windows on the CAEN computers in the CSE computer labs.
Your grade on assignment 2 will be based on 5 factors:
Is the game well designed and fun to play? This is the most important factor.
We talked about designing a game and what make 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, and
must have different levels of difficulty, either through starting menu
selection, multiple levels with increasing difficulty, or dynamic adjustment of
difficulty during game play. It should also have elements where the player must
develop some strategies – it should not just be a move a shoot game. Sometimes
beginning game developers get caught up in the low-level programming and don’t step back to see the whole picture until it’s too late
– when developing your game, remember
that the final product must be enjoyable with good gameplay! The longer the
game is fun to play, the better. Have
friends play test early and often.
Is the game original?
The more original the better. The game should not be a clone
of an existing game. This year, the games cannot
be spaceship, airplane, car, … shooters – where you
control a ship, boat, plane, … and shoot and dodge things coming from above or
the side.
Is the game fully functional?
While good design is the most important factor, it will be almost impossible for the game to have good gameplay if it doesn’t work. Therefore, we’re looking for a working game. It should include scoring (almost always 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. Don’t 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!), … Thus part of your grade is how much work you put into it (that we can see when we play it).
Is the game well documented?
You must have a good design document that describes what the concept of the game is and how you implemented it. You should not turn in code, but you need to hand in a design document and a manual (so we can play it). 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.
In order to make it easier to grade, I would appreciate some mode that makes it possible to play through the game (and see all the great stuff you did) without becoming an expert at the game.
To do this assignment you will need to use Microsoft Visual Studio 2010 (Express) (or Visual Studio/C++ 2012), zenilib (see below), and a paint program (such as Adobe Photoshop, Macromedia Fireworks, the Windows Paint program available on CAEN machines, the GIMP, etc.).
C/C++ Compiler
You need Microsoft Visual Studio 2010 (or
Visual Studio/C++ 2012). Visual C++ 2010 Express is a free download.
The Zenipex Library (zenilib)
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 information and downloads for the Zenipex Library at http://zenilib.com. Follow the instructions and get the latest version of the zenilib and its supporting files.
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. The Paint program in windows, the shareware program Paint Shop Pro, Macromedia Fireworks, Adobe Photoshop and the GIMP are all appropriate choices.
You must test your program on the Windows machines in the CSE computer labs to make sure that it runs correctly. If you are doing your development elsewhere, you should test your game periodically on the CSE machines to avoid an unpleasant surprise on the day that your game is due!
1. On September 24, you must hand in a design document for your game. We will discuss design documents in class.
2. On Oct. 2, you must submit the final version of your program:
You will submit the following items via CTools. A single zip/7z file would be best. Please name the .zip file with your last name. If I were handing in the assignment, it would be laird.zip or laird.7z.
1. Your game executable – which must run on a CSE lab computer running Windows.
2. An updated design document for you game.
3. A manual for your game if the instructions for running the game are not embedded in the game.
4. A document that points out how your program meets (and possibly exceeds) the grading criteria mentioned above.
We will then begin the grueling task of playing all your games.
· If you have questions about zenilib please bring them up in class or post them to the Phorum.
·
If bugs are found
in the Zenipex Library we will post solutions in the Phorum: https://phorum.eecs.umich.edu/
· More details on running zenilib on your home computer are available at http://zenilib.com