We may earn an affiliate commission when you visit our partners.
Course image
Johan Forsblom

Are you eager to create your own Metroidvania game but don't know where to start?

This course is your step-by-step guide to mastering everything you need to build your dream game. We will use the Godot game engine, and C# as scripting language, so even if you're switching from Unity, you will feel right at home.

Why This Course?

Read more

Are you eager to create your own Metroidvania game but don't know where to start?

This course is your step-by-step guide to mastering everything you need to build your dream game. We will use the Godot game engine, and C# as scripting language, so even if you're switching from Unity, you will feel right at home.

Why This Course?

If you're a passionate programmer eager to dive into game development, this course is your perfect starting point. It offers a structured learning path that guides you from the basics of Godot setup to advanced features, such as rope swinging, and a dynamic mini-map to show where the player is in game. You will build a solid foundation about the Godot game engine, progress quickly with step-by-step lectures on developing every feature and mechanic you need in order to create a complete Metroidvania game, which will deepen your understanding of how to make games with the Godot game engine.

Who is this course for?

This course is not for complete beginners but is targeted more towards "beginner+" and intermediate programmers, so if you have a little, or some experience with the Godot game engine, and are familiar with the C# programming language, this course is perfect for you.

Enroll now

What's inside

Learning objectives

  • Creating a 2d side scrolling metroidvania game in godot using c#
  • Setting up godot 3.x tilemaps for autotiling to build levels
  • Rope swinging
  • Rope traversing
  • 2d parallax background scrolling
  • Setting up character controller using the class state pattern
  • Setting up inventory and equipment
  • Setting up shop - buying and selling items
  • Equipping and unequipping items
  • Customizing gamepad and keyboard controls
  • Jump buffering
  • Coyote time
  • Corner correcting jumps
  • One-way platforms
  • Automatic minimap
  • Advanced lifebar
  • Scene transition
  • Pause game menu
  • Settings menu
  • Opening chests
  • Bow and arrow
  • Wall crawler ai
  • Camera setup
  • And much more....
  • Show more
  • Show less

Syllabus

Introduction

Introduction video to the course

In this lecture, you will learn about the structure of the course, and how to use the resources to follow along.

Read more

In this introduction video, you will learn the reasons why you might still want to use the Godot 3.5 .NET over the new Godot 4.2 .NET version.

In this lecture, you will learn about the pirate code standard adopted for this course.

In this lecture, you will learn how to setup Godot 3.5.x .NET, with visual studio code and the .NET 8 Framework in windows.

After this lecture, you will have mono installed, which is needed in order to build and run the game.

Note: This is for the older Godot 3.4 version released back in 2021. It was around 2022 I started to create the course in my spare time, so thereof the old video.

After this lecture, you will have mono installed, which is needed in order to build and run the game.
Note: This is for the older Godot 3.4 version released back in 2021. It was around 2022 I started to create the course in my spare time, so thereof the old videos.

In this lecture, you will find where to download the assets used during the course.

In this lecture, you will learn how to set up parallax scrolling backgrounds.

In this lecture, you will learn how to set up tilemap autotiling with slopes in the Godot 3.x game engine.

In this lecture, you will learn how to set up collision shapes for the different tiles in the Tilemap.

In this lecture, the scene for he Hero will be created.

In this lecture, we will create a simple room, in which we can try out the Hero's movement.

In this lecture you will learn what the state pattern is, and how we are going to implement it in the game.

In this lecture, you will learn how to set up the State Pattern in C# code, and also set up the idle state.

In this session, you will learn how to add the run and fall states to the state machine, so the hero can fall down and run.

In this lecture, you will learn how to make the hero jump, and switch between the different states in the state machine.

In this lecture, you will learn how to prevent the contradictory movement when the player is holding down left + right movement keys at the same time.

In this lecture, you will learn how to set up the camera, the camera limits, and also how to add the scrolling background to the game.

In this lecture, you will learn how to control the jump height by holding down the jump button for a longer or shorter amount of time.

In this lecture, you will learn how to set up the input, animations for the slide state, and also how to edit the map.

