Time: MWF 9:30-10:20
Location: HR 235
Professor: David Galles
Office: HR 542
Office Hours: MW 1:00 - 2:00, T 10:00-11:30, 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:
Jesse Schell The Art of Game Design: A
book of lenses
Required Equipment:
Wired xbox 360 controller. Eihter the PC or X360
controller are fine -- they are identical -- but the 360 branded
controllers are cheaper. You can get them on ebay (with shipping) for
under $20.
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: Shooter | 15% | |
Project 2: Platformer | 20% | |
Project 3: Student Choice | 25% | |
Bug Hunts / Final Presentation | 5% | Various |
Midterm | 15% | 4/03/2013 |
Final | 20% | 5/15/2013 Wednesday 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.
Finals and Midterms
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.
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. 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.
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.
Topics To be Covered (Somewhat tentative list)
- Basic Structure of a Game
- Using XNA and working with Xbox 360
- Structure of an XNA application
- Working with XNA's Sprite Manager
- Component Programming
- C# vs. Java
- 2D Math
- Quick Review: Vectors, matrices, translations & Rotations
- Collisions -- static and dynamic
- Spacial Partitioning Data Structures
- A bit of physics
- Mastering Menus
- Event Driven Programming
- Callbacks: Delegates vs. Interfaces
- Menu Animation
- Debugging!
- Parallel Programming
- Review of parallel fundamentals
- Parallel programming for games
- Working with console hardware
- Tools and Pipelines
- Playing with others: Networking
- Quick review of parallel concepts
- Platform specific nuts and bolts: windows and xbox 360
- What to send? Designing games to be networked
- Hiding lag: Prediction
- Memory Management
- C# Garbage Collection
- Preallocation: Creating your own (simple!) memory manager
- Basic Artificial Intelligence
- State Machines
- Path Finding