University of Wisconsin Computer Sciences Header Map (repeated with 
textual links if page includes departmental footer) Useful Resources Research at UW-Madison CS Dept UW-Madison CS Undergraduate Program UW-Madison CS Graduate Program UW-Madison CS People Useful Information Current Seminars in the CS Department Search Our Site UW-Madison CS Computer Systems Laboratory UW-Madison Computer Sciences Department Home Page UW-Madison Home Page

CS638: Computer Game Technology

Fall 2001

Instructor: Stephen Chenney

Office: 6387 Computer Sciences and Statistics
Office Hours: Tues 1-2, Thurs 1-2 in B240

Project Pages


Stage 4 Grading 2-5 Monday Dec 17 and 2-5 Tuesday Dec 18 in B240.

Extra Office Hours 2-5 Monday Dec 17 and 2-5 Tuesday Dec 18 in B240.

Final Exam Info:


Most recent at the top.
Dec 11 Dec 13
  • Cheat Prevention
  • Lecture notes.
  • Chapter 1.11 of Game Programming Gems discusses a cheat discouraging network packet structure.
Dec 4
  • Collision Detection Part 2
  • Lecture notes.
  • Chapters 4.5 and 4.6 of Game Programming Gems covers some of this material, but not particularly well.
Dec 6
Nov 27
  • Dynamic Path Planning
  • Flocking Models
  • Particle Systems
  • Lecture notes.
  • Chapter 3.7 of Game Programming Gems covers flocking.
  • There are a wealth of online resources on flocking and particle systems. It seems that everyone with too much time on their hands has implemented one or the other.
Nov 29
Nov 20
  • Improving A* Paths
  • Hierarchical path planning
  • Pre-planning paths
  • Lecture notes.
  • Chapters 3.3-3.6 of Game Programming Gems cover some of this material, as does 2.1 and 4.13.
  • A Gamasutra article also makes for interesting reading, as do many other online articles on game path planning.
Nov 22
Nov 13
  • Motion Capture in Games with Prof Mike Gleicher
Nov 15
  • Networking Infrastructure for Games with Prof Paul Barford
Nov 6
  • Fuzzy Logic
  • Neural Nets
  • Lecture notes.
  • Chapters 3.8 and 3.9 of Game Programming Gems cover this material.
Nov 8
  • Path Planning I
  • Lecture notes.
  • Chapters 3.3 and 3.6 of Game Programming Gems cover this material.
Oct 30
  • Intro to AI
  • Finite state machines
  • Lecture notes.
  • Chapters 3.0 and 3.1 of Game Programming Gems are of interest here.
Nov 1
Oct 23
  • Terrain LOD
  • Lecture notes.
  • The algorithm described in class is described in even more detail in the course notes.
  • Also see a Gamasutra article on implementing ROAM.
Oct 25
  • Midterm
  • In class, 1 hour long.
  • You may use: Writing implements, ruler, one double-sided letter-sized piece of paper with anything written (or drawn) on it.
Oct 16
  • Visibility
  • Lecture notes.
  • Chapter 4.8 of Game Programming Gems is relevant here.
Oct 18
  • Terrain Generation
  • Lecture notes.
  • Chapters 4.16, 4.17 , 4.18 and 4.19 are relevant here.
Oct 9
  • Octrees
  • Lecture notes.
  • Chapters 4.10 and 4.11 of Game Programming Gems are relevant here.
Oct 11
Oct 2
  • Level-Of-Detail
  • Lecture notes.
  • My primary resources for this lecture were the papers by Michael Garland and Paul Heckbert on Quadric Mesh Simplification. Michael's help in preparing this lecture (donating slides) is very much appreciated.
  • You should read chapter 4.9 of Game Programming Gems (after this lecture).
Oct 4
  • More Level-Of-Detail
  • Lecture notes.
  • Again, Michael Garland's help in preparing this lecture (donating slides) is very much appreciated.
  • You should read chapter 4.12 of Game Programming Gems. It has lots of implementation details on progressive meshes.
Sept 25
  • Shadows part 2
  • Vertex and Pixel Shaders
  • Lecture notes
  • I used Watt and Policarpo for a shadow volume reference.
  • Much of the information on vertex and pixel shaders came from the Nvidia developers' web site.
Sept 27
Sept 18
  • Light maps, Bump maps with multitexturing
  • Mulit-Pass part 1
  • Lecture notes
Sept 20
  • Mulit-Pass part 2
  • Shadows part 1
  • Lecture notes
  • You must read chapters 5.7 and 5.8 of Game Programming Gems.
  • I used the OpenGL Programming Guide, and Watt and Policarpo as references.
Sept 11 Sept 13
  • Environment mapping, Light maps
  • Lecture notes
  • Chapters you might read after this lecture: 5.5, 5.6, 5.9, 5.11
Sept 4
  • Introduction to Computer Game Development and CS 638
  • Lecture notes
Sept 6
  • Programming Interactive Systems
  • Understanding Lag
  • Lecture notes
  • Reading: "Game Programming Gems", Chapters 1.1 and 1.12. Anything else in the first section is fair game at this point, but much of it is useful for production systems, rather than the level of development you'll be doing in class.

People Who Helped

I am indepted to Michael Garland, who provided slides for use in the LOD section of the class, and John Laird, who provided the slides for the AI tutorial he and Mike van Lent gave at the 2001 GDC.

Software For The Course

LithTech have generously provided us with software for use in this course.

General Course Information

This course is about the technology that goes into creating computer games and other interactive entertainment. The focus is on 3D gaming and the graphics, artificial intelligence and networking technology that is employed in games.