In this session, you will learn how to set up the timers needed for the slide state.

In this lecture, you will learn how to set up collision handling for the slide state.

In this lecture, you will learn how to implement the slide state.

In this lecture, you will learn how to implement the slide stand up state.

In this lecture, you will learn how to set up 2D raycasts, and the fall timer, in order to detect when the player is performing a ledge grab, and how to control that the hero cannot grab the same ledge right after he let go of it.

In this lecture, you will learn how to code the ledge grab state, using the 2D raycasts and the falltimer from the precious lecture.

In this lecture, you will learn how to make the Hero climb up on ledges by pressing the up action.

In this lecture, you will learn how to set up the glider scene, and the equipment script which will be used in combination to set up the glider.

In this lecture, you will learn how to implement the glide state in code.

In this lecture, you will learn how to implement double, triple and multiple jumping.

In this lecture, you will learn how to set up the attack state for the hero in the state machine.

In this lecture, you will learn what coyote time is, and how to apply and implement it in the game.

In this lecture, you will learn about the forgiving mechanic: jump buffering, and how to apply it inside of the game.

In this lecture, you will learn how to set up and implement corner jump correction for the Hero.

In this lecture, you will gain insights to how the class state machine can be improved.

In this lecture, you will learn how to create a rope in the Godot game engine.
Unfortunately, only the first start zip file is available for the rope swinging and rope traversal section.
(Remind me to update this and add in more of them in this section in the future.)

In this lecture, you will learn how to set up the Area2D collisions so the Hero will be able to grab the rope.

In this lecture, we are going to do some updates to the move logic and initiate jump scripts, and also add the interact with objects key to the input map.

In this lecture, you will learn how to make the Hero grab the rope.

In this lecture you will learn how to improve the code, and also disable gravity and horizontal movement for the Hero.

In this lecture, you will learn how to align the Hero to the rope, and also revisit how to import sprite sheet graphics in the Godot engine.

In this lecture, you will learn how to make the hero climb up and down on the rope.

In this lecture, you will learn how to make the Hero perform rope swinging.

In this lecture, you will learn how to make the Hero jump off the rope.

In this lecture, you will get an overview of how the minimap system works.

In this lecture, you will learn how to modify and prepare the project in order to start implementing the minimap.

In this lecture, you will learn how to create the minimap scene, and make it ready for implementation.

In this lecture, you will learn how to access the LevelArrea and LevelRoom nodes through C# script.

In this lecture, you will learn how to in script access the 2D physics layer names, the TileMap node, and how to get the window resolution.

In this lecture, you will begin to learn how the minimap system scans the borders of each room.

In this lecture, combined with the previous one, you will get the full understanding of how the minimap system scans the borders of each room.

In this lecture, you will learn how to import and apply the minimap graphics to the minimap.

In this lecture, you will learn how to dynamically set up the camera limits based on the size of the world, and also how to set up so that the minimap will follow the Hero's position.

In this lecture, you will learn how to add an item location to the minimap, and also, how to set up the humble beginnings of the pickup sphere.

In this lecture, you will learn how to set up the item pickup sphere scene.

In this lecture, you will learn how to create a white hit effect shader in the gd shading language.

In this lecture, you will learn how to create the item hover animation.

In this lecture, you will learn how to create a layers and masks singleton, which can accessed by any script.

In this lecture, you will learn how to set up both hit box and hurt box, which is used to detect when an entity is hitting or getting hurt by something.

In this lecture, you will learn how to set up the final item pickup sphere animations.

In this lecture you will learn how to set up the particle scene.

In this lecture, you will learn how to apply the dust particles in code.

In this lecture, you will learn how to add music to the game.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Uses Godot and C#, which allows learners familiar with Unity to transition smoothly into the Godot environment, leveraging their existing C# knowledge
Covers advanced features like rope swinging and dynamic mini-maps, which are commonly found in Metroidvania games and demonstrate practical game development techniques
Focuses on building a complete Metroidvania game, which provides a hands-on project for solidifying understanding of the Godot game engine and C# scripting
Requires Godot 3.5 with .NET 8 and VS Code, which may necessitate learners to configure their development environment to match the course specifications
Uses Godot 3.x, which may not represent the latest features and improvements available in newer versions of the engine, such as Godot 4
Teaches techniques such as jump buffering, coyote time, and corner correcting jumps, which are forgiving game mechanics that enhance the player experience

