Recent Changes - Search:

CS679-2007 Web

Login

TechAssigns

Updated 4/27/2007

Because people took the shader assignment so seriously, everyone got a bit of a late start on the "Project" aspect of this (the demos/technology assigments. Therefore, we've decided to scale the requirements back a bit.

For the last part of the class, we will be discussing a number of technical topics: GPUs, Lighting, Animation Methods, Procedural Modeling (Noise), Skinning, Motion Capture, Physics, and AI. These topics are listed and discussed here.

We have a specific programming assignment for GPUs, so this document explains what we'll do about the rest.

This plan for the class assignment supersedes all the other things. For example, you do not have to do explicit reading summaries for any of the assignments after spring break.

For this last part of the class you must:

  1. Turn in at least 5 "Homeworks"
  2. For 2 of the "Homeworks" do an "extra credit" addition (ECA)
  3. (update 4/27) You must either do 2 "Technology Assignments" or a "Technology Demo" Each of these will be explained below. You must do one "Technology Demo" as described below. You may do this with a parter.

(update 4/27) There was a little but of confusion: these three requiements are independent. For example: what you do for your ECAs has no effect on your homeworks or demo. Each of these requirements is meant to do something differently.

With the (potential) exception of the "Technology Demos", you must do each of these things by yourself.

Due Dates:

  • At least 2 of your homeworks must be turned in before class on May 1
  • At least 1 of your "extra credit additions" must be turned in before class on May 1
  • All of your homeworks and ECAs must be turned in by 5pm, Friday, May 11th. No homeworks or ECAs will be accepted after this.
  • A technical assignment/demo "proposal" must be handed in before class on April 26th.
  • A technical assignment/demo "checkpoint" is required before class on May 3rd.
  • The official due date for technical assignments/demos is Friday May 11th at 5pm. Late handins and in-person demos will be accepted until noon on Wednesday, May 16th.

Note: if you would like help identifying readings or assignment ideas or projects beyond what is on the Main.TechnicalHomeworks page, send a note to the instructor and TA.

1.  Homeworks

For each topic, there will be a homework assignment: a set of questions for you to answer. The technical topics, and their associated homeworks are available here.

For each topic, you should read something. One of the questions will be "what did you read". In some cases, you can read something other than the assigned readings (in which case we'd like you to give us information so we can look at it too).

Each homework should be written up and emailed to the TA.

You must do at least 5 of the homeworks. If you do more than 5, we will consider this in grading.

Due Date: At least two of the Homeworks must be handed in (e.g. mailed to the TA) by the beginning of class on May 1. The remaining homeworks must be handed in before 5pm on Friday, May 11th.

No Homeworks will be accepted after 5pm on May 11th

Grading: Each homework will be graded either: (0) not turned in, (1) minimal, (3) acceptable, or (4) exceptional.

2.  Extra Credit Assignments

For at least two of the homeworks, you must go beyond the basic requirements. With each homework, there will be some specific topics listed. The ECA must be done in addition to the homework.

To do "extra" on a homework, you must:

  • Read at least 3 different readings on the subject (specific subjects are listed in the homework topics).

And do one of the following:

  • For some homeworks, there will be specific tasks described to get "extra" credit.
  • Find and read some research technical paper related to the subject (in a "real" CS conference, not a games specific thing) (this paper will count as one of the 3 things you've read). In your writeup, describe what the paper contributes (in terms of its research), the potential impact of the ideas on games (including specific examples of how it could make a game better), and a discussion of why the ideas may or may not be applicable in games. For the latter, you should discuss any technical issues (or other issues - like impact on the artistic pipeline) that would need to be addressed in order to really use the idea in a game.
  • Find a written discussion (or more than one) of how the topic has been applied in a real game. In your writeup, describe how the ideas were used, what was done to make the idea work practically within a game.

The ECAs should be written up seperately from the homework as a Wiki page that is clearly linked from your personal page. Remember, you are still responsible for the regular part of the homework (which must be mailed to the TA).

The writeup should include:

  • The list of papers that you read, including links if the readings were on the web. (note: this is redundant with the question on the regular homework). If you picked readings other than the recommended ones, please give a brief summary (a few sentences), and an assessment as to whether you think it would be a good reading for others in the class (or in next year's class).
  • All of the other questions that were asked (either in the description on the homework page, or in the list above).
  • Pictures are useful. In particular, if you are describing how an idea is used in a real game, getting a screen shot of the game that shows how the technique appears is valuable.

It is our expectation that the ECAs should be about 2 pages of text (not including pictures).

Due Date: One of your ECAs must be posted on the Wiki (and linked to from your web page) before class on May 1st. The second ECA must be posted before 5pm on Friday, May 11th. Late ECAs will be accepted until noon on Wednesday, May 16th, but will be penalized.

3.  Technology Assignments Demos

A Technology Assignment is a programming assignment where you demonstrate that you understand a technical topic. The idea is to build a minimal program that demonstrates that you understand the topic. Programming Assignment 1 would have been an example of this for Quaternions.

A Technology Demo is a programming project where you demonstrate a technical topic in an interactive program that you have implemented. While it would be cool if this were a game, the important piece is to show off the technology in a realistic setting.

{-You must do either 2 technology assignments or a technology demo for the topics discussed in the latter part of the class (the same ones that are the homework assignments).-}

Given the reduced amount of time, it is impractical to have people explore 2 topics. Everyone will effectively be doing a demo of one technical topic. Because of the time scale involved, the expectations will be reduced. Teams of 2 will still be expected to have 2 technical parts in their demos.

We will suggest technology assignments and demos (they are in the homework writeups, but you can propose other assignments or demos (based on the technical topics). Remember, the core of the assignment/demos is the technical topic. "I want to make a fun game" isn't what we're looking for. But, if you happen to make a fun game that just happens to show off spherical harmonic lighting or real-time physics...

Your assignment/demo must clearly show off the technology that you are supposedly learning for this assignment. Some examples:

  • for spherical harmonic lighting, you should have a shiny object that you can vary the shininess
  • for skinning, you should be able to switch between different skinning techniques so you can see the differences

If you do a demo, you may work with a partner. In this case, each partner must be responsible for 1 technology (so the demo will have two). So for example, you might make a demo where there is procedurally generated motion of a character that is skinned. One person's technology is the motion generation, the others is the skinning.

In general, each person should do a different technology. However, in some cases its OK for each team member to do a different implementation of the same technology. For example, each team member implements different AIs that compete against one another.

In terms of grading, the priority is to have a correct and demonstatable implementation of the technology. However, we will also consider the overall coolness and polish of your demo. A cool demo without a working technical part is a failure, but coolness can turn a B demo into an A.

How hard the technical challenge is will be a factor in grading. If you pick an easy technical topic, there will be more of a pressure to use it in a cool way and/or make up for the simplicity by having a really cool program.

The parts of this:

  • An initial proposal - where you describe what you will do. Send email to the instructor and TA with your ideas. Note: if your idea is non-standard, we might need a few iterations (maybe even a meeting) to refine it clearly enough for it to be a real project.
  • "Checkpoints" - where you demonstrate to the instructor/TA that you really are making progress, and can more fully describe what your final result will be. As part of a checkpoint, we will discuss evaluation metrics for how to assess the final result.
  • A final demo - where you show off your creation to the instructor and TA.
  • A final handin - you will have to hand in the complete code/assets so we can build and run your assignments/demos ourselves.
  • A final writeup - you will have to write up a Wiki page (linked to on your personal page) that describes what you have done. The quality of the writeup is considered as part of your grade. Note: if you do a demo with 2 people, the technologies involved should be written up independently, but there can be a common writeup of the overall demo. Each person must link to all parts on their wiki page.

Your writeups should thoroughly describe the technology (do not assume that the reader has read the technical papers on the subject), as well as how they are integrated into the demo (for the case of a demo).

Due Dates: - We strongly recommend that you start earlier than these latest possible dates.

  • You must send a proposal to the instructor and TA by email before the beginning of class on Thursday, April 26th.
  • (update 4/27) The initial proposal must be accepted by Tuesday, May 1st. You may need to meet with the instructor before this to work out the details.
  • (update 4/27) You will need to have a Checkpoint meeting with the instructor on May 2nd or 3rd. At this meeting, you will be assigned another Checkpoint, due on the 9th or 10th. Because it is impractical to schedule meetings with everyone, you will be told an email checkpoint. In the event that things are not worked out by email, I may ask you to come to meet with me. Extra office hours will be scheduled.
  • Officially, the project is due on Friday, May 11th. (university policy says that nothing can be due during exam week). Unofficially, we will accept late projects until noon on Wednesday, May 16th. Projects turned in before noon on Monday May 14th will not be penalized.
  • Demos will be scheduled on Friday May 11th and Monday May 14th. If you improve your project after the demo, be sure to explicitly describe these improvements.

Grading: We will assign an A-F grade for each assignment and/or demo. For assignments, each one will be graded independently. For demos, the technology topic part and the overall demo will be graded separately (for teams this means each person gets the former, and the team shares the latter). The weighting between the two grades will be determined afterwards.

History - Print - Recent Changes - Search
Page last modified on April 27, 2007, at 09:53 AM