3501 Project Description
One of the main components of the course is a large project, to
be undertaken in a group of 2 or 3
and to be presented in class. Your final
submission will include your implementation, adequately documented,
and a written report, not to exceed 10 pages. You may choose
from among the project ideas listed below, or
propose a topic of your own. Proposed topics must be approved by
the instructor.
There are only three requirements for the project: that the
result be an interactive computer program, that the
program is written using XNA 3.1, and that it include 3D graphics in some way.
Beyond that, you are free to
decide on your own what to do and what resources to draw on.
Scope of the Project
The project should be a substantial undertaking, and the more people
on your team, the more impressive the results should be. Notice that the
weighting on the project is almost as much as for all the assignments
together. So, if you find yourself spending (say) 4 hours per week on
assignments, you should also spend 4 hours per week on the project.
Do NOT leave things to the last minute! Everyone is busy, but you have
to find time during the term to work on the project. If you wait until
two weeks before the end of term to begin, you will not create as good
a project as you are capable of. One rule of thumb from the game industry
is that the game design should be substantially complete, and the main
interactions actually playable, 20% of the way into the project.
Deliverables
You will need to turn in three things:
- The full XNA project, including code,
- The formal writeup
- Appendix to the writeup including credits, extra technical notes, etc.
If you invented or heavily modified an algorithm, pseudocode for your
algorithm should go in here.
A note on the proposal
The proposal needs to be only 1-2 pages long. Include information you think
is inportant for understanding your ideas; at the least, the proposal
should contain the following information:
- The names of the team members
- A brief description of the goals of the project; if your project is a game,
describe the gameplay a little bit
- A description of the software infrastructure you will need -- classes,
shaders, assets, and any other technology
- A timeline for completion: detailed task list, target completion date,
and team members responsible for the task
- Any special considerations or concerns
A note on the final writeup
The writeup should be on the order of 6-10 pages. Include some
screenshots; you don't have to write it all as text.
The writeup must address the following:
- what was the goal of the project?
- who worked on the project and what did they do?
- what was achieved? (Demonstrate using screenshots.)
- how do you interact with the program? (describe the controls)
- what external resources (models, code, algorithms) did you use?
You MUST give credit if you (e.g.) took code from the web, or
modified someone else's XNA game, or even used an algorithm
from your textbook from another course.
The writeup should address as many of the following elements as possible:
- what is exciting about this project?
- what game design principles are at work?
- your own evaluation: what was and wasn't successful?
- what did you learn from doing this project?
A note on the presentation
You will have limited time to present. Restrict yourself to
half a dozen slides or so and a game demo. The demo is the most
important part, so make sure it works; don't change the code
5 minutes before class, because chances are you will introduce a
bug. Plan exactly what you are going to do when you get up in front
of the class. Describe the main points; remember that most of the
class probably hasn't seen what you've been working on before, so
make sure to give the high-level description. Point out the novel
feature or features of your system.
Some Project Ideas
Here are a few ideas you might consider:
- a game with 2D gameplay but rendered with 3D graphics: a fixed camera
looking at a 2D playfield with 3D pieces moving around
- a fragment (demo) of a 3D game; some games made in the past include
- Wii Foosball: a Foosball game played by connecting the Wiimote
to a PC using Bluetooth
- L-Systems Space: a 3D RTS where the battlefield is a bizarre alien artifact
- Stick Fighter, a fighting game with stick men
- Lightning Rod, where the hapless Rod walked across
a landscape trying to avoid being hit by lightning
- Guided Missile, a tank game where the player could
switch between the tank view and the view as seen from
the bullet in flight
- a demo for a novel game mechanic
- a piece of technology for a 3D game:
- physics simulator, such as a galaxy, fluid, or cloth simulator
- a procedural texture system in a pixel shader
- real-time cartoon or XToon shading
- a novel special effect, such as a novel use of particle systems
- a sophisticated rendering system, such as a raytracer
- a procedurally created 3D environment
- destructible 3D environments
- a character animation system
(which might be a game -- e.g., Toribash)
Please use your imagination and by all means, talk to your instructor
to discuss your ideas or to get some direction or inspiration if you
are having trouble getting started. The project is supposed to be fun!