Save this course

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

Reviews summary

Create a metroidvania game in godot c#

According to learners, this course is a comprehensive guide for building a complete Metroidvania game using Godot 3.x and C#. Students say it covers a wide range of mechanics, from character states and movement techniques like coyote time and jump buffering, to more advanced features like an automatic minimap and rope swinging. Many appreciate the project-based approach, finding it helps solidify understanding. While the course receives largely positive feedback for its content depth and practicality, some learners note that the initial setup process can be challenging due to using an older Godot version, and a few find the pace quite fast, requiring solid prior C# and Godot experience.
Moves quickly, requires prior experience.
"The course moves at a very fast pace, definitely not for absolute beginners in programming or Godot."
"As a 'beginner+' I found myself pausing and rewatching a lot to keep up, especially in the coding sections."
"Solid C# knowledge is essential; the course doesn't spend much time explaining language fundamentals."
"If you have some Godot experience and are comfortable with C#, the pace is manageable."
Focuses on a specific, slightly older stack.
"The choice of Godot 3.x and C# was perfect for my needs as a Unity user switching engines."
"Using Godot 3.x feels stable for this project, although newer Godot 4.x features are missing."
"It's good to see a C# focused Godot course, they are less common than GDScript ones."
"Be aware it uses Godot 3.5, not the latest Godot 4.x, which might require adjustments for newer projects."
Hands-on approach building a full game.
"Building a complete game project is the best way to learn, and this course delivers."
"The practical examples and building the game step-by-step were incredibly helpful."
"I appreciated having a tangible project to work on throughout the lectures."
"This approach solidified my understanding much better than theory alone."
Covers numerous core and advanced mechanics.
"The range of mechanics covered is amazing, from basic movement to complex systems like rope swinging and the minimap."
"Loved learning how to implement different character states and forgiving mechanics like coyote time."
"The sections on the automatic minimap and the inventory system were particularly strong and well-explained."
"I feel confident building a real Metroidvania after going through all the different features taught."
Occasional issues requiring debugging.
"Encountered a few minor bugs in the provided project files or lectures that required some debugging on my part."
"Sometimes the code felt a little less organized than I'd prefer, but still functional."
"Be prepared to troubleshoot occasionally, not everything works perfectly out of the box."
"The instructor is responsive to questions about errors, which helps."
Initial configuration can be tricky/outdated.
"Struggled quite a bit with the initial Godot 3.5 .NET setup based on the provided lectures, some steps seemed outdated."
"Getting the environment set up correctly was the hardest part of the course for me."
"The setup instructions could benefit from an update, especially regarding newer .NET versions or OS specifics."
"Once setup was done, the rest flowed much better, but the start was a hurdle."

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 C# The Ultimate Metroidvania Developer’s Guide with these activities:
Review C# Fundamentals
Solidify your understanding of C# syntax, data types, and control flow. This will make it easier to follow the course's C# scripting examples and adapt them to your own game mechanics.
Show steps
  • Review C# syntax and data types.
  • Practice writing simple C# programs.
  • Familiarize yourself with object-oriented programming concepts.
Practice Godot Tilemap Creation
Practice creating and manipulating tilemaps in Godot. This will help you quickly build levels and understand the course's tilemap autotiling techniques.
Show steps
  • Create a new Godot project.
  • Import a tileset into Godot.
  • Create a tilemap and paint a simple level.
  • Experiment with different tilemap settings.
Read 'Game Programming Patterns'
Learn about common game programming patterns. This will help you understand the class state pattern used in the course and apply it effectively.
Show steps
  • Read the chapters on State and Observer patterns.
  • Consider how these patterns can be applied to other game mechanics.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Implement Basic Character Movement
Build a simple character controller with basic movement (walk, jump). This will reinforce your understanding of Godot's input system, physics, and animation.
Show steps
  • Create a new Godot scene for the character.
  • Add a Sprite and CollisionShape2D.
  • Write C# code to handle input and movement.
  • Implement basic jump functionality.
Document Your Learning Journey
Create a blog or journal to document your progress and challenges. This will help you reflect on what you've learned and identify areas where you need more practice.
Show steps
  • Choose a platform for your blog or journal.
  • Write regular entries about your progress.
  • Reflect on challenges and solutions.
Read 'C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development'
Deepen your understanding of C# and .NET Core. This will help you write more efficient and maintainable code for your Metroidvania game.
Show steps
  • Read chapters on advanced C# features.
  • Experiment with .NET Core libraries.
Expand the Metroidvania Game
Add new features to the Metroidvania game you created during the course. This will allow you to apply what you've learned and experiment with your own ideas.
Show steps
  • Choose a new feature to implement (e.g., new enemy, new weapon).
  • Design the feature and plan its implementation.
  • Write the code and integrate it into the game.
  • Test and refine the feature.
Create a Game Demo
Package your Metroidvania game into a playable demo. This will give you a tangible result to showcase your skills and share with others.
Show steps
  • Refine the game and fix any bugs.
  • Create a build for your target platform.
  • Write a short description of the game.
  • Share the demo with friends or online communities.

Career center

