Final Project
Overview
There will be a final project in this course which accounts for 10% of the overall course grade and which will be completed during the last month of the course, aftermost of the major programming assignments have wrapped up.
If students are doing the linked inquiry with DIGS-250, they will create a plugin programmatically to add some effect to the game they're working on in that class. Otherwise, the project is open-ended.
Objectives
- Students will learn to scope out and follow through on a medium sized, open ended project.
- Students will learn how to apply technical knowledge in a creative, artistic application.
- Students will learn how to give and receive constructive feedback in a professional setting.
One of the biggest challenges will be to appropriately scope out your project under the time constraints. You want to have enough done that someone can explore your prototype and determine whether the concept "works." But you don't want to over-engineer and get stuck without something that runs. Please see these excellent videos on appropriately scoping out video game designs. Many of these ideas transfer to any highly complex project, not just video games.
Documentation
To save time in class, students will be required to make videos summarizing their work. For students doing the game, a simple way to do this could be to screencast playing the game, while talking over and explaining how it works. Students may also want to include some slides explaining some of the implementation details further. Once the videos are completed, each student will be randomly assigned 3-4 videos from other groups in the course to watch and for which to provide critical feedback. This feedback will factor into the participation grade.
NOTE: I will of course also be watching each video carefully myself.
Game Plugin Specification
For those in the LINQ, you will add on some effect to your plugin that uses concepts we went over in the class. For instance, you might implement a shader like this to make one of your characters pop. Or you might do something interesting with quaternions to help move your camera around in a custom way. Or something else entirely!
General Project Specification for Everyone Else
For everyone else, the sky is the limit! The only absolute requirement is that the project should use geometry in some way. In addition, you should do at least one other thing on this list:
- Put in an interesting graphical effect
- Incorporate real-time user interaction
- Incorporate basic physics or collision checks (using an engine is fine for this)
- Procedurally generate objects in the scene
- Incorporate some aspect of computational geometry / mesh processing
Grading Rubric
60% | Technical refinement: Does your project incorporate concepts we learned in graphics? How much did the project mature over the time you worked on it? How close are you to the final goal that you had? |
15% | Narrated video: Graded for overall clarity, quality of figures/animations, and demonstration of what you did so that other students can understand it |
10% | Code/Documentation/Mini Report: In lieu of a formal final report, you will submit a brief summary of what you accomplished, along with code and directions on how to use it. You can think of this as an extended README. You will be graded on the quality of your code and documentation (how easy is it for someone who doesn't know your project to run your code?). |
15% | Above and beyond: How much did you do to refine this project and to make it your own? Did you put any unique twists on it that weren't suggested by the instructor? |