Computer Science 420: Game Engineering

Spring 2016 Syllabus

Time: MWF 10:30-11:35
Location: LS G12
Professor: David Galles
    Office: HR 542
    Office Hours: T/TR 10:00 - 12:00, or by appointment
                        Though these are my stated office hours, I am in my office most of the day.
                        If my door is open (and it usually is), I am happy to talk with students.
    Phone: 422-5951
    Email: galles@usfca.edu

Text:
     Required: 3D Math Primer for Graphics and Game Development, F. Dunn, I  Parberry
     Recommended: The Art of Game Design: A book of lenses, Jesse Schell

Prerequisites:
        CS 245 - Data Structures and Algorithms
        Math 201/202 Discrete Mathematics
      
Grading Policy:
      Grades will be given according to scores on programming assignments, a midterm and a final, according to the following percentages.

Assignment Percentage Date
Project 1: Pong 15% 2/17/2016 and 2/26/2016
Project 2: Tank 20% 3/25/2016 and 4/1/2016
Project 3: Student Choice 30% 5/11/2016
Code Review / Final Presentation 5% Various
Midterm 15% 4/04/2016
Final 15% 05/16/2016  Monday 10:00 a.m.


     Grades will be on a straight scale, with approximately:

A  90% and above
B  80%-89%
C  68%-79%
D  62%-67%
F   61% and below

     These are percentages are upper limits -- thus a score of 90 is guaranteed to get at least an A-, 80 is guaranteed to get at least a B-, and so on. I reserve the right to move these down, but I will not move them up.  

Final and Midterm
The midterm and the final will be closed notes. If you have a conflict with the midterm date, see me now to see if we can work something out. Requests to change midterm dates after the first week or two of class are unlikely to be met. The final date is unlikely to be changed, but you are free to ask.

Projects
This is a heavy programming course. The assignments should be a lot of fun, but you will be spending more time coding than in other CS classes. Note that while I will be expecting a great deal from you, I am also willing to give you significant assistance -- don't spin your wheels and become frustrated, ask for help!
There wil be 3 projects -- a "warm-up" project that each person will need to do on his or her own and two group projects. (Note that the "warm-up" project will still have significant coding, and will require learning to use the graphic engine and art pipeline tools, so get started early!) Each project will have some required elements, but you will also have a fair amount of latitude to be creative. While the majority of the grade for the projects will be the technical aspects of the programs, there will be some weight towards artistic expression -- how fun are your games to play, do your games have a consistent aesthetic, and so on. For projects 2 and 3, part of your grade also will be the feedback you give to other students during "focus testing" -- more on that when projects 2 and 3 are assigned.

Code Reviews
Each student will have to do at least one "code review". In a code review, you walk the class through a section of your code, and explain how you implemented a particular feature. Your fellow students (and your instructor) will ask questions about the design decisions that you made, and how your code is structured.

Learning Outcomes
Students who complete this class will be able to:


Topics To be Covered (Somewhat tentative list)