CS 418 Lectures Assignments Exams Links

MP3: Final Fantasy

Proposals Due: Tuesday, April 11 in class
Projects Due: Monday, May 1, 11:59pm


Goals

For this, our final MP, you will work together in groups of 2 or 3 to write an interactive 3D graphics program, mimicking a game engine. 2D programs are not allowed.

Working in groups is required. Aside from teaching you about graphics, one of the goals of this project is to give you experience working on software in groups. This is an important skill to acquire. While we recognize that there is a limit to how much you will really learn during a project, we also believe that it will provide valuable experience.

Getting Started

You should begin by forming a group of 2 or 3 to work on the project together. Groups of 4 or more are not allowed. We also require that 1 unit graduate students finish at least 25% more work than other students.

If you have trouble with any part of the project preparation, please see an instructor or TA during their office hours. Alternatively, post a message on the course newsgroup (uiuc.class.cs418). We usually check the newsgroup regularly and will attempt to respond promptly to questions posted there.

Requirements

We will be letting you define your own projects. Acceptable projects must conform to the following guidelines:

  1. The scope of the project should be sufficient to warrant the work of 2 or 3 people over 3 weeks. As a rule of thumb, your project should require twice or 3 times as much work as previous projects depending on the number of people in your group. Meanwhile, do not be overly ambitious, either.
  2. At most one third of the credit for the project can be features that were implemented in previous projects. However, you can significantly improve previously implemented features.
  3. Those aspects of the project for which you're graded must be computer graphics (e.g., not sound).
  4. Particle Dynamics must be implemented as part of your program. At least 10 particles should be simulated for physics-based movement although a larger number of particles may improve the visual appearance of your results. They should collide with the ground and bounce off multiple times during your simulation. Inter-particle collisions can be ignored.
  5. Environment mapping must be implemented as part of your program. Allow for the display of reflective objects using OpenGL's spherical environment map support. You must demonstrate reflections on at least one non-trivial mesh object (i.e., single polygons, spheres, and cylinders don't count) in your interactive environment. You do NOT need to update the environment map. Here are some sample environment map for you to try:

You should write up a description for your project and submit that in class on Tuesday, April 11 or earlier. Your project description should include:

  • Names and NetIDs of students working on the project.
  • A brief synopsis of the system that will be produced.
  • A list of the features on which you will be graded. You should indicate both what constitutes a correctly functioning feature as well as how many points it should be worth. The total number of points should add up to 100 with additional points for 1-unit grad students. Note that particle dynamics and environment mapping are worth 10 points each.
  • A tentative plan for which parts of the project each team member will be responsible for.

Hints on project ideas and features

We post a few potential ideas and features here as your inspirations. You do NOT have to follow these suggestions.
  • Idea #1: an indoor or outdoor environment with objects and moving characters. The user can control the movement of some of the characters and objects. The camera can follow one of the characters or objects.
  • Idea #2: a driving or flight simulator that allows the user to steer a vehicle over terrains and mountains which can be synthetically generated. The terrains and mountains can be decorated with buildings and trees.
  • Idea #3: a multiresolution earth model that allows to simulate the landing of a space shuttle. The earth model should have continents and oceans. When the space shuttle descends, the user should be able to see more and more surface details of the earth and choose where to land.
  • A list of potential features: 1) Virtual characters from MP2 but with interactively user-controlled motion path; 2) The terrain models from MP1 combined with synthetically generated fractal surfaces, as will be described in class, for mountains, etc; 4) Interactive camera controls more convenient than those in MP1. 5) The mesh objects in MP1 can be reused.

Handing in your Project

Important: Follow all handin instructions carefully. You may lose most or all points for failure to follow these instructions or if you do not hand in all required files.

You must turn in the following files:

  • All source and header files (e.g., *.cxx, *.h) whether or not you have modified them.
  • A ReadMe file named README.txt. It should contain the following information:
    • The names and NetIDs of all students in your group.
    • Whether each is an undergrad, 0.75 unit grad, or 1 unit grad student.
    • If you used a different GUI kit, instructions on setting it up on the machines in the labs. (Yes, your project must be able to run on them)
    • Clearly document the features you proposed to implement and their corresponding points.
    • Clearly document how to use each feature you implemented.
    • Clearly indicate what part(s) of your project each of the members of your group was responsible for.
  • Any other files (e.g., libraries, data files) needed to compile and run your program. If you've used the provided libraries, do not turn those in.

To actually turn in your finished project, follow the hand-in instructions that we have provided.

Since this project is due the night before the last day of classes, we can NOT allow late hand-ins. You must complete and turn in your project by the due date.

Grading

Code-sharing, working together with peers outside your group, and copying code from other sources are only allowed under restricted conditions. Make sure you read the code-sharing policy for details.

Significant reductions will be imposed for projects that do not compile. No late hand-ins will be allowed.

All members of a group will generally receive the same grade. However, you will be asked to fill out an evaluation of your own work and the work of others in your group. We may use these evaluations to modulate the grades of individuals within a group.