Programming assignments #3 and #4 - 3D Video Game

CS 248 - Introduction to Computer Graphics
Autumn Quarter, 1999
Marc Levoy
Handout #8


Assignment #3 Demos on Monday, November 15
Assignment #4 Demos on Friday, December 3
Assignment #4 Writeup due on Tuesday, December 7 by 5:00pm


Your assignment is to write a 3D video game using OpenGL. You are free to design and implement any sort of game you like, as long as it incorporates the required functionality described below. For purposes of this project, we consider a 3D video game to be an interactive 3D computer graphics application which has a challenging goal, is fun to play, and incorporates some concept of scoring or winning and losing. It is not required that your game idea be original, but originality will be rewarded with extra credit. If you have any questions about whether your idea meets the criteria for a 3D video game, please ask the course professor or a TA.

You are permitted (and encouraged) to form teams of 2-3 people and partition the work among the team members. The work expected from each team will be proportional to the size of the team. You can use the class newsgroup su.class.cs248 to find prospective team members.

Required functionality

Within the overall framework of your video game, you are required to include the following functionality:

In addition to these basic requirements, your game should incorporate some of the more advanced computer graphics techniques listed below, depending on the size of your project team. In particular, you are required to implement at least 2*N of these additional techniques, where N is the number of people on your team (i.e. groups of three people need to implement six techniques, individuals working alone are required to implement only two, etc.). Of course, you are encouraged to implement as many of these techniques as you can, depending on the requirements of your particular game engine, as well as using any other ideas you read about or invent on your own. Extra effort will be rewarded with extra credit.

A few hints

Video game submission requirements

Assignment #3 will serve as a checkpoint on the progress of your video game. On Monday, November 15 you will demonstrate your program to a member of the CS248 course staff. No writeup or submission of source code or other files is required for this phase of the project. To show reasonable progress, your "gameplay" should be basically working, and most of the required graphics functionality (3D viewing, user input, lighting, and texture mapping) should be implemented. The 2*N "advanced" techniques need not be in place. At the demo, we will give you feedback about your game, and we will discuss with you your plans for assignment #4. However, your grade for assignment #3 will be based only on the functionality you demonstrate on November 15.

Your final video game (assignment #4) will be demonstrated on Friday, Dec. 3. In addition to the CS248 course staff, a jury of computer graphics experts from industry and academia will be on hand to evaluate your programs as part of a video game competition. There will be one grand prize - an all-expenses-paid trip to Siggraph 2000 in New Orleans next summer, one second-place prize - dinner for two at Il Fornaio in Palo Alto and a copy of the Siggraph '99 Electronic Theater videotape, and three third-place prizes - a copy of the Siggraph '99 Electronic Theater videotape. If the grand prize is won by a team, it must be split among the team members. All other prizes will be duplicated as necessary to cover the team.

Final writeups and code and content submission for assignment #4 will be due on Tuesday, Dec. 7 at 5:00pm. At that time you should include a README file which describes how to build and run your video game, as well as explaining the computer graphics techniques you used. Also, your README file should include references to any external sources you referred to for inspiration, and should indicate how your 3D models and other game content were obtained. To submit your video game files, simply change the current directory to your assignment #4 directory and run the submit script, as you did for the first two assignments. Remember - no late demonstrations or writeup submissions will be accepted for assignment #4.

Good luck, and have fun!



Last update: November 17, 1999 05:15:09 AM