We may earn an affiliate commission when you visit our partners.
Course image
David J. Malan and Colton Ogden

In a quest to understand how video games themselves are implemented, you'll explore the design of such childhood games as:

  • Super Mario Bros.
  • Pong
  • Flappy Bird
  • Breakout
  • Match 3
  • Legend of Zelda
  • Angry Birds
  • Pokémon
  • 3D Helicopter Game
  • Dreadhalls
  • Portal

What's inside

Learning objective

Via lectures and hands-on projects, the course explores principles of 2d and 3d graphics, animation, sound, and collision detection using frameworks like unity and löve 2d, as well as languages like lua and c#. by class’s end,you'llhave programmed several ofyour own games and gained a thorough understanding of the basics of game design and development.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops core skills for the 2D and 3D video game development pipeline
Explores topics highly relevant to game design and development in particular, and computer programming in general
Offers hands-on labs and materials that help you learn by doing
Provides a solid foundation for both beginners and learners with some prior experience
Modules are delivered by two recognized game development instructors
Taught by David J Malan and Colton Ogden, who have substantial histories in game design

Save this course

Save CS50's Introduction to Game Development to your list so you can find it easily later:
Save

Reviews summary

Immersive, introductory game development

Learners say this beginner- and intermediate-friendly course is well-structured and brings beginners up to speed on game development fundamentals. The hands-on assignments, knowledgeable instructors, and real-world examples make the engaging material easy to understand
Relevant applications keep material engaging.
"The emphasis on real-world examples and practical applications of programming made the material more engaging and relevant."
Instructors are supportive and helpful.
"The instructors were knowledgeable and supportive, always available to answer questions and provide guidance."
Hands-on exercises help learners apply concepts.
"The course was interactive, with plenty of hands-on exercises that allowed me to apply what I had learned."
Suitable for beginners, with no experience necessary.
"You don't need to have any experience to start the course as you can get along with the course very easily."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in CS50's Introduction to Game Development with these activities:
Organize Course Materials and Notes
Establish a strong foundation for learning by organizing your course materials.
Browse courses on Organization
Show steps
  • Review your notes, assignments, and quizzes.
  • Create a system for organizing and storing your materials.
  • Regularly review and update your organized materials.
Join a Game Development Study Group
Expand your learning network and gain insights from peers by participating in a game development study group.
Browse courses on Game Development
Show steps
  • Find a study group that aligns with your interests and skill level.
  • Attend regular study sessions and actively participate in discussions.
  • Collaborate on projects and provide feedback to your group members.
Read 'Game Programming Patterns'
Enhance your understanding of game design patterns and best practices.
Show steps
  • Read the book and take notes on key concepts.
  • Apply the patterns discussed in the book to your own game development projects.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Create a 3D Helicopter Game Using Unity
Reinforce your understanding of 3D game development by building a 3D helicopter game.
Browse courses on 3D Game Development
Show steps
  • Follow a Unity tutorial on creating a 3D helicopter game.
  • Customize the game with your own designs and features.
Attend a Game Development Workshop
Gain practical experience and learn new techniques by attending a game development workshop.
Browse courses on Game Development
Show steps
  • Research and find a workshop that aligns with your interests and skill level.
  • Attend the workshop and actively participate in the activities.
  • Network with other participants and industry professionals.
Implement the Physics Engine of Super Mario Bros.
Build a simplified physics engine by yourself to understand how Super Mario Bros.' physics engine.
Browse courses on Physics Engine
Show steps
  • Research the physics engine of Super Mario Bros.
  • Implement the core physics concepts, such as gravity, friction, and collision detection.
  • Test and debug the physics engine.
Create a Blog Post on Game Design
Share your knowledge and insights on game design by writing a blog post.
Browse courses on Game Design
Show steps
  • Choose a specific topic within game design that you are passionate about.
  • Research and gather information to support your ideas.
  • Write a well-structured and engaging blog post.
  • Promote your blog post on social media and other platforms.
Design and Implement a Match-3 Game
Solidify your grasp of game design principles by creating your own Match-3 game.
Browse courses on Game Design
Show steps
  • Design the game mechanics, including the rules, scoring system, and power-ups.
  • Implement the game using a game development framework or language.
  • Test and iterate on the game based on user feedback.

Career center

