We may earn an affiliate commission when you visit our partners.
Course image
Robert Gioia

This course will walk you through building an entire video game hands-on, and will take you step-by-step through the game development process.

Read more

This course will walk you through building an entire video game hands-on, and will take you step-by-step through the game development process.

Did you grow up playing car racing games like Need For Speed and Gran Turismo? Do you want to learn how to build car racing games in Unity using C# code? Growing up, racing games always fascinated me. I was intrigued by how the in-game physics was so realistic and how they simulated driving in the game so accurately. This course will teach you how to build a full racing game in Unity, even if you are a beginner. By the end of this course, you will have a full car racing game that you built in Unity from the ground up.

As we build this course, you are going to gain a wealth of knowledge in the different areas of the Unity game engine. Some of the core game development techniques this course will teach you are:

  • Using C# logic to create SELF-DRIVING AI CARS driving around the track and competing against the player in races.

  • Implementing a HOT PURSUIT MODE where police cars chase the player.

  • Working with Unity's Physics system and understanding how to use components like WHEEL COLLIDERS and Rigidbodies to simulate vehicle movement and interaction with the environment.

  • Utilizing Unity's UI system to build a MINI-MAP and other racing heads up displays like a speedometer.

  • Writing reusable code that can be applied to several different sections of the game. Object-oriented C# scripting techniques for writing

  • Learn about the different UI components and how they can be used together to build IN-GAME MENUS and selection screens that efficiently and intuitively respond to user input.

  • Turn your ideas into code using C# with Unity and build up a set of skills that you can use to build other CAR RACING GAMES and showcase them in your portfolio.

By the end of this course, you will have a full game project you developed from the ground up. You will also have some more C# tips and tricks that you can add to your arsenal.

If you want to learn game development or are aspiring to build a career in the game industry, then this course is for you.

Enroll now

What's inside

Learning objectives

  • Develop self-driving ai cars that race the player
  • Build a hot pursuit mode where ai police cars chase the player car
  • Implement car customization logic with a garage feature
  • Create save + load game slots using scriptable objects
  • Toggle between the exterior and interior car views during a race
  • Design a fully functioning racing ui including a leaderboard, speedometer, and minimap
  • Bolster your knowledge of design patterns and algorithms and implement them hands-on
  • Master creating 3d animations, cinematography, special effects, and more
  • Implement a breakable objects system in the game world to create engaging and immersive game levels
  • Includes advanced material and lighting design

Syllabus

This section will introduce the Unity 3D Car Racing Game Masterclass using C# course. By the end of this section you will have an understanding of the game we will build in this course.
Read more

This video will introduce the Unity 3D Car Racing Game Masterclass using C# course. By the end of this video you will understand the learning objectives for the course.

In this video we will review the game design document for the game we will build in this course using Unity and C#. By the end of this video you will have a clear plan for the different sections and features of the game thanks to the game design document.

In this video take a look at the finished game play to understand the full picture of the game we will build in this course. By the end of this section you will be ready to start building the car racing game using Unity and C#.

This video will introduce this section of the course. By the end of this section you will be up and running with the programs needed for this course, and one step closer to building a 3D car racing game using Unity and C#.

In this video we will cover how to set up and install Unity step-by-step on a Mac computer. By the end of this video you will have Unity up and running on your Mac.

In this video we will cover how to set up and install Unity step-by-step on a Windows computer. By the end of this video you will have Unity up and running on your Windows.

In this video we will download and import the assets that we will use to build the game. By the end of this video you will have the files needed to begin working on the car racing game project in Unity.

In this video we will go over and implement some best practices for staying organized when working in the new Unity project. By the end of this video you will have a folder hierarchy setup in your project to stay organized.

This video will recap and summarize the material covered in this section of the course. By the end of this video you will be one step closer to building a 3D car racing game using Unity and C#.

This video will introduce the car driving, physics, and MVC logic section of the course. By the end of this video you will understand the learning objectives for this section.

In this video we will learn what the model view controller, aka MVC, design pattern is and the role that it plays in game development and computer programming. By the end of this video you will have a better understanding of the MVC design pattern and be ready to start implementing it hands-on in the project.

