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.
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.
In this video (objectives)…
Welcome to the course! Luis gives you an overview of what you’ll be learning throughout this course.
In this video (objectives)…
Lucy welcomes you to the course and gives you an overview of how to access community forums throughout this course.
In this video (objectives)…
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)…
Download and Install .NET and Godot
In this video (objectives)…
Learn how to set up a new project in Godot with a custom icon.
In this video (objectives)…
Gain access to a free book that is supplemented with the course containing lecture summary notes.
In this video (objectives)…
Students will learn how to move the player in Godot from this section.
In this video (objectives)…
Learn how to set up animations in Godot by adding keyframes to modify a sprite’s texture.
In this video (objectives)…
Learn how to attach a script to a node so that you can manipulate the node’s properties.
In this video (objectives)…
Configure Visual Studio Code for the best C# development experience in Godot
In this video (objectives)…
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)…
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)…
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)…
Learn how to programmatically play animations on a scene with the help of the AnimationPlayer node.
In this video (objectives)…
Learn how to use constants to reduce the likelihood of typos when using strings.
In this video (objectives)…
Learn how to flip a sprite node with C# by modifying its properties.
In this video (objectives)…
Learn how to remove compression and filters on sprites imported into Godot for extra clarity.
In this video (objectives)…
Learn why Godot requires our classes to be partials because of a feature in C# called source generators.
In this video (objectives)…
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)…
Learn what a state machine is and what problems it solves in game development.
In this video (objectives)…
Learn how to outsource the idle and move logic into separate states and nodes.
In this video (objectives)…
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)…
Learn how to allow the state machine to perform transitions between the idle and move state.
In this video (objectives)…
Learn how to disable nodes when they’re not active in the state machine.
In this video (objectives)…
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)…
Learn how to properly transition into a state from multiple other states.
In this video (objectives)…
Learn how to use the timer node’s signals to exit out of a state.
In this video (objectives)…
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)…
Learn how to optimize our codebase by refactoring our classes with inheritance.
In this video (objectives)…
Learn how to use abstract classes to disallow developers from accidentally using a class that shouldn’t be instantiated.
In this video (objectives)…
Learn how to avoid common problems when dealing with magic numbers and why they’re problematic to begin with.
In this video (objectives)…
Learn how to improve the Godot editor experience by adding property hints through the Export attribute.
In this video (objectives)…
Learn how auto properties can help you refine the accessibility of a class field.
In this video (objectives)…
Students will learn what it’ll take to design a level in Godot.
In this video (objectives)…
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)…
Learn how to use a grid map for drawing and designing a level for your games.
In this video (objectives)…
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)…
Learn how to add layers and physics to allow objects in a game to collide with each other.
In this video (objectives)…
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)…
Students will learn what we’ll be doing to add enemies to our game.
In this video (objectives)…
Learn how to set up the enemy and convert a node into a separate scene.
In this video (objectives)…
Learn how to refactor the state machine with inheritance to get the most reusability of out of your code possible.
In this video (objectives)…
Learn how to leverage the Path3D node to draw paths.
In this video (objectives)…
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)…
Learn how to move the enemy and calculate their direciton with their current position and destination.
In this video (objectives)…
Learn how to bake a navigation mesh to help you determine what areas are walkable by enemies.
In this video (objectives)…
Learn how to apply the NavigationAgent node to a scene so that Godot can help with navigation.
In this video (objectives)…
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)…
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)…
Learn how to use a Timer node to toggle back and forth between moving and being idle for a character.
In this video (objectives)…
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)…
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)…
Learn how to chase the player by using the navigation system efficiently with Timer and Area3D nodes.
In this video (objectives)…
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)…
Students will learn what features of Godot we’ll be using to add combat.
In this video (objectives)…
In this lecture, we’ll set up some combo attack animations for the player.
In this video (objectives)…
Learn how to keep track of attacks for performing multiple attacks on a single character.
In this video (objectives)…
Learn how to use Area3D nodes to cause damage to characters with masks, layers, and signals.
In this video (objectives)…
Learn how to create custom resources and load those resources from the Godot editor.
In this video (objectives)…
Learn how to use the LINQ component to filter through an array of data for our game.
In this video (objectives)…
Learn how to customize the get and set accessors for a property in C#.
In this video (objectives)…
Learn how to call methods from an animation when a specific frame is reached.
In this video (objectives)…
Learn how to move a node with its local position instead of using the global position.
In this video (objectives)…
Learn how to disable a collision shape node to prevent it from detecting other nodes.
In this video (objectives)…
Learn how to add hitboxes and hurtboxes to the enemy and player to complete the combat system.
In this video (objectives)…
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)…
Learn how to get the enemy to face the player when attacking and allow them to repeat attacks during combat.
In this video (objectives)…
Students will learn how we plan on designing a basic game interface .
In this video (objectives)…
Learn how to design an interface with Godot’s control nodes.
In this video (objectives)…
Learn how to use dictionaries to store containers and toggle their visibility.
In this video (objectives)…
Learn how to pause and unpause the game when a button is pressed in our UI.
In this video (objectives)…
Learn how to move a node to a completely different, also known as reparenting.
In this video (objectives)…
Learn why the event keyword is important to prevent your event handlers from being overridden.
In this video (objectives)…
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)…
Learn how to set up a UI for displaying stats using Godot’s PanelContainer, Panel, and HBoxContainer nodes.
In this video (objectives)…
Learn how to dynamically update labels with events from resources.
In this video (objectives)…
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)…
Learn how to setup and render a UI when the player is defeated by an enemy.
In this video (objectives)…
Learn how to design a victory UI and raise an event when the player defeats all enemies in our game.
In this video (objectives)…
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)…
Students will learn the final steps we’ll be taking to finish our game.
In this video (objectives)…
Learn how to work with sprite sheets by rendering portions of an image with Godot’s sprite node.
In this video (objectives)…
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)…
Learn how to create an event for applying rewards to both the UI and player scenes.
In this video (objectives)…
Learn how to use Godot’s properties for animating a sprite and autoplay animations.
In this video (objectives)…
Learn how to reference a scene from a node to instantiate it at any given moment in your games.
In this video (objectives)…
Learn how to use C# interfaces to allow for both player and ability attacks to damage enemies.
In this video (objectives)…
Learn how to setup a thunder ability that damages the enemy when combo attacks are successfully performed by the player.
In this video (objectives)…
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.
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.
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.