Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
GameDev.tv Team and Luis Ramirez Jr

Ready to conquer the 2.5D RPG realm and forge your adventure with Godot 4 & C#?

This course is your gateway to crafting captivating adventures in Godot 4, the powerful, open-source game engine. No prior Godot experience needed, just a thirst for adventure and a grasp of C# concepts.

You’ll build a classic dungeon RPG game, with a combination of both 2D and 3D graphics. Your hero will be in combat with state machine driven enemies, drop bombs, and even be rewarded with a lighting strike when performing combo attacks.

Read more

Ready to conquer the 2.5D RPG realm and forge your adventure with Godot 4 & C#?

This course is your gateway to crafting captivating adventures in Godot 4, the powerful, open-source game engine. No prior Godot experience needed, just a thirst for adventure and a grasp of C# concepts.

You’ll build a classic dungeon RPG game, with a combination of both 2D and 3D graphics. Your hero will be in combat with state machine driven enemies, drop bombs, and even be rewarded with a lighting strike when performing combo attacks.

On top of that you’ll also learn how to properly implement a pixel-perfect UI using Godot’s control nodes. In the final stretch of the course you’ll learn how to give your game that extra wow factor with shaders and particle systems.

Throughout this course, you'll harness the power of Godot's APIs to bring your game ideas to life. We cover everything from physics and UI to effective game architecture.

Get hands-on experience in building a fully-featured RPG, complete with combat systems, abilities, and immersive UIs, while also mastering the art of scalable and maintainable code.

This course is most suitable for people who have a good grasp of C# basics (variables, conditional statements, classes, and methods), and are looking to learn more intermediate to advanced programming concepts like abstract classes, the observer pattern and more.

So if you’re a C# developer venturing into game creation, a RPG enthusiast dreaming of your own title, or simply looking to get it right first time with clean, efficient code, this is the course for you.

You’ll get full lifetime access for a single one-off fee. The creators are qualified and experienced with modelling and coding, so are able to explain complex concepts clearly, as well as entertain along the way.

And you’ll get access to the Q&A where our Instructors, Teaching Assistants and Community are ready to help answer your questions and cheer on your success.

Ready to embark on your epic RPG coding adventure? Join us and start building your dream action game in Godot 4 now.

Enroll now

What's inside

Learning objectives

  • Build a complete 2.5d rpg: from concept to completion, develop an rpg with engaging combat and ability systems, immersive ui, and essential rpg features.
  • Code with confidence: write scalable, maintainable code: grasp the art of scalable coding. learn when and how to refactor for a game that grows with your vision
  • Explore godot’s core: get hands-on with nodes, scenes, and animations, unlocking the full potential of the engine.
  • C# mastery in godot: bridge the gap between languages, translate gdscript, and leverage godot's apis like a pro.
  • Elevate your c# expertise: transition seamlessly into godot, applying your c# know-how godot’s unique apis.
  • Master physics, input handling, and ui creation to breathe life into your games.
  • Architect like a pro: learn to build robust game architectures.
  • Master best practices like abstract classes, interfaces and state machines.
  • Discover game-changing design patterns for scalable, maintainable code to structure your dream game.
  • Craft dynamic worlds: dive into the world of particles and shaders. create stunning, lifelike effects that captivate players and enhance the gaming experience.

Syllabus

Introduction & Setup

In this video (objectives)…

  1. Welcome to the course! Luis gives you an overview of what you’ll be learning throughout this course.

Read more

In this video (objectives)…

  1. Lucy welcomes you to the course and gives you an overview of how to access community forums throughout this course.

In this video (objectives)…

  1. Any time we change our project during a lecture we will commit that change to a public source control repository for students to access. In this video, Rick shows you how to access that content.

In this video (objectives)…

  1. Download and Install .NET and Godot

In this video (objectives)…

  1. Learn how to set up a new project in Godot with a custom icon.

In this video (objectives)…

  1. Gain access to a free book that is supplemented with the course containing lecture summary notes.

In this video (objectives)…

  1. Students will learn how to move the player in Godot from this section.

In this video (objectives)…

  1. Learn how to set up animations in Godot by adding keyframes to modify a sprite’s texture.

In this video (objectives)…

  1. Learn how to attach a script to a node so that you can manipulate the node’s properties.

In this video (objectives)…

  1. Configure Visual Studio Code for the best C# development experience in Godot

In this video (objectives)…

  1. Learn how to override a method in C# and how to determine which methods can be overridden from a parent class.

In this video (objectives)…

  1. Learn how to set up input actions and generate vector values based on those actions to move the player around the screen.

In this video (objectives)…

  1. Learn how to allow collaborators to manipulate values in a class by exporting them with Godot’s built-in C# attributes.

In this video (objectives)…

  1. Learn how to programmatically play animations on a scene with the help of the AnimationPlayer node.

In this video (objectives)…

  1. Learn how to use constants to reduce the likelihood of typos when using strings.

In this video (objectives)…

  1. Learn how to flip a sprite node with C# by modifying its properties.

In this video (objectives)…

  1. Learn how to remove compression and filters on sprites imported into Godot for extra clarity.

In this video (objectives)…

  1. Learn why Godot requires our classes to be partials because of a feature in C# called source generators.

In this video (objectives)…

  1. Students will learn what they can expect from this section, which involves creating a state machine to control the player’s actions.

In this video (objectives)…

  1. Learn what a state machine is and what problems it solves in game development.

In this video (objectives)…

  1. Learn how to outsource the idle and move logic into separate states and nodes.

In this video (objectives)…

  1. Learn how to activate a specific node by building a state machine that can keep track of our states and current state.

In this video (objectives)…

  1. Learn how to allow the state machine to perform transitions between the idle and move state.

In this video (objectives)…

  1. Learn how to disable nodes when they’re not active in the state machine.

In this video (objectives)…

  1. As an exercise, you’ll be given a chance to set up the dash state with animations and a class attached to the node.

In this video (objectives)…

  1. Learn how to properly transition into a state from multiple other states.

In this video (objectives)…

  1. Learn how to use the timer node’s signals to exit out of a state.

In this video (objectives)…

  1. Learn how to implement dashing behavior for our player. We’ll account for when the player dashes from the idle or move states.

In this video (objectives)…

  1. Learn how to optimize our codebase by refactoring our classes with inheritance.

In this video (objectives)…

  1. Learn how to use abstract classes to disallow developers from accidentally using a class that shouldn’t be instantiated.

In this video (objectives)…

  1. Learn how to avoid common problems when dealing with magic numbers and why they’re problematic to begin with.

In this video (objectives)…

  1. Learn how to improve the Godot editor experience by adding property hints through the Export attribute.

In this video (objectives)…

  1. Learn how auto properties can help you refine the accessibility of a class field.

In this video (objectives)…

  1. Students will learn what it’ll take to design a level in Godot.

In this video (objectives)…

  1. Learn how to create a mesh library for storing all our models for our environment so that we can use Godot to draw our game level.

In this video (objectives)…

  1. Learn how to use a grid map for drawing and designing a level for your games.

In this video (objectives)…

  1. Learn how to follow the player around the game by attaching a camera to them and understand how relative positioning works.

In this video (objectives)…

  1. Learn how to add layers and physics to allow objects in a game to collide with each other.

In this video (objectives)…

  1. Learn how to use the StaticBody3D node to add invisible bodies in a game to prevent players from walking in restricted areas.

In this video (objectives)…

  1. Students will learn what we’ll be doing to add enemies to our game.

In this video (objectives)…

  1. Learn how to set up the enemy and convert a node into a separate scene.

In this video (objectives)…

  1. Learn how to refactor the state machine with inheritance to get the most reusability of out of your code possible.

In this video (objectives)…

  1. Learn how to leverage the Path3D node to draw paths.

In this video (objectives)…

  1. Learn how to move the enemy to the beginning of a Path3D node and learn about the importance of using global positions over local positions.

In this video (objectives)…

  1. Learn how to move the enemy and calculate their direciton with their current position and destination.

In this video (objectives)…

  1. Learn how to bake a navigation mesh to help you determine what areas are walkable by enemies.

In this video (objectives)…

  1. Learn how to apply the NavigationAgent node to a scene so that Godot can help with navigation.

In this video (objectives)…

  1. Learn how to set up the patrol state where he enemy will begin walking along the points on the curve of the path.

