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.
Jesse Schell The Art of Game Design: A book of lenses
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.
CS 245 - Data Structures and Algorithms
Math 201/202 Discrete Mathematics
Grades will be given according to scores on programming assignments, a midterm and a final, according to the following percentages.
|Project 1: Shooter||15%|
|Project 2: Platformer||20%|
|Project 3: Student Choice||25%|
|Bug Hunts / Final Presentation||5%||Various|
|Final||20%||5/15/2013 Wednesday 10:00 a.m.
Grades will be on a straight scale, with approximately:
|A||90% and above|
|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.
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
- 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