In this video we will code the car model script, the "M" in MVC. By the end of this video you will have a car model script that you created using C# code and a better understanding of the role models play in the MVC design pattern.

In this video we will code the car view script, the "V" in MVC. By the end of this video you will have a car view script that you created using C# code and a better understanding of the role views play in the MVC design pattern.

In this video we will code the car controller script, the "C" in MVC. By the end of this video you will have a car controller script that you created using C# code and a better understanding of the role controllers play in the MVC design pattern.

In this video we will learn about the different physics components that Unity provides us for creating realistic car physics in the game engine. By the end of this video you will understand each of the different unity car physics components.

In this video we will assemble the muscle car for our game. By the end of this video you will have a muscle car prefab that we will use in the game.

In this video we will assemble the sports car for our game. By the end of this video you will have a sports car prefab that we will use in the game.

In this video we will assemble the luxury car for our game. By the end of this video you will have a luxury car prefab that we will use in the game.

In this video we will code the car driving and physics logic. By the end of this video you will understand how to implement car driving and physics logic in Unity using C#.

This quiz will test your knowledge of the material taught in this section of the course on car driving, physics, and MVC logic using the Unity game engine and C# code.

This video will introduce the scene navigation system section of the course. By the end of this video you will understand the learning objectives for this section.

In this video we will learn about the singleton design pattern and how to implement it in Unity. By the end of this video you will have hands-on experience implementing the singleton design pattern in Unity using C#.

In this video we will learn about the stack data structure and its role in the implementation of a scene navigation system in Unity. By the end of this video you will have an understanding of the stack data structure and the role that it plays in C# programming.

In this video we will code the navigation manager for our car racing game project. By the end of this video you will have hands-on experience implementing a navigation manager class in Unity using C# code.

In this video we will learn how to use the SceneManager class's sceneLoaded event, in order to trigger a callback when a scene is loaded in our Unity game. By the end of this video you will understand what the Scene Manager's sceneLoaded event does and how to implement it using Unity and C#.

In this video we will add a back button to the screens of our game so that the user can navigate to the prior screen. By the end of this video you will understand how to implement back button logic in the games and apps you build using Unity and C#.

In this video we will learn about the dictionary data structure. By the end of this video you will understand the dictionary data structure and the role that it plays in C#.

In this video we will learn how to pass data between scenes when navigating in a Unity game. By the end of this video you will understand how to write C# code to pass data to a scene when it is loaded.

This quiz will test your knowledge of the material taught in this section of the course on implementing a scene navigation system using the Unity game engine and C# code.

This video will introduce this section of the course where we will create a welcome screen for our game. By the end of this video you will understand the learning objectives for this section of the course.

In this video we will create a reusable menu header prefab. By the end of this video you will understand how to create a reusable UI prefab for the Unity games that you build.

In this video we will create a reusable menu header prefab. By the end of this video you will understand how to create a reusable user data prefab for the Unity games that you build.

In this video we will create a reusable menu header prefab. By the end of this video you will understand how to create a reusable menu button prefab for the Unity games that you build.

In this video we will create a high tech background animation for our Unity game. By the end of this video you will have created a high tech background animation and an understanding of how to implement such effects in Unity.

In this video we will add a car to the welcome screen and also add lighting and headlights to our car with a flare effect. By the end of this video you will have a welcome screen for your game.

In this video we will code the start menu controller script for our game. By the end of this video you will have coded a start menu controller script using C# code.

This quiz will test your knowledge of the material taught in this section of the course on creating the welcome screen for our game using the Unity game engine and C# code.

This video will introduce this section of the course on implementing save and load game functionality in Unity using C#. By the end of this video you will have a better understanding of the learning objectives for this section of the course.

In this video we will learn about the three different ways to save game data in the Unity game engine: PlayerPrefs, Scriptable Objects, and Text Files. By the end of this video you will understand each of these solutions and their pros and cons.

In this video we will create the modal base class that the various modals we will create for our game will extend. By the end of this video you will have a generic modal base class that can be subclassed to create different types of modals.

In this video we will create a save slot modal for our game. By the end of this video you will have a modal with slots that the user can click to save and load game data.

In this video we will learn the fundamentals of editor scripting and how to utilize it to create a game data editor. By the end of this video you will have created a game data editor script for Unity using C# code.

In this video we will create the game data scriptable object. By the end of this video you will understand more about working with scriptable objects in Unity.

In this video we will code the new game logic for our game. By the end of this video you will understand how to create new game functionality for the games that you build in the Unity game engine using C# code.

This quiz will test your knowledge of the material taught in this section of the course on implementing save and load game functionality for our game using the Unity game engine and C# code.

This video will introduce this section of the course Formatted Text - Generic, Stylizable Text Classes. By the end of this video you will understand the learning objectives for the section and be ready to start implementing using Unity and C#.

In this video we will learn about abstract classes in C#. By the end of this video you will understand what abstract classes are and the role that they play in C# programming.

In this video we will create a generic abstract class for formatted text. By the end of this video you will have a generic abstract class for formattable text that you can use in your Unity game projects.

In this video we will create a date text class. By the end of this video you will understand how to format C# text to display date data.

In this video we will create a time text class. By the end of this video you will understand how to format C# text to display time data.

In this video we will create a money text class to display in-game currency. By the end of this video you will understand how to format C# text to display currency.

In this video we will create lap text for our game in order to display the laps the player has completed in the race. By the end of this video you will understand how to create text to display the laps the player has completed in a racing game.

In this video we will create place text for our game to display the place that the player is in during the race. By the end of this video you will understand how to create text to show what place a player is in for car racing games you build in Unity using C#.

In this video we will create percent text to display percentages in our game. By the end of this video you will understand how to create text to show percentages for car racing games you build in Unity using C#.

This quiz will test your knowledge of the material taught in this section of the course on Formatted Text - Generic, Stylizable Text Classes for our game using the Unity game engine and C# code.

This video will introduce this section of the course on in-game modals and pop-ups. By the end of this video you will have a better understanding of the learning objectives for this section.

In this video we will learn what a modal is. Modals are a key element to notifications in games and apps. By the end of this video you will understand what modals are and the role that they play in game development.

In this video we will create the one button modal for our game. By the end of this video you will have a one button modal that can be utilized throughout different spots in the game.

In this video we will create the enter username modal for our game. By the end of this video you will have an enter username modal used in the FTUE onboarding experience for the game.

In this video we will create the finished race modal for our game. By the end of this video you will have a finished race modal that you can use in the car racing games that you develop using Unity and C#.

In this video we will create a two button modal class for our game. By the end of this video you will have a two button modal that you can use in the games you develop using Unity and C#.

This quiz will test your knowledge of the material taught in this section of the course on In-Game Modals and Pop-Ups for our game using the Unity game engine and C# code.

In this video we will get an overview look at what we will do in this section of the course, Choose a Car Screen. By the end of this video you will understand the learning objectives for this section.

In this video we will create an ICarousel interface that will be implemented to create various carousel-style cycle throughs of objects like cars and images. By the end of this video you will understand how to work with interfaces in C#.

In this video we will implement the ICarousel interface to create a car carousel script for our game. By the end of this video you will have a car carousel script that you can use in the car racing games you build using Unity and C#.

In this video we will create a C# script to rotate a game object 360 degrees in Unity. By the end of this video you will understand how to programmatically rotate objects in Unity using C# code.

In this video we will create a choose a car script for our game using C# code. By the end of this video you will have a C# script that allows the player to choose a car for our racing game.

In this video we will assemble the choose a car screen for our game. By the end of this video you will have assembled the choose a car scene in Unity.

This quiz will test your knowledge of the material taught in this section of the course on creating a Choose a Car Screen for our game using the Unity game engine and C# code.

In this video we will go over the answers and explanations to the quiz questions. By the end of this video you will have a better understanding of the material taught in this section of the course on the Unity game engine and C# code.

This video will summarize and recap what was covered in this section of the course. By the end of this video you will be ready to move onto the next section.

This video will introduce this section of the course, Main Menu. By the end of this video you will have a better understanding of the learning objectives for this section.

In this video we will code the main menu controller script for our Unity game. By the end of this video you will understand how to use C# code to write a main menu controller script.

In this video we will assemble the UI for our main menu in Unity. By the end of this video you will have a working main menu for our car racing game in Unity that we coded in C# and built out in the UI system.

This quiz will test your knowledge of the material taught in this section of the course on creating a Main Menu for our game using the Unity game engine and C# code.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Provides hands-on experience building a complete car racing game from scratch, which is a great way to learn and showcase skills in a portfolio
Covers core game development techniques like AI car logic, physics simulations, UI design, and reusable code, which are fundamental skills for building games in Unity
Explores the Model-View-Controller (MVC) design pattern, singleton design pattern, and stack data structure, which are valuable for organizing and structuring code in Unity projects
Teaches how to implement save and load game functionality using Scriptable Objects, which is a useful technique for managing game data in Unity
Focuses on building a car racing game, which may not appeal to learners interested in other game genres or those seeking broader game development skills
Requires learners to download and import assets, which may require additional storage space and potentially introduce compatibility issues if assets are not properly maintained

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Comprehensive unity 3d car racing game building

According to students, this course offers a thorough step-by-step guide into building a complete car racing game in Unity. Learners particularly praised the hands-on approach and the clarity of the explanations, making complex topics accessible even for those new to game development or C#. Many found the included assets and project files very helpful for following along. While the core content on driving mechanics, UI, and AI received largely positive feedback, some mentioned that certain sections, like the game design patterns, could benefit from more in-depth theoretical explanations or updated content to align with newer Unity versions.
Covers patterns like MVC, but could go deeper.
"The introduction to MVC and Singleton was helpful, but I felt these sections could be expanded with more examples or theory."
"It touches on design patterns, which is good, but it's mostly a surface-level introduction within the context of the game."
"I learned about MVC, but I think I need to study design patterns more elsewhere for a deeper understanding."
Provided assets aid project development.
"Having the necessary assets provided saved a lot of time and allowed me to focus on the coding."
"The included car models and environment pieces were high quality and essential for the project."
"Using the provided assets made it much simpler to replicate what the instructor was doing."
Learning by doing via a full game project.
"Building a complete racing game from start to finish was incredibly rewarding and a great way to learn."
"I loved that the course focused on a single, large project. It feels like I built something substantial."
"The practical nature of the course, actually coding and seeing results, is its greatest strength."
Instructor is easy to understand and follow.
"The explanations are very clear and concise, which made complex coding concepts much easier for me to grasp."
"I found the instructor's teaching style very clear. He explains not just what to do, but why."
"His voice is clear and the pace is just right. I never felt rushed through the material."
Walks you through building the game progressively.
"The instructor breaks down the process into very manageable steps, making it easy to follow along even as a beginner."
"I really appreciated the step-by-step approach, building the game piece by piece. It helped solidify concepts."
"Every video logically follows the last, building up the project from scratch. Excellent for learning the workflow."
Some content or Unity versions may be outdated.
"Some parts of the course seem slightly outdated, especially regarding newer Unity features or best practices."
"I had to do a bit of troubleshooting myself because some features shown in the videos were changed in the latest Unity version."
"While the core principles are sound, some videos could be refreshed to reflect current Unity UI or coding standards."

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 Unity 3D Car Racing Game Masterclass with these activities:
Review C# Fundamentals
Reinforce your understanding of C# syntax and object-oriented programming concepts before diving into the course's coding challenges.
Show steps
  • Review basic C# syntax and data types.
  • Practice writing simple C# programs.
  • Study object-oriented programming principles.
Practice with Unity's UI System
Familiarize yourself with Unity's UI system to efficiently create in-game menus and heads-up displays.
Show steps
  • Create a simple UI layout with buttons and text fields.
  • Implement basic UI interactions using C# scripts.
  • Experiment with different UI components and layouts.
Unity in Action, Third Edition
Deepen your understanding of Unity's core concepts and game development techniques by studying this book.
Show steps
  • Read the chapters related to C# scripting and Unity's physics engine.
  • Implement the examples provided in the book.
  • Experiment with different techniques to solidify your understanding.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Implement Car Physics
Practice implementing car physics using Unity's Wheel Colliders and Rigidbodies to master vehicle movement and interaction with the environment.
Show steps
  • Create a new Unity project and import a car model.
  • Add Wheel Colliders to the car model.
  • Write C# scripts to control the car's movement and physics.
  • Tune the car's physics parameters for realistic handling.
