Skip to main content Link Search Menu Expand Document (external link)

Theme: auto

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