Welcome

This course picks up where CS50x leaves off, focusing on the development of two-dimensional (2D) interactive games. Students explore the design and mechanics of such childhood games as Pong, Flappy Bird, Breakout, Match 3, Super Mario Bros., Legend of Zelda, Angry Birds, and Pokémon in a quest to understand how video games more broadly are implemented. Via lectures and hands-on projects, the course explores principles of 2D graphics, animation, sound, and collision detection using the Lua programming language and LÖVE 2D framework. By course’s end, students have programmed several of their own games and gained a thorough understanding of the basics of game design and development, and are equipped to implement the same professionally or personally.

Prerequisites
CS50x or prior experience in any programming language.
Learn to create these games

How to Take this Course

Even if you are not a student at Harvard, you are welcome to “take” this course for free via this OpenCourseWare by working your way through the course’s eight weeks of material. For each week, follow this workflow:

flowchart TD
    A[Watch Lecture] --> B[Implement Project]

And then implement the course’s final project.

How to Teach this Course

If you are a teacher, you are welcome to adopt or adapt these materials for your own course, per the license.