Lecture Notes - Game Design Experience - Winter 2009

Class lectures are based on the following lecture notes. Games reviewed in class are listed in italics.

Jan. 7

[PDF] [PPT] Course overview, introduction to XNA

Jan. 9

[PDF] [PPT] Introduction to C#

Jan. 12

[PDF] [PPT] Introduction to C# (properties, loops, arrays, lists)

Jan. 14

[PDF] [PPT] Console I/O in C#, Hunt the Wumpus assignment tips, rule of thumb for finding classes and methods, introduction to XNA Game Studio structure. Console input and parsing demonstration shown in class

Jan. 16

[PDF] [PPT] Random numbers and converting string to int in C#, Hunt the Wumpus assignment submission instructions, displaying a sprite in XNA (Texture2D, SpriteBatch). Console input and parsing demonstration showing how to convert a string to integer

Jan. 21

[PDF] [PPT] Instructions for game concept document. Controller, keyboard, and mouse input in XNA. XNA Input Recorder

Jan. 23

[PDF] [PPT] Procedural vs object-oriented design. Bad code smells, and code refactoring.

Jan. 26

[PDF] [PPT] Bad code smells (con't), code refactoring example from Chapter 3 of Fowler's Refactoring book.

Jan. 28

[PDF] [PPT] Classification, abstraction. C# interfaces, abstract classes, virtual and override keywords

Jan. 30

[PDF] [PPT] C# delegates, Observer pattern, Strategy pattern
Example implementation of Observer using C# delegates, shown in class: [PDF] [Csharp]
Example implementation of Strategy pattern, shown in class: [Csharp]

Feb. 2

[PDF] [PPT] Decorator pattern, Chain of Responsibility pattern
Example implementation of Decorator pattern, shown in class: [Csharp]
Example implementation of Chain of Responsibility pattern: [Csharp]

Feb. 4

[PDF] [PPT] Chain of Responsibility pattern, Singleton pattern
Example implementation of Singleton pattern, shown in class: [Csharp]

Feb. 6

[PDF] Midterm exam. Link is to PDF version of exam answer key.

Feb. 9

[PDF] [PPT] Introduction to collision detection.
Example implementation of naive n*n collision detection, shown in class: [Rar file] (use WinRar to unpack)

Feb. 11

[PDF] [PPT] Broad sweep techniques: space partition grids.

Feb. 13

[PDF] [PPT] Broad sweep techniques: quadtrees.

Feb. 18

[PDF] [PPT] Moving at a constant velocity. Linear interpolation between points. Use of Catmull-Rom interpolation. Moving along a path.
Movement demonstration shown in class: [Rar file] (use WinRar to unpack)

Feb. 20

[PDF] [PPT] Overview of A* pathfinding algorithm. Moving at a fixed velocity along a path.
Movement demonstration shown in class: [Rar file] (use WinRar to unpack)

Feb. 23

[PDF] [PPT] Playing sounds in XNA. Finding music for your game.
Sound demonstration shown in class: [Rar file] (use WinRar to unpack)

Feb. 27

[PDF] [PPT] Introduction to 3D graphics in XNA. Drawing triangles, coordinate systems, basic shader.
Triangle demonstration shown in class (sample from Chapter 9 of XNA text): [Rar file] (use WinRar to unpack)

Mar. 2

[PDF] [PPT] Drawing triangles, world matrix, translations and rotations.
Triangle demonstration shown in class (modified version of sample from Chapter 9 of XNA text): [Rar file] (use WinRar to unpack)

Mar. 4

[PDF] [PPT] Drawing 3D models in XNA. Overview of Model and ModelMesh classes.
Model viewing code (modified version of sample from Chapter 10 of Learning XNA 3.0 text): [Rar file] (use WinRar to unpack)

Mar. 6

[PDF] [PPT] Creating a simple free-flying 3D camera in XNA.
Free-flying 3D camera code (modified version of sample from Chapter 11 of Learning XNA 3.0 text): [Rar file] (use WinRar to unpack)
Uses R/F keys to translate along Up vector, and IJKL for rotations instead of mouse.

Mar. 9

[PDF] [PPT] Vertex and pixel shaders. Creating a simple shader in HLSL, accessed via C#/XNA.
HLSL Shader code example (modified version of sample from Learning XNA 3.0 text): [Rar file] (use WinRar to unpack)

Mar. 13

[PDF] [PPT] Point lights. Implementing a point light in HLSL. Connecting a shader to a C#/XNA model mesh.
HLSL point light shader code example: [Rar file] (use WinRar to unpack)
Use R/F to modify ambient light, T/G to modify point light intensity. WASD to rotate, and arrows to translate.

Mar. 16

[PDF] [PPT] Study guide for the final exam. Introduction to particle systems.

Last updated: 3/16/2009