Weekly Breakdown
Where to Get Slides / Other Materials
All course materials not on the website including slides, practice problems, and practice exams, are available on the course Google Drive here (USC login required). This drive will be updated as the semester progresses, so you should keep it favorited. For convenience, a link is included in the top toolbar on this website.
Week 1
Tuesday
Lecture: Course Intro; Game Programming Basics
Suggested Readings
- Ch. 1 (pp. 1-14; 23-31)
- For the online version, this is the start of Chapter 1 through the end of “The Game Loop and Game Class”; and “Updating the Game.”
Before Thursday’s Class
Complete Lab Setup Instructions (Mac) (PC)
Thursday
Lecture: Code Reviews; Style Guide
Lab: Start Lab 1: Pong
Supplemental Content
- If you are unfamiliar with or need a refresher on C++, read the C++ Refresher
- For a refresher on the math prerequisites of the course, read the Math Refresher
Upcoming Dates
- The final version of Lab 1 is due Wednesday of Week 2
Week 2
Tuesday
Lecture: Game Objects; Vector Basics
Lab: Continue Lab 1: Pong
Suggested Readings
- Ch. 2 (pp. 33-42); Ch. 3 (skip dot/cross product)
- For the online version, this is “Game Objects” from Chapter 2 and everything in Chapter 3 other than the dot product and cross product sections.
Wednesday
Lab 1 is DUE at 11:59PM
Thursday
Lecture: More Vectors; Trigonometry
Lab: Start Lab 2: Asteroids
Supplemental Content
- For additional practice with this week’s math concepts, try the Week 2 practice problems (problems and solutions on the Google Drive)
Upcoming Dates
- Grades for Lab 1 are out on Saturday
- Regrade requests for Lab 1 are due Tuesday of Week 3
- The final version of Lab 2 is due Wednesday of Week 3
Week 3
Tuesday
Lecture: Bounding Boxes
Lab: Continue Lab 2: Asteroids
Lab 1 regrade requests DUE at 11:59PM
Suggested Readings
- Ch. 10 (302-306; 311-312; 331-333)
- For the online version, read these sections from Chapter 10: “Axis-Aligned Bounding Boxes”, “AABB Versus AABB Test”, and the “Player Collision Against the Walls.”
Wednesday
Lab 2 is DUE at 11:59PM
Thursday
Lecture: Leading Edges; Level; Dot Product
Lab: Start Lab 3: Frogger
Suggested Readings
- Ch. 3 (pp. 68-70); Ch. 8 (pp. 248-251)
- For the online version, this is “Determining the Angle Between Two Vectors: Dot Product” from Chapter 3 and the start of Chapter 8 through the end of “Positive and Negative Edges”
Supplemental Content
- For additional practice with this week’s math concepts, try the Week 3 practice problems (problems and solutions on the Google Drive)
Upcoming Dates
- Grades for Lab 2 are out on Saturday
- Regrade requests for Lab 2 are due Tuesday of Week 4
- The final version of Lab 3 is due Wednesday of Week 4
Week 4
Tuesday
Lecture: Platforming; Scrolling
Lab: Continue Lab 3: Frogger
Lab 2 regrade requests DUE at 11:59PM
Suggested Readings
- Ch. 2 (pp. 50-53); Ch. 3 (pp. 79-81)
- For the online version, this is “Scrolling Backgrounds” from Chapter 2 and “Newtonian Physics” from Chapter 3
Wednesday
Lab 3 is DUE at 11:59PM
Thursday
Lecture: Animations; Sound Basics; Audio System
Lab: Start Lab 4: Mario
Suggested Readings
- Ch. 2 (pp. 44-50)
- For the online version, this is “Drawing Sprites” and “Animating Sprites” from Chapter 2
Upcoming Dates
- Grades for Lab 3 are out on Saturday
- Regrade requests for Lab 3 are due Tuesday of Week 5
- The final version of Lab 4 is due Wednesday of Week 5
Week 5
Tuesday
Lecture: Basics of AI for Games 1
Lab: Continue Lab 4: Mario
Lab 3 regrade requests DUE at 11:59PM
Wednesday
Lab 4 is DUE at 11:59PM
Thursday
Lecture: Basics of AI for Games 2
Lab: Start Lab 5: Pac-Man
Upcoming Dates
- Grades for Lab 4 are out on Saturday
- Regrade requests for Lab 4 are due Tuesday of Week 6
- The final version of Lab 5 is due Wednesday of Week 6
Week 6
Tuesday
Lecture: Tile Mapping, Pathfinding Basics
Lab: Continue Lab 5: Pac-Man
Lab 4 regrade requests DUE at 11:59PM
Wednesday
Lab 5 is DUE at 11:59PM
Thursday
Lecture: A* Pathfinding, Callbacks
Lab: Midterm Exam Review; Start Lab 6: Zelda
Suggested Readings
- Ch. 4 (pp. 104-115)
- For the online version, this is “Heuristics” through the end of “Following a Path” in Chapter 4
Supplemental Content
- To prepare for the midterm in Week 7, do the midterm practice questions (questions and solutions on Google Drive). We will go over these during “lab” on Tuesday of Week 7.
Upcoming Dates
- Grades for Lab 5 are out on Saturday
- Midterm is during Week 7!
- Due to the midterm in Week 7, regrade requests for Lab 5 are due Tuesday of Week 8
- Due to the midterm in Week 7, the final version of Lab 6 is due Wednesday of Week 8
Week 7
Tuesday
Midterm Exam (written; in-person) during class period
Thursday
No class: Fall Recess
Upcoming Dates
- Regrade requests for Lab 5 are due Tuesday of Week 8
- The final version of Lab 6 is due Wednesday of Week 8
Week 8
Tuesday
Lecture: 3D Graphics Basics
Lab: Continue Lab 6: Zelda
Lab 5 regrade requests DUE at 11:59PM
Suggested Readings
- Ch. 5 (pp. 148-161)
- For the online version, this is “Transformation Basics” through the end of “Adding World Transforms to Actor” in Chapter 5
Wednesday
Lab 6 is DUE at 11:59PM
Thursday
Lecture: Matrices; Basic Follow Camera
Lab: Start Lab 7: Star Fox Tunnel
Suggested Readings
- Ch. 5 (pp. 148-161)
- For the online version, this is “Transformation Basics” through the end of “Adding World Transforms to Actor” in Chapter 5
Upcoming Dates
- Grades for Lab 6 are out on Saturday
- Regrade requests for Lab 6 are due Tuesday of Week 9
- The final version of Lab 7 is due Wednesday of Week 9
Week 9
Tuesday
Lecture: Spring Camera; Vehicle Physics
Lab: Continue Lab 7: Star Fox Tunnel
Lab 6 regrade requests DUE at 11:59PM
Suggested Readings
- Ch. 9 (pp. 281-286)
- For the online version, this is the “Follow Camera” section of Chapter 9
Wednesday
Lab 7 is DUE at 11:59PM
Thursday
Lecture: Height Map; Enemy Driving; Cross Product
Lab: Start Lab 8: Mario Kart
Suggested Readings
- Ch. 3 (pp. 70-72)
- For the online version, this is the “Calculating a Normal: Cross Product” section
Upcoming Dates
- Grades for Lab 7 are out on Saturday
- Regrade requests for Lab 7 are due Tuesday of Week 10 (the week we are back from Spring Break)
- The final version of Lab 8 is due Wednesday of Week 10 (the week we are back from Spring Break)
Spring Break
Enjoy!
Week 10
Tuesday
Lecture: FPS Cameras; Forces; 3D GetMinOverlap; Unprojection; Input Replay
Lab: Continue Lab 8: Mario Kart
Lab 7 regrade requests DUE at 11:59PM
Suggested Readings
- Ch. 9 (pp. 276-280 and pp. 292-294)
- For the online version, this is the “First -Person Camera” and “Unprojection” sections in Chapter 9
Wednesday
Lab 8 is DUE at 11:59PM
Thursday
Lecture: Quaternions; JSON Levels; SegmentCast
Lab: Start Lab 9: Portal, Part 1
Suggested Readings
- Ch. 6 (pp. 185-189)
- For the online version, this is the “Euler Angles” and “Quaternions” sections in Chapter 6
Upcoming Dates
- Grades for Lab 8 are out on Saturday
- Regrade requests for Lab 8 are due Tuesday of Week 11
- The final version of Lab 9 is due Wednesday of Week 11
Week 11
Tuesday
Lecture: Portal Views and Teleporting
Lab: Continue Lab 9: Portal, Part 1
Lab 8 regrade requests DUE at 11:59PM
Supplemental Content
- To prepare for the programming exam in Week 12, check out the programming exam practice document on the Google Drive. We will go over this during “lab” on Tuesday of Week 12.
- For additional practice with this week’s (and last week’s) math concepts, try the Week 11 practice problems (problems and solutions on the Google Drive)
Wednesday
Lab 9 is DUE at 11:59PM
Thursday
Lecture: Planes and Line Segments; Reflection Vector
Lab: Start Lab 10: Portal, Part 2
Suggested Readings
- Ch. 10 (pp. 298-302; 314-315)
- For the online version, this is the “Line Segments”, “Planes”, and “Line Segment Versus Plane Test” sections of Chapter 10
Upcoming Dates
- Grades for Lab 9 are out on Saturday
- Due to the midterm in Week 12, regrade requests for Lab 9 are due Tuesday of Week 13
- Due to the midterm in Week 12, the final version of Lab 10 is due Wednesday of Week 13
Week 12
Lecture: atan2; Z-buffering; Lighting; Shading
Lab: Midterm Exam Review
Suggested Readings
- Ch. 6 (pp. 200-203; 206-211)
- For the online version, this is the “Out with the Painter’s Algorithm, in with Z-Buffering” and “Lighting” sections in Chapter 6
Thursday
Programming Exam (timed with computer; in-person) during class period
Upcoming Dates
- Regrade requests for Lab 9 are due Tuesday of Week 13
- The final version of Lab 10 is due Wednesday of Week 13
Week 13
Tuesday
Lecture: Actor Parenting; Turret AI
Lab: Continue Lab 10: Portal, Part 2
Lab 9 regrade requests DUE at 11:59PM
Wednesday
Lab 10 is DUE at 11:59PM
Thursday
Lecture: Sounds in 3D
Lab: Start Lab 11: Portal, Part 3
Suggested Readings
- Chapter 7 covers a lot more aspects of sound in game, including how to use FMOD
Upcoming Dates
- Grades for Lab 10 are out on Saturday
- Regrade requests for Lab 10 are due Tuesday of Week 14
Week 14
Tuesday
Lecture: User Interfaces
Lab: Continue Lab 11: Portal, Part 3
Lab 10 regrade requests DUE at 11:59PM
Suggested Readings
- Chapter 7 covers a lot more aspects of sound in game, including how to use FMOD
Thursday
No class: Thanksgiving
Suggested Readings
- Chapter 10 covers user interfaces
Supplemental Content
- To prepare for the final exam, check out the final exam practice document on the Google Drive. We’ll have a final exam review the last meeting of Week 15.
Upcoming Dates
- The final version of Lab 11 is due Monday of Week 15
- The final version of Lab 12 is due Friday of Week 15
Week 15
Monday
Lab 11 DUE at 11:59PM
Tuesday
Lecture: Swept Shapes; Separating Axis Theorem
Lab: Continue Lab 12: Portal, Part 4
Suggested Readings
- Ch. 10 (pp. 321-323; 329-331)
- For the online version, this is the “Dynamic Objects” and “Testing Box Collisions in PhysWorld” sections in Chapter 10
Thursday
Lecture: Getting into the Game Industry; Final Exam Review
Friday
Lab 12 is DUE at 11:59PM
Upcoming Dates
- Grades for Lab 11 are out on Saturday
- Regrade requests for Lab 11 are due Tuesday of next week
- The final exam is scheduled based on your section