Fall 2011 CS 4V95 - 501

Game Programming

Monday and Wednesday 8:30pm - 9:45pm, ECSS 2.312

Instructor :

Xiaohu Guo
Office: ECSS 3.703
Phone: 972-883-4723
Email: xguo at utdallas.edu
Office hours: M/W 4:00pm - 5:00pm


Pre-requisites :

Formal prerequisite for this course is CS 3345 (Data Structures & Algorithm Analysis). You should have strong C/C++/C# programming skills in order to successfully finish the game project. Having knowledge of OpenGL (or DirectX) programming will be a plus.

Course Description :
The computer games industry has grown extremely quickly over the past few years. This course will study basic concepts and techniques for developing computer games. It will cover the basic game programming techniques using XNA Game Studio 3.0, and various aspects of knowledge including computer graphics, animation, spatial data structures, network, artificial intelligence, etc. Coursework will include several programming assignments, writing game project proposals, and a final demo of the game project.
Textbooks :
  • Required: Learning XNA 3.0: Game Development for the PC, Xbox 360, and Zune, by Aaron Reed, O'Reilly Media Inc., 2008. ISBN: 0596521952. Source Code Link.
Grading Policy :

There will be No Midterm Exams and No Final Exams! The final grade will be based on programming assignments, project proposals, demos, and presentations. This course emphasizes a "hands-on'' approach to both the better understanding of game programming techniques using XNA Game Studio 3.0. Each student is required to complete three assignments and a final project. The programming assignments and projects will be done in XNA. You are expected to be a competent programmer in C# in this course. All the assignments and projects are mandatory. The final grade will be composed of the following three parts:

  1. Programming Assignments: 45%
    - Assignment 1 (15%)
    - Assignment 2 (15%)
    - Assignment 3 (15%)
  2. Final Project: 50%
    - Project Proposal and Technical Design (10%)
    - Partial Prototype Demo and Progress Report (10%)
    - Final Demo, Presentation, and Submission (30%)
  3. Class Attendance : 5%
Class Attendance :

I expect the students to come to class, read and study the materials and textbook. Download and print available materials from WebCT prior to coming to class. The class schedule specifies the chapters to read for each topic covered. Primary material of this course will come from the required textbook. In addition, material from recent articles or relevant reference books will be presented. Numerous slides and video clips on graphics will be shown. Students are advised to attend the class and follow the lecture notes closely. It is the student's responsibility to check what we covered in class and the announcements during class if he or she did not attend.

Academic Honesty :

Copying source code from another student in this class or obtaining a solution from some other source will lead to an automatic failure for this course and to a disciplinary action. Allowing another student to copy one's work will be treated as an act of academic dishonesty, leading to the same penalty as copying. You should learn how to protect your data. Failure to do so is also unprofessional and it may expose you to the danger that someone will copy your homework and will submit it as his or her own (see above). In this case, you may be given a score of 0 for the assignment or project in question (and the other party will get a failure).

Class Schedule :
Week Monday Wednesday
1   Aug 24: Introduction to Game Programming
2 Aug 29: Console I/O, Random Numbers in C# Aug 31: 2D Sprites
3 Sep 5: Labor Day Sep 7: Procedural and Object-Oriented Design
4 Sep 12: Collision Detection and Pathfinding Sep 14: Introduction to 3D in XNA
5 Sep 19: Basics of 3D Graphics -- Transformation Sep 21: Basics of 3D Graphics -- Viewing
6 Sep 26: Basics of 3D Graphics -- Projection Sep 28: Displaying and Picking 3D Models
7 Oct 3: Project Proposal Presentation Oct 5: Controlling Camera
8 Oct 10: Character Animation: Skeletons Oct 12: Character Animation: Skinning
9 Oct 17: Introduction of Shader Programming Oct 19: Particle Systems: Basics
10 Oct 24: TBD Oct 26: TBD
11 Oct 31: Particle Systems: Advanced Nov 2: Rigid Body Dynamics
12 Nov 7: Rigid Body Dynamics Nov 9: Partial Prototype Demo and Presentation
13 Nov 14: Illumination and Shading I Nov 16: Illumination and Shading II
14 Nov 21:Illumination and Shading III Nov 23: Illumination and Shading V
15 Nov 28: TBD Nov 30: TBD
16 Dec 5: Final Project Demo and Presentation  
  • Important: The dates in this schedule may change due to the class level. If the class needs more time and examples to understand a concept I will modify the schedule. If the class is ready to skip a chapter or go faster I will modify the schedule. Therefore, it is the student's responsibility to check what we covered in class and the changes in the schedule announced during class.
Final Project Screenshots from the Previous Fall'09 Class:
 Subject Zero:
Psycho Tower Defense:
Last Chance:
Marble Madness 3D: