Fall 2009 CS 4v95 - 001

Game Programming

Tuesday and Thursday 4:00pm - 5:15pm, ECSS 2.306


 
Instructor :

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

 

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 Tuesday Thursday
1   Aug 20: Introduction to Game Programming
2 Aug 25: Console I/O, Random Numbers in C# Aug 25: 2D Sprites
3 Sep 1: Controller, Keyboard, Mouse Sep 3: Object-Oriented Design
4 Sep 8: Collision Detection Sep 10: Path Finding
5 Sep 15: 3D Graphics Sep 17: 3D Graphics
6 Sep 22: 3D Models Sep 24: HLSL Shaders
7 Sep 29: Geometric Transformation -- Basics Oct 1: Viewing and Projection -- Basics
8 Oct 6: Proposal Presentation Oct 8: Proposal Presentation
9 Oct 13: Blender Tutorial Oct 15: Picking of 3D Models
10 Oct 20: Camera Oct 22: Lighting -- Basics
11 Oct 27: Introduction to BEPUPhysics Engine Oct 29: Lighting -- HLSL
12 Nov 3: Technical Design Presentation Nov 5: 3D Skybox, Reflection, Transparency
13 Nov 10: Partial Prototype Demo Nov 12: Particle Engine, Mesh-By-Mesh Animation
14 Nov 17: BEPUPhysics Engine -- Revisited Nov 19: Character Animation
15    
  Dec 10th, 2pm: 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.
 
Other Resources :