On This Page
Overview
The main point of the project is to use the techniques we have discussed in class to produce an interactive video game. Remember to start simple and get some parts of the game working. Most of your assignments have built toward producing this game, so you should use the work from your assignments as much as possible. After you have the basic elements of the game working, then expand and improve in small steps.
I will grade the games more on the quality of programming and game play than on the quality of the graphics. So, make sure your game works well before you spend a lot of time drawing pictures. Remember that if you start out with simple pictures, or even just geometric shapes, you can always replace those later. A game with lots of pictures and cool animation which doesn't detect bullets hitting bad guys and can't react to user input will get a bad grade. A game with simple images which plays well will get a good grade.
^ top
Project Ideas
If you can't think of what to do, you might want to follow some successful patterns. There are many types of games which have been popular. Some particular varieties are:
- Pong variants
- Breakout (bounce a ball off a paddle to break rows of bricks)
- Frogger (try to get across a busy street)
- Space Invaders (shoot the aliens from the bottom of the screen)
- Asteroids (shoot things while flying around the screen)
- Chase games (like PacMan)
- Tank variants (shoot at an opponent, get shot at)
- Tetris variants (drop or move something into place)
Remember that while these might give you general ideas, you should not try to copy an existing game without permission of any copyright holders. Furthermore, it's more interesting to create your own game!
^ top
Specifications
Use the techniques we have discussed in class to produce a working version of a game. Your game must include:
- An introductory ("title" or "splash") screen. (2 points)
- In-game instructions for playing. (2 points)
- Some game play where the user interacts with the game and has a goal.
- At least one player sprite that moves under player control. (1 point)
- At least one sprite that moves under its own direction. (1 point)
- Something must happen when the player and non-player sprites interact. (2 points)
- There must be some ending condition to the game such as winning or losing. (2 points)
- At least one sprite image sequence that changes in response to a game event (such as changing directions or dying). (2 points)
- A display that keeps the player posted on game status like score, health, etc. (2 points)
- A closing "game over" screen. (2 points)
- Appropriate sound effects in response to game events like collisions. (2 points)
- Background MIDI music. (2 points)
Additional Specifications
- Your game must subclass the
GameCanvas class. (2 points)
- Package your program as an executable JAR file following the instructions to Archive Your Files in How To Submit Homework Assignments. (2 points)
- Write a project report with the information described below.
^ top
Extra Credit
Adding the following to your game are worth extra credit points:
- Extra good physics simulation (1 to 2 points).
Jumping does not count but all others are considered.
- Multiple game levels. (1 to 2 points)
One point for multiple levels and another point for interesting and significant changes as levels progress (like a change in maps, NPC capabilities, etc).
- Adaptive background music using a MIDI player that changes in response to game events. (1 to 2 points)
One point for changing music and another point for making smooth transitions using fading and tempo adjustments.
- A game configuration system where the user can make one or more changes to the way the game operates (1 to 3 points).
One point for being able to make changes, another point for using Swing GUI controls in a dialog and still another point for calling the dialog with a GameButton.
- Supporting additional input devices, such as a game controller, using JInput. (2 to 3 points)
- Adding a deployment option other than the executable JAR file you turn in to WebCT, such as:
- Java Applet (1 point)
- Java Web Start (1 point)
- Native-Executable Wrappers (1 point)
- Application Installers (1 to 2 points)
- Use your imagination and code something creative. (0 to 2 points)
Note that extra credit can be applied toward correcting both the final project and assignment deficiencies. If any points are "left over" beyond the maximum score for the project, then the excess points will be applied toward homework assignment scores.
Make certain that your README.txt file describes any extra credit attempted.
^ top
Project Report
The project report is an updated "final" version of your game proposal with some additional "post-mortem" analysis. Include the following headings and sections in your game project report:
- Concept
State the idea of the game in no more than five (5) sentences. Be sure to include the goal of the game.
- Gameplay
Give an overview of how the game is played. Include a description of how the player can both win or lose the game and the challenges the game provides. If you use a scoring system, then describe the scoring system as well.
- Story Line
Describe the background, characters and story line. If you do not know of a story, then make one up! Make the story line entertaining and applicable to the game play.
- Lessons Learned
Describe what went well and what was difficult when developing your game. Include recommendations for future students embarking on a game project. Optionally, list the future plans for your game.
For an example game project report, click here. As you can see, the report can be as short as a single page if you cover all the requirements succinctly.
^ top
Project Presentation
The final project must be demonstrated the day of the final.
- You are required to present your project but not necessarily in front of the class
- When everyone else is done, you can present it to the instructor individually
Have some way to install and run your game on the instructor machine:
- CD
- Email
- Memory stick
- WebCT
The presentation should proceed as follows:
- State your name and your project's name.
Not everyone may know your name, especially our visitors. We all want to know both your name and your project's name.
- Briefly state your game concept.
Pretend that you are presenting to a group of investors from whom you are asking for funds to further develop and market your game. You need to grab their attention in the first 30-45 seconds.
- Demonstrate your game, explaining aspects of the gameplay as you go.
For example, you might give the storyline with the title screen. Then start the game and pause it often so you can explain important features. Point out as many of the cool features as possible so we can all enjoy them.
- Summarize the concept.
When the game is over, or your time is up, then quickly summarize the game concept. Then pause for about 10 seconds to give us a chance to applaud!
Plan on keeping the game presentation to 10 minutes or less. Feel free to refer to or display your written report during the presentation.
^ top
Grading Criteria
The instructor will evaluate your assignment using the following criteria. Each criteria represents a specific achievement of your assignment and has a scoring guide. The scoring guide explains the possible scores you can receive.
Some scoring guides have a list of indicators. These indicators are a sign of meeting, or a symptom of not meeting, the specific criterion. Note that a single indicator may not always be reliable or appropriate in a given context. However, as a group, they show the condition of meeting the criterion.
For information on grading policies, including interpretation of scores, see the course information page.
Required Features
Points as shown in the parenthesis for each item in the specifications. (24 points)
Program Compilation
- 4: Source code compiles with no errors or warnings
- 2: Source code compiles with warnings
- 0: Does not compile
Game Functionality
- 10: Demonstrates mastery of game programming
- Has extra features or demonstrates techniques beyond the assignment
- Applies concepts from the lesson(s) appropriately
- Gameplay is logically consistent with the game
- No functional errors encountered during operation
- 8: Has all the functionality expected of the assignment
- Demonstrates many techniques from the course.
- Gameplay may have one minor error or inconsistency.
- Implementation seems more complicated than necessary.
- No functional errors encountered during operation
- 6: Has most of the functionality expected of the assignment
- Demonstrates some techniques from the course
- Gameplay may have 2-3 minor errors
- Implementation seems excessively complicated.
- No noticeable functional errors encountered during operation
- 4: Has some of the functionality expected of the assignment
- Demonstrates some techniques from the course
- Gameplay may have more than 3 minor errors
- Implementation seems excessively complicated.
- No significant functional errors encountered during operation
- 2: Serious functional problems but shows some effort and understanding
- Demonstrates few techniques from the course
- Gameplay has a major error or many minor errors
- Implementation seems very convoluted
- Functional errors encountered while playing the game
- 0: Game does not execute or was not demonstrated
JAR File Packaging
- 2: Program runs from the JAR file
- 1: Program does not run from the JAR file
- 0: No JAR file submitted
Programming Style
- 4: Code is well-documented
- 3: Code has minor documentation errors
- Has 1 documentation error
- 2: Code has some documentation errors
- Has 2-3 documentation errors
- 1: Code has many documentation errors
- Has more than 3 documentation errors
- 0: No apparent attempt to document code
REAME.txt File
- 2:
README.txt file submitted with specified information included
- 1:
README.txt submitted but some information was not included
- 0: No
README.txt file submitted
Report and Presentation
- 4: Project is presented and reported clearly and completely
- Student presents information in a logical and interesting sequence
- All requirements of the project were presented
- Written report was presented to instructor
- Report is well-written and grammatically correct
- All report headings present
- 3: Sampler presentation or report has minor problems
- Student presents information in a logical sequence
- All but one of the requirements were presented
- Some minor reporting requirements are missing
- Report contains spelling errors, but is otherwise clearly written
- Missing one report heading
- 2: Sampler presentation or report has significant problems
- Audience has difficulty following presentation because student jumps around
- At least 1/2 of the requirements were presented
- At least 1/2 of the reporting requirements were turned in
- Missing two report headings
- 1: Sampler presentation or report is unclear or incomplete
- Audience cannot understand presentation because there is no sequence of information
- Less than 1/2 of the requirements were presented
- Less than 1/2 of the report was completed
- Missing all the report headings
- 0: No report or not presented at the specified time
Maximum Score: 50, plus extra credit
^ top
What to Turn In
Submit your assignment following the instructions for homework. Include the following files for grading:
README.txt with instructions for installing and playing your game as explained in How To Submit Homework Assignments
- An excutable JAR file that runs your game when double-clicked on a Windows desktop
- A zip or JAR file with all your game source code.
The source code can be included in the same JAR file as the executable classes or in a separate file.
- Your project report in a file named
report.txt
You must submit all the files needed to make your assignment function properly and all your source code. Do not assume that the instructors has any files. Your source code must compile and your assignment must work as submitted.
^ top
Adding Your Project to the Hall of Fame
You decide whether or not to add your project to the Hall of Fame. To do so, you need to tell the instructor that it is OK in your README.txt file. For example:
You have my permission to publish my game in the Hall of Fame.
If you change your mind later, then email the instructor.
^ top
Home
| WebCT
| Announcements
| Schedule
| Expectations
| Course info
Help
| FAQ's
| HowTo's
| Links
Last Updated: June 05 2006 @14:31:16
|