In this video (objectives)…

  1. Learn how to make the enemy patrol the path by accessing the curve’s points and wrapping the points with Godot’s Mathf class.

In this video (objectives)…

  1. Learn how to use a Timer node to toggle back and forth between moving and being idle for a character.

In this video (objectives)…

  1. Learn how to add an exit state to the state machine to allow individual states to perform actions when a node is disabled.

In this video (objectives)…

  1. Learn how to detect physics bodies with the Area3D node and how important it is to subscribe to signals with the correct method signatures.

In this video (objectives)…

  1. Learn how to chase the player by using the navigation system efficiently with Timer and Area3D nodes.

In this video (objectives)…

  1. Learn how to transition into an attack state and transition away from the chase state with a signal for detecting bodies exiting an Area3D node.

In this video (objectives)…

  1. Students will learn what features of Godot we’ll be using to add combat.

In this video (objectives)…

  1. In this lecture, we’ll set up some combo attack animations for the player.

In this video (objectives)…

  1. Learn how to keep track of attacks for performing multiple attacks on a single character.

In this video (objectives)…

  1. Learn how to use Area3D nodes to cause damage to characters with masks, layers, and signals.

In this video (objectives)…

  1. Learn how to create custom resources and load those resources from the Godot editor.

In this video (objectives)…

  1. Learn how to use the LINQ component to filter through an array of data for our game.

In this video (objectives)…

  1. Learn how to customize the get and set accessors for a property in C#.

In this video (objectives)…

  1. Learn how to call methods from an animation when a specific frame is reached.

In this video (objectives)…

  1. Learn how to move a node with its local position instead of using the global position.

In this video (objectives)…

  1. Learn how to disable a collision shape node to prevent it from detecting other nodes.

In this video (objectives)…

  1. Learn how to add hitboxes and hurtboxes to the enemy and player to complete the combat system.

In this video (objectives)…

  1. Learn how to move the hitbox to the player’s position regardless of where the player is positioned around the enemy.

In this video (objectives)…

  1. Learn how to get the enemy to face the player when attacking and allow them to repeat attacks during combat.

In this video (objectives)…

  1. Students will learn how we plan on designing a basic game interface .

In this video (objectives)…

  1. Learn how to design an interface with Godot’s control nodes.

In this video (objectives)…

  1. Learn how to use dictionaries to store containers and toggle their visibility.

In this video (objectives)…

  1. Learn how to pause and unpause the game when a button is pressed in our UI.

In this video (objectives)…

  1. Learn how to move a node to a completely different, also known as reparenting.

In this video (objectives)…

  1. Learn why the event keyword is important to prevent your event handlers from being overridden.

In this video (objectives)…

  1. Learn how to set up an event for when the game ends so that you can reparent the camera node before the player is deleted.

In this video (objectives)…

  1. Learn how to set up a UI for displaying stats using Godot’s PanelContainer, Panel, and HBoxContainer nodes.

In this video (objectives)…

  1. Learn how to dynamically update labels with events from resources.

In this video (objectives)…

  1. Learn how to count enemies with Godot’s methods and detect when a child node has been deleted from the tree.

In this video (objectives)…

  1. Learn how to setup and render a UI when the player is defeated by an enemy.

In this video (objectives)…

  1. Learn how to design a victory UI and raise an event when the player defeats all enemies in our game.

In this video (objectives)…

  1. Learn how to pause the game when the game is active and prevent pausing when the player wins or loses the game.

In this video (objectives)…

  1. Students will learn the final steps we’ll be taking to finish our game.

In this video (objectives)…

  1. Learn how to work with sprite sheets by rendering portions of an image with Godot’s sprite node.

In this video (objectives)…

  1. Learn how to create a reward resource that can be shared between nodes for the UI, player, and treasure chest scenes.

In this video (objectives)…

  1. Learn how to create an event for applying rewards to both the UI and player scenes.

In this video (objectives)…

  1. Learn how to use Godot’s properties for animating a sprite and autoplay animations.

In this video (objectives)…

  1. Learn how to reference a scene from a node to instantiate it at any given moment in your games.

In this video (objectives)…

  1. Learn how to use C# interfaces to allow for both player and ability attacks to damage enemies.

In this video (objectives)…

  1. Learn how to setup a thunder ability that damages the enemy when combo attacks are successfully performed by the player.

In this video (objectives)…

  1. Learn how shaders allow you to manipulate the graphics in your game with the power of code. We’ll create our very first shader to change the character’s color when taking damage.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Bridges the gap between C# and Godot, allowing developers to leverage their existing C# knowledge within the Godot game engine, which can accelerate the learning process
Covers intermediate to advanced programming concepts like abstract classes, the observer pattern, and state machines, which are essential for building complex and scalable games
Explores Godot's core features, including nodes, scenes, animations, physics, input handling, and UI creation, providing a comprehensive understanding of the engine's capabilities
Focuses on building a 2.5D RPG, complete with combat systems, abilities, and immersive UIs, offering a practical approach to game development within a specific genre
Emphasizes writing scalable and maintainable code, teaching best practices for game architecture and design patterns, which are crucial for long-term project success
Utilizes Godot 4, which may require learners to upgrade their existing projects from Godot 3 or earlier, potentially leading to compatibility issues or the need for code migration

Save this course

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

Reviews summary

Build a 2.5d rpg with godot 4 & c#

According to learners, this course is a highly effective bridge for C# developers looking to get into game development using Godot 4. Students report building a complete and engaging 2.5D RPG project from start to finish. A significant strength highlighted is the focus on scalable, maintainable code and the practical application of intermediate to advanced C# concepts and design patterns like state machines and abstract classes. The instructors are generally praised for clear explanations, although a few students felt the pace was occasionally fast on complex topics or assumed some prior game dev knowledge. The course covers essential features including player movement, combat systems, enemy AI, and UI implementation. Overall, it's seen as a practical, well-structured, and valuable learning experience for the target audience.
Requires more than just basic C#.
"This is a great course for those who know C# basics..."
"...some of the design patterns and advanced concepts felt like a big leap without more foundational C# architectural teaching."
"Requires more than just C# basics; some familiarity with game dev concepts is needed."
Complex topics explained well.
"The instructor is clear and explains complex concepts like state machines and design patterns very well."
"The state machine section was particularly well-explained."
"The instructors are excellent, and the project is a fun way to learn."
Build a complete, engaging RPG.
"Building the RPG project step-by-step is highly engaging..."
"The project structure is logical and easy to follow."
"The project is fun and practical."
Teaches scalable, maintainable code.
"The emphasis on clean, scalable code is a major plus."
"I really appreciated the focus on good coding practices and design patterns, not just making the game work but making it maintainable."
"The focus on scalable code and design patterns sets this course apart."
Perfect for C# devs entering game dev.
"This is a great course for those who know C# basics and want to learn Godot 4..."
"If you're a C# programmer interested in game development with Godot, this is the one."
"As a C# developer new to Godot, this course was exactly what I needed. It bridges the gap perfectly."
Explanations sometimes felt rushed.
"...some parts, especially the math involved... could have used a bit more detailed explanation..."
"I found some explanations rushed, particularly around the navigation mesh and pathfinding for enemies."
"...the pacing was inconsistent, sometimes too slow... then jumping quickly into complex code patterns without enough context."

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 Godot 4 C# Action Adventure: Build your own 2.5D RPG with these activities:
Review C# Fundamentals
Reinforce your understanding of C# basics, including variables, conditional statements, classes, and methods, to prepare for the course's intermediate to advanced C# concepts.
Show steps
  • Review C# syntax and data types.
  • Practice writing simple C# programs.
  • Familiarize yourself with object-oriented programming concepts in C#.
Review 'C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development'
Solidify your C# knowledge with a comprehensive guide to C# and .NET Core, covering fundamentals and advanced topics relevant to game development.
Show steps
  • Read the chapters on C# fundamentals and object-oriented programming.
  • Work through the examples and exercises in the book.
  • Relate the concepts learned to game development scenarios.
Simple C# Godot Project
Practice setting up a basic Godot project using C# to familiarize yourself with the environment and workflow.
Show steps
  • Create a new Godot project and set up C# scripting.
  • Create a simple scene with a C# script attached.
  • Implement basic movement or interaction using C#.
Five other activities
Expand to see all activities and additional details
Show all eight activities
State Machine Implementation Drills
Practice implementing state machines in Godot with C# to master the control of character behavior.
Show steps
  • Implement a state machine for a simple enemy AI.
  • Add transitions between different states based on game events.
  • Refactor the state machine for reusability.
Document Your Learning Journey
Create a blog or journal to document your learning process, challenges, and solutions encountered during the course.
Show steps
  • Create a blog or journal.
  • Document your progress and challenges.
  • Share your insights and solutions with others.
Review 'Game Programming Patterns'
Deepen your understanding of game architecture and design patterns, particularly state machines, to write scalable and maintainable code.
Show steps
  • Read the chapters on state machines and other relevant patterns.
  • Analyze how these patterns are applied in the course project.
  • Experiment with implementing these patterns in your own projects.
Contribute to Godot Engine
Contribute to the Godot Engine by reporting bugs, writing documentation, or contributing code to deepen your understanding of the engine's inner workings.
Show steps
  • Explore the Godot Engine's GitHub repository.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.
Expand the RPG with a New Feature
Extend the RPG project by adding a new feature, such as a new enemy type, ability, or UI element, to solidify your understanding of the course material.
Show steps
  • Choose a new feature to add to the RPG project.
  • Implement the feature using the concepts learned in the course.
  • Test and refine the feature to ensure it works correctly.

Career center

Learners who complete Godot 4 C# Action Adventure: Build your own 2.5D RPG will develop knowledge and skills that may be useful to these careers:
Game Developer
A game developer brings video games to life and often specializes in specific areas, such as gameplay, user interface, or graphics. This course is very helpful for aspiring game developers as it guides them through the process of building a 2.5D action RPG using Godot 4 and C#. The course covers critical aspects of game development, from character movement to animation, state machines, combat systems, UI design, and even shader programming. It also emphasizes writing scalable and maintainable code, which is essential for larger game projects. This course can be useful in that it provides hands-on experience with core game mechanics.
Indie Game Developer
An indie game developer works on independent games, often taking on multiple roles in the development process. Given their smaller teams, indie game developers must be skilled in multiple aspects of development such as coding, animation, and UI. This course may be useful to indie game developers since it provides a comprehensive overview of game development using Godot 4 and C#. It covers many different fundamental concepts of game development such as physics, input handling, UI creation, state machines, combat systems, and even special effects using shaders and particle systems. By building a fully featured RPG, this course provides a practical skill set for independent game creation.
Gameplay Programmer
A gameplay programmer specializes in the mechanics and systems that make a game fun to play. They implement character movement, combat systems, AI behavior, user interfaces, and other interactive elements. This course is useful for aspiring gameplay programmers as it helps build a foundation in core gameplay mechanics. It teaches how to implement character movement, state machines for controlling character actions, combat systems, and even abilities, all within the context of creating a complete RPG. Furthermore, the course’s emphasis on scalable code and game architecture are critical for a gameplay programmer.
Game Engine Programmer
A game engine programmer works on the underlying software that powers video games. They may work on physics, rendering, networking, or scripting systems. This course may be useful for someone interested in game engine programming since it teaches how to use the Godot engine’s APIs to achieve different tasks, such as movement, animation, UI, and combat. The course also emphasizes writing clean and efficient C# code. This experience can provide insight into the functionality and best practices of game engines, including the Godot engine, which is open source.
Technical Artist
A technical artist bridges the gap between art and programming, often working with shaders, particle systems, and asset pipelines. The course is useful because it includes lessons on creating particle systems and shaders to enhance a game’s visuals. This experience with shaders in Godot, in addition to animation and UI, helps a technical artist develop a crucial combination of artistic and technical skills. By covering both technical and artistic elements, the course helps build the foundation for an aspiring technical artist.
UI Programmer
A user interface programmer focuses on building the interactive elements of a game’s user interface. They create menus, inventory systems, and other in-game displays that are intuitive and functional. This course may be useful for UI programmers because it dedicates instruction to proper implementation of a user interface using Godot’s control nodes. The course teaches how to build a complete interface, including dynamic updates, pause menus, and victory and defeat screens. This experience helps build a foundation in creating effective and engaging user interfaces for games.
Tools Programmer
A tools programmer creates software that assists game developers in their work, such as level editors, asset management systems, or debugging tools. Although this course does not directly lead to building tools for developers, it can be useful for aspiring tools programmers as it provides experience using Godot. By working with Godot, one gains a better understanding of the tools developers use, which may be helpful when producing better tools. Exposure to a game engine like Godot and the game development process can also provide insight into the needs and requirements of game development tools.
Software Engineer
A software engineer designs, develops and maintains software systems. This course may be useful for someone interested in software engineering. The course focuses on teaching scalable code, clean code, and game architectures, all of which are relevant to software engineering. The course's focus on using C# and other computer science concepts may also be useful to improving a software engineering skill set.
Simulation Developer
A simulation developer creates software to simulate real or virtual systems, often for training, research, or entertainment. This course may be useful because it provides hands-on experience using Godot, which can handle complex physics simulation, a major component in simulation development. The course’s focus on game architecture, object behavior through state machines, and physics can help simulation developers who may need to create systems that mimic physical interactions. This exposure to these concepts might be very helpful.
Animator
An animator creates the motion of characters and objects in a game. This course may be useful to an animator because it provides hands-on experience using Godot to create character animations. Additionally, the course teaches how to programmatically control animations through C# code. It teaches students how to animate sprites, use keyframes, and integrate animations into a game’s state machine to influence character behavior. By exposing a learner to how animation fits into game development, it can provide a more well-rounded skill set.
Level Designer
A level designer creates the environments and layouts of a game, often using specialized tools and techniques. This course may be helpful to a level designer as it teaches how to design a level using Godot's grid map feature, which is essential for creating a game’s environment. Although the course primarily focuses on programming, exposure to this system could give a level designer a better understanding of how levels are constructed. Furthermore, the course explores how to use physics and layers, which can affect a level’s design.
Quality Assurance Tester
A quality assurance tester tests games to identify bugs and ensure quality. This course may be useful to a tester, as it may help them understand the development process better. By learning the nuances of game development, such as character movement, state machines, and combat systems, a tester may be better at identifying where a bug might take place. This course could help to identify complex problems with the game, since testers will have an understanding of the inner workings. This could help testers perform their job more effectively.
Project Manager
A project manager plans, organizes, and oversees the completion of projects including the development of games. Despite this course not being directly related to project management, it may be useful for aspiring project managers working in the gaming industry. This course can help them understand the production process of a video game. The course covers the entire process of game development from character animation to full UI implementation which will help them understand the requirements and challenges of managing a game project.
Game Writer
A game writer crafts the narrative, dialogue, and characters for video games. While this course doesn't directly teach writing skills, it may be useful for game writers to take this course. The course's focus on game mechanics, user interfaces, and the overall game development process will give the writer insights into the constraints, limitations, and requirements of the game engine. Having a better understanding of these constraints can lead a writer to structure their narratives in a way that better integrates into the game.
Marketing Manager
A marketing manager is responsible for promoting and selling a company’s products. This course may be useful to marketing managers in the gaming industry. This is because a basic understanding of the game development pipeline can inform a better marketing strategy. This course can be helpful in that it provides an in-depth look at the creation of a 2.5D RPG. This experience can improve marketing managers’ understanding of the game, enabling them to better market the product to target audiences.

Featured in The Course Notes

This course is mentioned in our blog, The Course Notes. Read one article that features Godot 4 C# Action Adventure: Build your own 2.5D RPG:

Reading list

We've selected two 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 Godot 4 C# Action Adventure: Build your own 2.5D RPG.
Provides a comprehensive overview of common game programming patterns, including state machines, which are heavily used in this course. It's particularly useful for understanding the design principles behind scalable and maintainable code. The book valuable resource for structuring your game and improving code quality. It is commonly used by industry professionals.
Provides a comprehensive guide to C# and .NET Core, covering the fundamentals and advanced topics relevant to game development in Godot. It's particularly useful for solidifying your C# knowledge before diving into the course. The book also provides a good reference for C# syntax and best practices. While not specific to Godot, it offers a strong foundation for understanding the C# code used in 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