Learners who complete Godot C# The Ultimate Metroidvania Developer’s Guide will develop knowledge and skills that may be useful to these careers:
Game Developer
A game developer is responsible for creating video games, and this course directly addresses that. This course provides a step-by-step guide to building a Metroidvania game using the Godot engine and C#. It covers crucial aspects of game development, such as character control using the state pattern, setting up inventory and equipment, creating sophisticated mechanics like rope swinging and a dynamic mini-map, and implementing forgiving game mechanics. These concepts are fundamental for any game developer and this course offers practical experience to apply them.
Indie Game Developer
An indie game developer typically works on smaller, independent projects, and this course suits that role well. It provides a practical, hands-on approach to learning game development using the Godot engine and C#, focusing on creating a full Metroidvania game. The course covers a range of essential skills including level design using tilemaps, character animation and control, implementing game mechanics, and setting up user interfaces. An indie game developer benefits from the comprehensive, start to finish understanding this course offers, as it covers the most commonly used functions and solutions for developing a game.
Game Programmer
A game programmer writes the code that makes a game work. This course is structured to guide a programmer who is eager to dive into game development, utilizing C# with the Godot game engine. A game programmer benefits from this course by learning about core mechanics for gameplay, such as character control using a state pattern, setting up inventory, and implementing challenging features like rope swinging and dynamic minimaps. The focused approach to game mechanics and systems implementation provide significant support for a prospective game programmer.
Gameplay Programmer
A gameplay programmer is a specialized game programmer who focuses on the interactive elements of games. This course is ideal for someone aiming to become a gameplay programmer by offering hands-on experience creating a Metroidvania game, using C# in the Godot engine. The course content, which includes implementing character movement, item systems, and game mechanics like rope swinging and dynamic minimaps, addresses fundamental aspects of gameplay programming. The course's focus on the state pattern also allows a future gameplay programmer to better comprehend and create character behaviors.
Software Engineer
While a software engineer may work in many fields, the core skills learned in this course, such as logic and problem solving, are directly useful. This course uses C# and the Godot engine to create a game from the ground up. Software engineers can use this course to develop their understanding of software architecture, implementing complex features like state machines, and integrating various game systems. The experience of working with the Godot engine will also allow software engineers to better understand other complex, object-oriented, systems.
Technical Artist
A technical artist bridges the gap between art and programming. This course might be helpful for a technical artist because it teaches the practical implementation of how game assets function inside the engine. While a technical artist is primarily concerned with the look of a game, the practical knowledge of how these assets integrate with code can help them create better tools and workflows. The course focuses on many game art necessities such as sprites, animations, and tilemaps, and how these interact using C# in the Godot engine.
Level Designer
A level designer crafts the environments in video games, and this course may be of use for level designers. While not focused on art, this course teaches the use of Tilemaps and Autotiling in Godot which are the foundational tools for level design. The course helps a level designer learn the technical framework of how a level is created, including the use of collisions, slopes, and one-way platforms. Level designers will also learn what kinds of systems are needed to support the level, such as the minimap.
Game Designer
A game designer conceptualizes and designs the rules and systems of a game, and the knowledge gained from this course may be applicable. This course walks through the process of creating a Metroidvania game with C# in the Godot engine. It teaches concepts such as level design, character control using a state pattern, inventory systems, and mechanics like rope swinging. A game designer can benefit from understanding the practical implementation of the systems and features that make a game fun. This course will give them a better sense of what is possible when designing their own games.
Simulation Developer
A simulation developer creates interactive models of real-world or fictional systems. This course may be helpful for the simulation developer, as many of the techniques used in games are applicable to simulations. Specifically, the course teaches how to set up character controllers using state patterns, creating interactive elements, setting up inventory and equipment, and physics-based mechanics like rope swinging. These concepts translate from games to simulations, and this course can lay a foundation for simulation focused development.
Interactive Media Developer
An interactive media developer creates experiences that allow users to engage with content, and this course could be useful. The course focuses on the Godot engine using C# to make a Metroidvania game. The skills taught in this course, such as character control, user input, game mechanics, and interface design, are relevant for creating similar interactive experiences. The course’s hands-on approach helps cultivate a developer's practical understanding of various kinds of interactive media.
User Interface Developer
A User Interface developer focuses on creating the interfaces that users interact with. This course may benefit a UI developer despite focusing on game development because it teaches the practical application of a user interface. The course teaches how to set up menus, inventories, and in-game interfaces, which helps a UI developer understand how their designs are implemented. UI Developers will also find that the course covers dynamic interface elements such as minimaps.
Animator
An animator creates the motion and movement of characters and objects. This course might be helpful for an animator working in games, due to its focus on developing a Metroidvania game using the Godot engine and C#. The course covers character control using state patterns, which is essential for animating characters that respond to gameplay, and various game mechanics that require animation. While this course is not about creating the animations themselves, it covers how to use them in a game, which gives the animator a real-world experience of their art being used.
Educational Content Creator
An educational content creator develops material for teaching, and parts of this course may be useful. This course teaches the creation of an entire game, and this experience can be helpful to apply to educational content. This course uses C# and the Godot engine, and the teaching methods of this course may be applicable to a different subject. This course gives a content creator a better understanding of how to structure a learning experience, and how to break down a large, complex, process into smaller more easily digestible parts.
Project Manager
While a project manager does not directly code, they still may find this course useful for their career. This course offers first hand experience with what it's like to create and develop a full project of a video game. This course covers a variety of aspects from start to finish, and would give a project manager a better idea of the scope of such a project, and the technical hurdles that can be hit throughout the course of development.
Quality Assurance Tester
A quality assurance tester ensures games meet certain standards, and some of the knowledge in this course may be useful. While this course does not explicitly focus on testing, gaining a sense for the game development workflow can be helpful. This course teaches many common mechanics used in games, which can aid the tester in finding bugs or issues in other games. Knowing how certain systems are built, such as inventory systems, level transitions, and camera setups, can provide insight into the parts of a game that are more likely to be buggy.

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 C# The Ultimate Metroidvania Developer’s Guide.
Provides a catalog of useful design patterns specifically for game development. It covers patterns applicable to state management, AI, and other areas relevant to the course. While not Godot-specific, the principles are easily transferable and will improve your code's structure and maintainability. This book is valuable as additional reading to deepen your understanding of game design principles.
Provides a comprehensive guide to C# 8.0 and .NET Core 3.0, covering language features, libraries, and cross-platform development techniques. It's a useful reference for understanding the C# code used in the course and exploring advanced topics. This book is valuable as a reference tool for the C# language.

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