Document Car Physics Implementation
Solidify your understanding of car physics by creating a document that explains the implementation details and design choices.
Show steps
  • Describe the car physics model used in the game.
  • Explain the role of each component in the car physics system.
  • Document the C# scripts used to control the car's movement.
  • Include diagrams and illustrations to clarify the concepts.
Expand the Racing Game
Apply your knowledge by expanding the racing game with new features, such as additional tracks, cars, or game modes.
Show steps
  • Design and implement a new racing track.
  • Add a new car model with unique physics parameters.
  • Implement a new game mode, such as time trial or elimination.
  • Test and refine the new features.
Contribute to a Unity Asset
Contribute to an open-source Unity asset related to car racing or game development to gain experience working on a collaborative project.
Show steps
  • Find an open-source Unity asset on GitHub or GitLab.
  • Identify a bug or feature to work on.
  • Fork the repository and make the necessary changes.
  • Submit a pull request with your changes.

Career center

Learners who complete Unity 3D Car Racing Game Masterclass will develop knowledge and skills that may be useful to these careers:
Game Developer
The role of a game developer involves creating and designing video games for various platforms. This career requires a strong understanding of game development principles, programming languages, and game engines. This course focusing on building a car racing game in Unity using C# helps you develop a comprehensive understanding of core game development techniques. The course's emphasis on creating self-driving AI cars, implementing a hot pursuit mode, and working with Unity's physics system are directly applicable to the responsibilities of a game developer. A game developer should take this course to build a strong foundation in Unity game development, which is highly sought after in the gaming industry.
Physics Programmer
A physics programmer focuses on implementing realistic physics simulations in video games and other applications. This requires a strong understanding of physics principles, mathematics, and programming. This course, which includes working with Unity's physics system and understanding how to use components like wheel colliders and rigidbodies to simulate vehicle movement and interaction with the environment, builds a foundation. The course provides practical experience in creating realistic vehicle physics within a game environment. Someone who wants to be a physics programmer should take this course in particular.
Gameplay Programmer
A gameplay programmer is responsible for implementing the core gameplay mechanics and features of a video game. This involves working closely with designers and artists to bring the game to life. This course, which covers a wide range of gameplay elements, helps to develop a diverse skillset. The course's approach to building a car racing game from the ground up, including implementing car customization logic, designing a fully functioning racing UI, and creating breakable objects, will give you a comprehensive understanding of gameplay programming principles. A gameplay programmer should take this course to build a solid foundation in Unity game development and acquire practical experience.
Indie Game Developer
An indie game developer works independently or in a small team to create and publish their own video games. This requires a wide range of skills, including programming, art, design, and marketing. This course helps build a car racing game from scratch, can be valuable for aspiring indie game developers. The course's coverage of various aspects of game development, from implementing car physics to designing a user interface, provides a comprehensive skill set for creating and releasing an indie game. An indie game developer should take this course for its practical, hands-on approach to game development.
UI Programmer
A User Interface Programmer, also known as a UI Programmer, specializes in creating interactive and visually appealing interfaces for software and games. This role requires proficiency in UI design principles, programming languages, and UI frameworks. This course helps build a strong foundation in UI development within the Unity game engine. Creating a racing UI that includes a leaderboard, speedometer, and minimap can be directly applied to the responsibilities of a UI programmer. The course's emphasis on utilizing Unity's UI system to build in-game menus and selection screens will also improve efficiency in user input.
Game Designer
A game designer is responsible for conceiving, designing, and implementing the vision for a video game. This includes defining the game's mechanics, story, and overall experience. This course, which guides you through building a car racing game from the ground up, builds a strong foundation in game design principles. The course's emphasis on creating self-driving AI cars, implementing a hot pursuit mode, and designing a fully functioning racing UI can be directly applied to the responsibilities of a game designer. An individual can use this Unity and C# course as preparation for a career as game designer.
Software Engineer
A software engineer is responsible for designing, developing, and testing software applications. This often involves using a variety of programming languages and development tools. This course, which guides you through building a car racing game using Unity and C#, helps you to gain practical experience in software development. The course's focus on writing reusable code using object-oriented C# scripting techniques and implementing design patterns and algorithms can be directly translated to software engineering principles. The development of in-game menus and selection screens using Unity's UI system also helps build skills in user interface design, a valuable asset for a software engineer.
Mobile Game Developer
A mobile game developer specializes in creating games for mobile devices, such as smartphones and tablets. This requires a strong understanding of mobile game development principles, optimization techniques, and platform-specific considerations. This course, which focuses on building a car racing game in Unity, can be adapted for mobile platforms. The course's emphasis on UI design, user input, and performance optimization are valuable skills. This course can give a mobile game developer valuable skills.
Technical Artist
A technical artist bridges the gap between art and technology in game development, optimizing art assets, creating tools for artists, and ensuring the game runs smoothly. This course helps gain skills valuable to technical artists, particularly in the areas of animation, special effects, and material design. This course includes advanced material and lighting design, which aids in enhancing a technical artist's knowledge. Also, the course's focus on 3D animations, cinematography, and special effects provides practical experience in creating visually appealing and optimized game assets. For any prospective technical artist, this Unity course may be helpful.
Artificial Intelligence Programmer
An artificial intelligence programmer develops the AI systems that power various applications, including video games. This requires a deep understanding of AI algorithms, machine learning, and programming. This course may be useful, as it provides hands-on experience in creating self-driving AI cars in Unity using C#. The course's focus on implementing a hot pursuit mode, where AI police cars chase the player, can help you develop skills in designing and implementing AI behaviors. The knowledge of design patterns and algorithms, as well as the implementation of breakable objects, may be relevant to creating realistic and engaging AI systems. An artificial intelligence programmer may find value in this course.
Extended Reality Developer
Extended Reality Developer, or XR Developer, creates applications that span virtual, augmented, and mixed reality. The XR Developer role requires using platforms and programming languages like Unity and C#. Creating immersive experiences is also a critical component to the role. Taking this course and building a car racing game in Unity and C#, can help you develop skills for XR development. Also, the course's emphasis on interactive elements, and optimizing performance can be applied to XR applications. The skills related to AI, Animation, Design found within, may be especially useful for an Extended Reality Developer.
AR/VR Developer
An augmented reality virtual reality developer, sometimes called an AR VR developer, creates immersive experiences for various platforms. This often involves using game engines like Unity or Unreal Engine, as well as programming languages like C#. This course, which guides you through building a car racing game in Unity using C#, helps you develop essential skills for AR VR development. The course's emphasis on creating 3D environments, implementing interactive elements, and optimizing performance are directly applicable to AR VR applications. This course may be useful, as it provides a strong foundation in Unity development, as well as C#.
Simulation Engineer
Simulation engineers develop and implement simulations for various applications, including training, testing, and research. This career typically requires a background in engineering, physics, or computer science, as well as strong programming skills. This course, which focuses on building a car racing game with realistic physics and AI, may be useful as preparation. The course's emphasis on using Unity's physics system and C# logic to simulate vehicle movement and interaction with the environment can be valuable for a simulation engineer. Creating self-driving AI cars might also add to a simulation engineer's knowledge base. The simulation engineer role may benefit from taking this course.
Level Designer
Level designers create the environments and layouts for video games. This career requires a strong understanding of game design principles, spatial reasoning, and storytelling. This course may be useful; the course covers the design and implementation of engaging and immersive game levels. The course's focus on implementing a breakable objects system in the game world will also help build skills in creating interactive and dynamic environments. Taking this Unity and C# driven game development course may improve the user's proficiency as a level designer.
Tools Programmer
Tools programmers develop software to support game development. This includes creating custom editors, automation scripts, and other utilities to improve workflows. This course may be useful, as it provides a foundation in C# and Unity, as well as experience with editor scripting. The course's coverage of creating a game data editor can be directly translated to building custom tools for game development. Any individual wishing to serve as a tools programmer may wish to take this course.

Reading list

We've selected one 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 Unity 3D Car Racing Game Masterclass.
Provides a comprehensive guide to Unity development, covering topics from basic scripting to advanced game mechanics. It's a valuable resource for understanding the underlying principles of game development in Unity. It is particularly useful for understanding the Unity game engine. This book can be used as a reference throughout the course.

Share

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

Similar courses

Similar courses are unavailable at this time. Please try again later.
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 - 2025 OpenCourser