Learners who complete CS50's Introduction to Game Development will develop knowledge and skills that may be useful to these careers:
Game Designer
As a Game Designer, you will be responsible for the overall design and concept of a game, from the initial idea to the final product. This course will help you develop the skills you need to design engaging and challenging games, including the ability to create compelling characters, design levels, and incorporate game mechanics. You will also learn about the different aspects of game development, such as graphics, sound, and programming.
Game Developer
A Game Developer is responsible for implementing the Game Designer's vision into a playable game. This course will help you develop the programming and technical skills you need to create high-quality games, including the ability to work with game engines, create 3D models, and optimize code. You will also learn about the different stages of game development, from pre-production to post-release.
Game Programmer
As a Game Programmer, you will be responsible for creating the code that brings a game to life. This course will help you develop the programming skills you need to create a game's core mechanics, such as physics, collision detection, and AI. You will also learn about the different types of programming languages used in game development, such as C++ and C#.
Game Artist
A Game Artist creates the visual content for a game, such as characters, environments, and props. This course will help you develop the artistic skills you need to create high-quality game art, including the ability to work with digital painting, 3D modeling, and animation. You will also learn about the different styles of game art, such as realistic, cartoonish, and anime.
Game Producer
As a Game Producer, you will be responsible for overseeing the development of a game, from start to finish. This course will help you develop the management and communication skills you need to lead a team of developers, artists, and designers. You will also learn about the different aspects of game production, such as budgeting, scheduling, and marketing.
Animator
As an Animator, you will be responsible for creating the animations that bring a game's characters and objects to life. This course will help you develop the skills you need to create high-quality animations, including the ability to work with animation software, keyframing, and motion capture. You will also learn about the different types of animations, such as character animation, facial animation, and motion capture.
Game Tester
A Game Tester is responsible for playing a game to find bugs and other problems. This course will help you develop the skills you need to test games effectively, including the ability to think critically, pay attention to detail, and communicate clearly. You will also learn about the different types of game testing, such as functional testing, performance testing, and localization testing.
3D Modeler
As a 3D Modeler, you will be responsible for creating the 3D models that are used in games. This course will help you develop the skills you need to create high-quality 3D models, including the ability to work with 3D modeling software, UV mapping, and texturing. You will also learn about the different types of 3D models, such as characters, environments, and props.
Technical Artist
As a Technical Artist, you will be responsible for bridging the gap between art and technology. This course will help you develop the skills you need to create technical solutions to artistic problems, such as the ability to work with shaders, particle systems, and physics. You will also learn about the different types of technical art, such as lighting, effects, and procedural generation.
Audio Engineer
As an Audio Engineer, you will be responsible for creating the sound effects and music that are used in games. This course will help you develop the skills you need to create high-quality audio, including the ability to work with audio software, sound design, and music production. You will also learn about the different types of audio, such as sound effects, music, and voice acting.
Game Writer
As a Game Writer, you will be responsible for writing the story and dialogue for a game. This course will help you develop the skills you need to create compelling and engaging stories, including the ability to write dialogue, plot, and character development. You will also learn about the different types of game writing, such as narrative writing, quest writing, and dialogue writing.
UX Designer
As a UX Designer, you will be responsible for designing the user interface for a game. This course will help you develop the skills you need to create a user-friendly and intuitive interface, including the ability to work with user research, prototyping, and graphic design. You will also learn about the different aspects of UX design, such as navigation, layout, and typography.
Level Designer
As a Level Designer, you will be responsible for creating the levels for a game. This course will help you develop the skills you need to create engaging and challenging levels, including the ability to work with level design software, world building, and environmental storytelling. You will also learn about the different types of levels, such as combat levels, puzzle levels, and stealth levels.
Gameplay Programmer
As a Gameplay Programmer, you will be responsible for creating the code that controls the gameplay of a game. This course will help you develop the skills you need to create a fun and engaging gameplay experience, including the ability to work with game mechanics, AI, and physics. You will also learn about the different types of gameplay programming, such as character control, level scripting, and enemy AI.
Software Engineer
As a Software Engineer, you will be responsible for designing, developing, and maintaining software applications. This course will help you develop the programming skills you need to create high-quality software, including the ability to work with software development tools, data structures, and algorithms. You will also learn about the different aspects of software engineering, such as software design, testing, and deployment.

Reading list

We've selected 14 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in CS50's Introduction to Game Development.
Provides a comprehensive introduction to 3D game programming using DirectX 12, covering topics such as graphics, animation, and collision detection. It valuable resource for students and developers who want to learn the fundamentals of game development.
Provides a comprehensive overview of real-time rendering techniques, covering topics such as lighting, shading, and anti-aliasing. It valuable resource for developers who want to learn the fundamentals of real-time rendering.
Provides a comprehensive overview of C# game development using Unity, a popular game engine. It valuable resource for students and developers who want to learn how to create games with C# and Unity.
Provides a comprehensive overview of modern game design principles, covering topics such as player experience, level design, and monetization. It valuable resource for students and developers who want to learn the art of game design.
Provides a comprehensive overview of AI techniques used in games, covering topics such as pathfinding, decision-making, and machine learning. It valuable resource for developers who want to learn how to add AI to their games.
Provides a comprehensive overview of Lua, a popular scripting language used in game development. It valuable resource for developers who want to learn how to use Lua in their games.
Introduces common design patterns used in game development, such as the singleton pattern, the observer pattern, and the state pattern. It useful reference for developers who want to learn best practices for game design.
Provides a comprehensive overview of game development using JavaScript, a popular programming language used in web development. It valuable resource for developers who want to learn how to create games with JavaScript.
Provides a comprehensive overview of game development using Python, a popular programming language used in data science and machine learning. It valuable resource for developers who want to learn how to create games with Python.
Provides a detailed overview of game engine architecture, covering topics such as rendering, physics, and networking. It valuable resource for developers who want to understand how game engines work.
Provides a comprehensive overview of game development using Java, a popular programming language used in enterprise software development. It valuable resource for developers who want to learn how to create games with Java.
Provides a comprehensive introduction to game physics using Bullet Physics, a popular open-source physics engine. It valuable resource for developers who want to learn how to add physics to their games.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser