Last modified: 3/15/2009
January 7:
Course overview, overview of XNA Game Studio Express
Read: Chapter 1 (Getting Started) in XNA 3.0
January 9:
C#: Classes, methods, simple types, constants, visibility, assignment, conditionals, comments
Read: Chapter 1 (C# 3.0 and .NET 3.5), Chapter 2 (Getting Started: "Hello World"),
and Chapter 3 (C# Language Fundamentals) in Programming C# 3.0
January 12:
C#: Properties, arrays, looping constructs (for, foreach)
Read: Chapter 4 (Classes and Objects), and Chapter 9 (Arrays, Indexers, and Collections) from pp. 155-176 in Programming C# 3.0
Due: Project team formation
January 14:
Console I/O in C#. Rules of thumb for identifying classes, class variables, and methods in object-oriented design.
Representing a class in UML. Structure of XNA framework structure.
January 16:
Random numbers, and converting a string to int in C#.
Main game loop, sprites, textures, operations on sprites, sprite batch, sprite animation
Read: Chapter 2 (Fun with Sprites) in XNA 3.0
January 19:
No class, Martin Luther King, Jr. holiday
January 21:
Input (controller, keyboard, mouse). Bounding box collision detection.
Read: Chapter 3 (User Input and Collision Detection) in XNA 3.0
Due: Homework #1 (Hunt the Wumpus)
January 23:
Difference between procedural and object-oriented design. Code refactoring. Bad code smells.
Read: Chapter 1,
in Refactoring: Improving the Design of Existing Code, Martin Fowler, 1999.
See Forum or come to class for username/password.
January 26:
Bad code smells. Software refactoring example.
Read: Chapter 3, in Refactoring:
Improving the Design of Existing Code, Martin Fowler, 1999.
See Forum or come to class for username/password (same as first chapter above).
Due: Game concept document
January 28:
C#: inheritance, method overloading, abstract classes, interfaces
Purpose of software design patterns
Read: Chapter 5(Inheritance and Polymorphism) and Chapter 8 (Interfaces) in Programming C# 3.0
January 30:
Strategy pattern. Observer pattern. C# delegates and events
Read: Chapter 12 (Delegates and Events) from pp. 255-270 in Programming C# 3.0
Read: pages 139-148 (Strategy pattern) of C# 3.0 Design Patterns
Read: pages 210-217 (Observer Pattern) of C# 3.0 Design Patterns
See Forum or come to class for username/password. Same as for other password-protected readings..
February 2:
Decorator and Chain of Responsibility patterns
Read: pages 8-22 (Decorator pattern)
and pages 164-175 (Chain of Responsibility pattern)
of C# 3.0 Design Patterns
Due: Work breakdown and schedule
February 4:
Potential exam questions. Factory Method pattern. Singleton pattern
Read: pages 110-122 (Factory Method and Singleton patterns) in C# 3.0 Design Patterns
February 6:
Exam #1
February 9:
StarUML UML editing tool. Simple physics simulation. A priori vs a posteriori collision detection. Quadtrees.
Read: Chapter 2 and
Chapter 4 (partial) of
Real Time Collision Detection, Christer Ericson, Morgan Kaufmann, 2005.
See also: Metanet tutorial on narrow-phase collision detection in the game N (with neat
animated demos of key concepts
See also: Metanet tutorial on broad-phase collision detection in the game N (also with
nice animated demos
Due: Homework #1 (Revisited)
February 11:
Quadtrees (cont'd). Collision tests
Read: Wikipedia entry on quadtrees
February 13:
Collision tests (cont'd)
Read: (optional) Direct Access Quadtree Lookup, Matt Pritchard, in Game Programming Gems 2
Due: Project technical design document
February 16:
No class, President's Day holiday
February 18:
Path following.
Read: Chapter 6 (Basic Artificial Intelligence) in XNA 3.0
February 20:
A* algorithm and its use for path finding
Read: A* Pathfinding for Beginners, Patrick Lester
February 23:
Playing sounds within XNA
Read: Chapter 5 (Sound Effects and Audio) in XNA 3.0
Due: Homework #2 (Quadtrees)
February 25:
Introduction to the Blender 3D modeling tool.
Read: Blender User Interface Tutorial
February 27:
Introduction to 3D graphics. Coordinate systems, camera, rotation, drawing triangles.
Due: Partially operational game prototype
March 2:
Drawing a 3D model using XNA
Read: Chapter 10 (3D Models) in XNA 3.0
Due: Project progress report
March 4:
Importing a model from Blender into XNA
Read: Modeling for XNA with Blender Part I by stromdotcom
March 6:
Simple 3D Camera
Read: Chapter 11 (Creating a First-Person Camera) in XNA 3.0
March 9:
Graphics pipeline, overview of HLSL, use of shaders in XNA
Read Chapter 13 (HLSL Basics) pp. 275-294 in in XNA 3.0
Due: Homework #3 (Creating and rendering 3D model in XNA)
March 11:
Point light in HLSL. Connecting a shader to an XNA model.
Read: Chapter 13 (HLSL Basics) pp. 295-307 in in XNA 3.0
March 13:
Point light in HLSL (cont'd).
Read: Chapter 14 (Particle systems) in XNA 3.0
March 16:
Final exam overview. Particle systems introduction.
Due: Final game project, by 5pm