679 Readings
Readings listed by date/topic. Note: in some cases, you are free to substitute your own readings. If you do, you need to add them to one of the online lists.
For the Real-Time Rendering Chapters: These refer to the unpublished 3rd edition. The Chapters will be provided as PDF files in the course directory:
/p/course/cs679-gleicher/public/RTR3
Remember - these are for class use only. I have split the bibliography into a seperate file - it is huge, and amazingly comprehensive (there are over 1300 references!) If you have any comments for the authors of the book (its not too late to help them), send them to me and I'll pass them along.
In some cases (particularly for the RTR readings) I've noted that its OK to "read behind" the lectures. That is, you can read the chapter after class if you prefer. In class, we'll talk about the "big picture" and main ideas, and then you can read to get the details. Rather than trying to test your reading in class by questions, we'll have a reading assignment later.
January 30 - Introduction to Game Graphics
An Introductory Tour of Interactive Rendering by Eric Haines
official draft
A great overview of all of interactive graphics. The only thing better is the real-time rendering book (and we don't have that yet).
February 4 - Geometric Tricks for Game Graphics
Chapters 12 and 14 of RTR3. (OK to Read Behind)
There's a lot of material, and at this point, you are only trying to get the main ideas. We'll talk about spatial subdivision again later in the course.
February 11 - Approximation and Image-Based Rendering Tricks
Chapter 10 of RTR3.(OK to Read Behind)
Some potential extra readings:
Feburary 18 - GPU Programming
You need to read enough about GPUs to have a sense of what they are, how they work, and how to program. (the latter in enough detail that you can actually do it) (OK to Read Behind)
- Everyone should read Chapter 3 "Graphics Processing Units" of RTR3 - in addition to being a nice explanation, it also gives good historical context.
- You should read something about actually doing GLSL programming. Some discussion is here. I really recommend the OpenGL books.
That's the minimum, I recommend you go a little deeper. Here are some suggestions:
- Chapter 18 of RTR3 - graphics hardware. Lots of details about how hardware really works, and some tricks that make things go fast. Good to know if you want to exploit it, although many of the ideas (as you get towards the back of the chapter) haven't gotten their way into real systems yet.
- How GPUs Work by Luebke and Humphries (IEEEExplore)(alternate) A good overview of the basics of what a GPU is and what it does.
- Survey of General-Purpose Computation on Graphics Hardware (link Although it is about something else (how to use GPUs for things other than graphics), its a great discussion of what it takes to program the GPU.
- Andrews J. and Baker N., Xbox 360 System Architecture IEEE Micro March-April 2006 (IEEE Explore)
- John Owens, Streaming Architectures and Technology Trends (Chapter 29)
GPU Gems 2, (Online PDF)
These articles are about an older chip. However, a lot of the concepts remain the same, and they're good articles.
- John Montrym and Henry Moreton, The GeForce 6800, (IEEE Xplore link)
- Emmett Kilgariff and Randima Fernando. The GeForce 6 Series GPU
Architecture (Chapter 30). GPU Gems 2 (Online PDF).
Feburary 18 - Physics
You need to read enough about physics and physics programming to do your project. These suggestions are a starting point. As you find other readings, you'll have to mention them in your project.
(OK to Read Behind)
The absolute best introduction to Physical Simulation for Computer Graphics are some SIGGRAPH course notes by Andy Witkin and David Baraff. (each year, they add in some sections from others, but the main parts are from these two). The whole thing is more than you probably want to read, but you should at least read the first few chapters.
for copyright reasons, I have placed the notes in AFS, but not on the web. it is here:
/p/course/cs777-gleicher/public/AnimationResources/CourseNotes/Physically-Based-Simulation-2003.pdf
Actually, there is a version of it on the web:
Chapters 4.2 and 4.3 in Introduction to Game Programming (there are seperate chapters on collision detection and physics) are pretty decent, except that not many people have this book (it is on reserve at Wendt).
Chris Hecker (now of EA/Maxis and a lead programmer for Spore) has written a bunch on physics programming for games.
His articles are probably more accessible (and less formal) than some of the more academic references.
- Part 1: Physics, The Next Frontier is a gentle introduction to ODEs and numerical integration
- Part 2: Angular Effects - describes 2D momentum effects. Unfortunately, these ideas aren't easily extended to 3D. To be honest, I think its actually easier to learn about generalized coordinates than to try to understand how angular momentum really works (even in 2D).
- Part 3: Collision Response - describes collision response in 2D. Gives a quick run-through of how the impulse methods would connect to the 2D angular velocity equations in part 2.
- Part 4: 3D - this gives an introduction to how to do things in 3D. First, it has to confront the issues of representing rotations in 3D (which we will talk about later in the semester), and then it has to update all of those things that were complicated about angular momentum to work with it.
Monday March 24th - User Interface Design
Readings from The Design of Everyday Things (DOET) by Don Norman are required. You must read at least Chapter 1. Chapter 2 is recommended. Chapter 3 is optional.
As an alternate, there is an online book called User Interface Design for Programmers, by Joel Spolsky. Its available here. While I think its pretty good, its much better to read DOET. So read the first chapter of DOET first, and then look at this if you want.
March 26 and April 2 - Game Design and Experience Engineering
For each day, you need to read at least one article on Game Design. Note: the Falstein chapter from Introduction to Game Development can be considered as two articles (and it covers both of the topics below).
UPDATE: I have scanned Chapters 2.1 and 2.2 of Intoduction to Game Development and placed them into /afs/p/course/cs679-gleicher/private/Readings
(the files are IntroToGameDev-2-1-Funnativity.pdf and IntroToGameDev-2-2-GameDesign.pdf). These are recommended readings
For the first day, you should read an article on the overall philosophy of what makes things fun.
- Understanding Fun - A theory of Natural Funativity, by Noah Falstein. Chapter 2.1 in Introduction to Game Development. (note this chapter has a lot on the next topic as well). Update: since this is available in AFS, you should read this.
Natural Funativity this is an earlier version of the first part of the book chapter. (note: with the book chapter available, there is no reason to read this article)
- Chapter 1, "What is a Game?" from The Art of Computer Game Design by Chris Crawford. This is an ancient (mid-80s) book on game design. The parts on game design (the later chapters of the book) have evolved a lot. This early stuff is still really appropriate. (for class purposes, the fahlstein book chapter is more appropriate - read that first, and then look at this if you're curious)
For the second day, you should read at least one article that more specifically discusses game design. Here are some suggestions. Most articles tend to deal with specific aspects of Game Design, so you might want to look at more than one. Doing some reading will really help you design a better game (and you'll be designing a game soon!)
- Game Design by Isaac Barry. Chapter 2.2 in Introduction to Game Development. This chapter is a quick survey of many aspects. It spends time on methods, and mechanical details. Update: because this is available on AFS, I would make this the top choice.
- Formal Abstract Design Tools by Doug Church. This was a Game Developer Magazine article that was quite influential. It is quite often cited/referred to. Its marks a beginning in trying to think about game design (somewhat) scientifically.
- Gameplay Design Fundamentals: Gameplay Progression by Mike Lopez.
- Principles of Virtual Sensation by Steve Swink. I think this is particularly enlightening, and gets to very low level mechanics that apply directly even to small things like you will do in class.
- Behavioral Game Design by John Hopson. Uses behavioral psychology to discuss reward systems in games. I don't know if this is a good analogy, but it thinks about the right questions.
- Noah Falstein's 400 Project is interesting to look at. He is gathering a large collection of Game design guidelines.