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

Ever dreamed of creating your own epic 3D role-playing game? Now’s your chance.

Join us as we guide you through building a large-scale RPG in the Godot engine. You’ll learn to bring your ideas to life, levelling up your dev skills in the process.

We’ll start with the essentials and tackle the fun stuff: crafting attacks, abilities, and a levelling system to make your player character truly shine. By the end, you’ll have a fully playable RPG, complete with gear, enemies, and jaw-dropping environments.

Read more

Ever dreamed of creating your own epic 3D role-playing game? Now’s your chance.

Join us as we guide you through building a large-scale RPG in the Godot engine. You’ll learn to bring your ideas to life, levelling up your dev skills in the process.

We’ll start with the essentials and tackle the fun stuff: crafting attacks, abilities, and a levelling system to make your player character truly shine. By the end, you’ll have a fully playable RPG, complete with gear, enemies, and jaw-dropping environments.

Building a game this size sounds intimidating, right? No worries. We’ll guide you step-by-step to create a fully-fledged RPG in Godot, from scratch. You’ll also learn the secret sauce behind pro-level Godot skills.

Ever wondered how to make your character stronger across levels? We’ll teach you how to use resources to manage player stats and create that satisfying "level-up" feeling players crave. Power up your skills and your hero at the same time.

RPGs are all about killer gear. You’ll master inventory systems, item equipping, and weapon damage. Plus, you’ll make sure players can see their hero evolve with each shiny new sword or piece of armour they equip.

Animations bringing the game to life? Check. We’ll dive into animation trees and state machines, so your characters don’t just move—they flow. Hook animations into gameplay to make every attack and action feel impactful.

From bone attachments to global illumination, we’ve got your back with advanced techniques that will make your RPG not just playable but downright gorgeous. Make those levels pop with lighting that wows even the pickiest players.

Stuck on complex interfaces? We’ll teach you how to create dynamic UIs that update with player actions—whether it’s equipping items or tracking stats. Build interfaces players love to use.

This course is perfect for intermediate Godot devs or anyone who’s taken our Complete Godot 3D course. If you know the editor and can set up scenes, this is your chance to level up.

Stuck? Never fear. You’ll have access to a supportive community and a crack team of teaching assistants. Whether you’re debugging or dreaming up your next feature, you won’t be on this journey alone.

The Godot engine is blowing up (not literally. ), and now’s your chance to jump on in. Grab your keyboard, your imagination, and maybe a cup of tea—it’s time to get creating. See you in the course.

Enroll now

What's inside

Learning objectives

  • Dive into advanced scripting with lambda functions for smarter, leaner gameplay.
  • Build a feature-packed 3d rpg in godot that’ll make players want to grind all day.
  • Create character stats and levelling systems that feel rewarding and satisfying.
  • Develop gear systems with weapons and armour that change stats and appearance.
  • Tackle lighting and global illumination to make your game world truly shine.
  • Design smooth animations with state machines for attacks and movement.
  • Use custom resources to manage player data and keep everything neat behind the scenes.
  • Craft a user interface that’s slick, intuitive, and updates with every player action.

Syllabus

Introduction & Setup

In this video (objectives)…

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

Read more

In this video (objectives)…

Creating the project and getting a first level into a runnable state.

In this video (objectives)…

Creating the player scene with collision, mesh, and a camera. Then instantiating it in the level ready for play.

In this video (objectives)…

Adding a template script for simple movement to the player and adding some custom input evenets to change the controls.

In this video (objectives)…

Introducing a new node to keep the camera separated from the player while still colliding with the environment.

In this video (objectives)…

Using the InputEventMouseMotion event to store relative mouse motion and sanitize it for controlling the camera.

In this video (objectives)…

Adding intermediary nodes to avoid axis ordering problems with 3D rotations.

In this video (objectives)…

Using the iterpolate_with() and exp() functions to smooth our camera motion.

In this video (objectives)…

Using the Basis class to reorient our movement vector into the player’s perspective.

In this video (objectives)…

Learning about GLTF files and using them to flesh out our level with foliage.

In this video (objectives)…

Creating a scene for our animated player character and orienting it to face in the direction of movement.

In this video (objectives)…

Using the interpolate_with() function to animate our rigs rotation over time.

In this video (objectives)…

Setting up animations in the advanced importer and introducing animation trees for blending animations.

In this video (objectives)…

Using AnimationTree parameters to control our blend space in code.

In this video (objectives)…

Using the move_toward() function to animate our blend weight and adding new animations into the state machine.

In this video (objectives)…

Using the playback object to control our AnimationTree in script.

In this video (objectives)…

Using the BoneAttachment3D Node to put objects into the players hands that update with animations.

In this video (objectives)…

Adding to the player script letting us lock motion in a given attack direction when the player swings their sword.

In this video (objectives)…

Adding functions into our player script to better organize the physics process function.

In this video (objectives)…

Using a BoneAttachment3D to put a ray in the players hands for detecting the recipients of weapon swings.

In this video (objectives)…

Creating an enemy scene with randomly selected meshes.

In this video (objectives)…

Introducing the health component - a node for handling player and enemy health in a reusable fashion.

In this video (objectives)…

Making our AttackCast interact with HealthComponents to deal damage to the enemy. As well as setting up a defeat animation for the Rig.

In this video (objectives)…

Disabling enemy collision on defeat and using the ShapeCast3D node to detect the Player.

In this video (objectives)…

Adding animations for a heavy attack in the rig scene letting the enemy swing at the player when they get in range.

In this video (objectives)…

Adding a HealthComponent to the player and preparing an AreaAttack ShapeCast3D.

In this video (objectives)…

Setting up the AreaAttack in the Enemy scene so the Player can be defeated.

In this video (objectives)…

Reusing nodes we built for the Enemy to make the player able to Heavy Attack.

In this video (objectives)…

Finishing off the player’s suite of moves by setting up a dash ability to avoid enemy attacks.

In this video (objectives)…

Adding the dash animation and starting to control motion from the Dash ability scene.

In this video (objectives)…

Using exponential decay to ease the player’s velocity and blend between dashing and idle.

In this video (objectives)…

Setting up a GPUParticles3D node to add a dust cloud around the player’s feet when dashing.

In this video (objectives)…

Improving our dash to track the player’s state, so we can’t dash when defeated. As well as looking at useful functions to track variable permutations in the is_overhead() function.

In this video (objectives)…

Introducing and setting up a custom resource for player levelling and stats.

In this video (objectives)…

Introducing inner classes for creating reusable objects for stat attributes like strength and speed.

In this video (objectives)…

Adding extra functions to the ability inner class for calculating modifiers. Additionally setting up the remaining ability objects.

In this video (objectives)…

Adding functions for levelling up and improving ability scores. As well as making defeating enemies cause a level up.

In this video (objectives)…

Rewarding the player with experience points when they defeat enemies and then triggering level ups.

In this video (objectives)…

Using our ability modifiers in the player script to control the player’s damage and movement speed.

In this video (objectives)…

Using our agility ability to trigger critical hits on regular and heavy attacks.

In this video (objectives)…

Creating a Label3D scene for showing numbers. Giving more feedback for attacks and critical hits.

In this video (objectives)…

Building an Autoload for spawning damage numbers whenever health components take damage.

In this video (objectives)…

Connecting character stats and the HealthComponent with a lambda function so our hp increases as we level up.

In this video (objectives)…

Adding an extra modifier for the agility ability to manage responsible for cooldown between dashes.

In this video (objectives)…

Downloading assets for the user interface and setting up window dimensions in project settings.

In this video (objectives)…

Getting a hold of a font file for the project and setting up the info bar to display the player’s level.

In this video (objectives)…

Introducing the ProgressBar and TextureProgressBar to display our players health and experience in the info bar.

In this video (objectives)…

Finishing off the InfoBar and adding a health label to track max health and damage accurately in game.

In this video (objectives)…

Creating a menu for holding items and displaying character stats, that the player can open and close.

In this video (objectives)…

Making the inventory screen actually pause the game as well as make the mouse usable. Then moving onto setting up the spacing and panels for the menu itself.

In this video (objectives)…

Adding attribute displays to the character sheet and setting up a script to show the player’s strength, speed, endurance, and agility.

In this video (objectives)…

Updating the character sheet whenever the player levels up, previewing attack damage and adding a TextureButton to back out of the inventory menu.

In this video (objectives)…

Adding a SubViewport to the Inventory so we can preview our character model for equipment later on. Additionally introducing the World3D resource.

In this video (objectives)…

Introducing Navigation, regions, and AABBs to set up the navigatable area of the main level.

In this video (objectives)…

Adding NavigationAgent3D Nodes to the enemies so they can start using the NavigationServer to navigate towards the player.

In this video (objectives)…

Focussing on Vector subtraction to calculate local paths and introducing avoidance options in navigation agents.

In this video (objectives)…

Making enemies change to the running animations during pursuit, and fixing an issue with avoidance causing attacking enemies to move.

In this video (objectives)…

Fixing enemy navigation when they are defeated and adding support for swapping in and out different weapons and shields.

In this video (objectives)…

Using more of our glb files to build the entrance to a castle in our starting level, as well as updating navigation meshes.

In this video (objectives)…

Introducing Godot’s global illumination options and updating the world evironment.

In this video (objectives)…

Adding mountains to the background and a variety of floor decorations to add some variety to the grass.

In this video (objectives)…

Setting up the physics and decorating our level with the final four .glb files.

In this video (objectives)…

Covering some of the essential project settings for improving graphical quality with anti-aliasing and shadow quality.

In this video (objectives)…

Introducing the scene we will build all of our inventory items from.

In this video (objectives)…

Using inheritance and extending scripts to create variations of the item icon with different functionalities.

In this video (objectives)…

Setting up the last two Item Icons and introducing enums for defining different armor types.

In this video (objectives)…

Building a chest to hold our item icons the player will be able to loot. Additionally, introducing the filter() function to control the type of items in an Array.

In this video (objectives)…

Adding an extra ShapeCast3D to the player so we can interact with chests in our game world.

In this video (objectives)…

Adding a panel to our user interface for displaying when the player can interact with a game object. Additionally using an AnimationPlayer to contextually fade it out.

In this video (objectives)…

Creating a panel that shows and hides when the player interacts with a chest to show its contents.

In this video (objectives)…

Using reparenting to move item icons from the chest into the loot container view for looting.

In this video (objectives)…

Renaming our LootContainer and fixing an exploit when opening multiple chests.

In this video (objectives)…

Dynamically connecting to the ItemIcon’s interact signals so we can interact with the button in different menus.

In this video (objectives)…

Adding a panel for tracking how much gold our player has collected from chests.

In this video (objectives)…

Creating a section of our character panel to display equipped gear and connecting signals to move items around the inventory.

In this video (objectives)…

Updating the inventory to use the weapon in the weapon slot to calculate the player’s damage.

In this video (objectives)…

Making it possible to equip armor and shield icons as well as adding the last few items to our main level and previewing armor effectiveness.

In this video (objectives)…

Using our armor value to reduce incoming damage from enemy attacks.

In this video (objectives)…

Using group tags to update our multiple rigs to show whatever weapon and shield is equipped.

In this video (objectives)…

Fnishing off the inventory by making ArmorIcons change the player rig’s mesh.

In this video (objectives)…

Adding an interactible passageway for loading new levels.

In this video (objectives)…

Uing the ColorRect node to fade the screen to black, hiding the transition when loading new levels.

In this video (objectives)…

Creating a second game level for the castle interior, and building the wall and turret perimeter.

In this video (objectives)…

Decorating the castle level with all our remaining 3D assets.

In this video (objectives)…

Creating a new global autoload to store persistant data and Nodes we want to keep between different levels.

In this video (objectives)…

Adding to the PersistentData autoload so it can store the players armor, weapon and shield between levels.

In this video (objectives)…

Making collected gold and the player’s current health persistent between levels.

In this video (objectives)…

Setting up our enemies and chests so the game is in a playable state.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Explores advanced techniques like animation trees, state machines, and custom resources, which are essential for creating complex and dynamic game mechanics
Covers the creation of core RPG systems, such as character stats, leveling, gear, and inventory, providing a solid foundation for building engaging role-playing experiences
Delves into practical application of Godot's features, including global illumination, UI design, and navigation, enhancing the visual appeal and user experience of games
Employs lambda functions for scripting, which can lead to more concise and efficient code, but may require familiarity with functional programming concepts
Requires prior experience with the Godot editor and scene setup, which may exclude absolute beginners without introductory knowledge of the engine
Focuses on Godot 4, so learners should be aware that some concepts and techniques may not be directly transferable to earlier versions of the engine

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 3d rpg in godot 4

Uses current Godot 4 tools and nodes.
"Learning AnimationTree and state machines in Godot 4 was useful."
"The section on global illumination really made the graphics pop."
"Working with custom resources felt clean for managing data."
Create a complete 3D RPG game.
"It feels great to be building a large-scale 3D RPG project."
"The course goes through creating an entire game from scratch."
"I appreciate the scope, building a feature-packed game."
Learn by building a playable game.
"I enjoyed building a fully playable game by the end."
"The step-by-step approach is great for learning through doing."
"It's very hands-on, which is how I learn best in game dev."
Covers stats, inventory, combat, UI, etc.
"The systems for stats, levelling, and gear are well-explained."
"I learned how to create dynamic UIs and inventory systems."
"Setting up enemy AI and navigation using agents was covered well."
"It dives deep into core RPG features like combat and abilities."
Best for intermediate Godot users.
"Make sure you know Godot basics; this is definitely intermediate."
"I recommend taking their Complete Godot 3D course first."
"If you can set up scenes and know the editor, you'll be fine."

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: Build a Feature-Packed 3D RPG with these activities:
Review Godot's AnimationTree
Practice using AnimationTrees in Godot to prepare for the course's animation system.
Browse courses on Animation
Show steps
  • Create a simple character with basic animations (idle, walk, run).
  • Set up an AnimationTree to blend between these animations.
  • Control the blend weights using input events.
Brush up on 3D vector math
Review vector math concepts to better understand 3D movement and spatial relationships in Godot.
Browse courses on Vector Math
Show steps
  • Review vector addition, subtraction, normalization, and dot products.
  • Practice applying these concepts to 3D movement and rotations.
  • Work through tutorials on vector math in game development.
Read 'Game Programming Patterns'
Learn common game programming patterns to improve code structure and maintainability in your RPG project.
Show steps
  • Read chapters relevant to game architecture, state management, and behavior trees.
  • Identify opportunities to apply these patterns in your RPG project.
  • Refactor existing code to incorporate these patterns.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Prototype a simple combat system
Build a basic combat system with attacks, damage, and health to solidify your understanding of game mechanics.
Show steps
  • Create a player and enemy character with basic stats.
  • Implement attack and damage calculation logic.
  • Add health bars and defeat conditions.
  • Incorporate basic animations for attacks and damage.
Read 'The Art of Game Design: A Book of Lenses'
Apply game design principles to refine your RPG's mechanics and player experience.
Show steps
  • Read chapters relevant to game mechanics, player psychology, and user interface design.
  • Use the 'lenses' provided in the book to analyze your RPG's design.
  • Identify areas for improvement and implement changes based on your analysis.
Write a blog post about your RPG development journey
Document your progress and challenges to reinforce learning and share your experience with others.
Show steps
  • Choose a specific aspect of your RPG development to focus on.
  • Write a blog post detailing your approach, challenges, and solutions.
  • Include screenshots or videos to illustrate your points.
  • Share your blog post on relevant forums and social media.
Contribute to a Godot Engine tutorial or documentation
Deepen your understanding of Godot by contributing to the engine's documentation or creating tutorials.
Show steps
  • Identify an area in the Godot documentation that needs improvement.
  • Write a clear and concise explanation of the topic.
  • Submit your contribution to the Godot documentation team.
  • Alternatively, create a tutorial on a specific Godot feature or technique.

Career center

Learners who complete Godot 4: Build a Feature-Packed 3D RPG will develop knowledge and skills that may be useful to these careers:
Indie Game Developer
An Indie Game Developer is typically responsible for most aspects of game creation, from design and programming to art and sound. This course, by guiding you through the creation of a full 3D RPG using the Godot engine, gives experience in many of those areas. This course is structured so developers work through building features of a complete game. This process mirrors what an Indie Game Developer does daily. The course content teaches advanced scripting, animation implementation, and UI creation. These are skills an indie developer would need. Aspiring indie developers who desire a more hands-on approach to game development should take this course in particular.
Game Developer
A game developer creates the software that powers video games. This role requires proficiency in a game engine like Godot, a core focus of this course, where you'll gain practical experience building a 3D RPG. You will learn how to implement game mechanics such as character movement, combat, level progression, and user interfaces. This course covers many aspects of game development, including animation, lighting, and UI design. A game developer should understand how to implement these elements in a cohesive and engaging way. This course helps to build foundational and advanced skills in these areas. It is incredibly relevant for aspiring game developers.
UI Programmer
A UI programmer is a software engineer who focuses on user interfaces. The course provides hands-on experience designing and implementing dynamic UIs that respond to player actions. A UI programmer must know how to design, implement, and test interfaces for software. In this class, students will build interfaces that update with player actions, like equipping items or tracking stats. These are key elements of a role. The course is a good way to get experience building such interfaces. Anyone looking to build interfaces would benefit from the course.
Gameplay Programmer
A gameplay programmer focuses on implementing the rules and mechanics that make a game fun and engaging. This role requires a strong understanding of scripting and game engine architecture, both of which are taught in the course. This course's work in combat systems, leveling mechanics, and inventory management directly translates to the tasks expected of a gameplay programmer. The course explores animation implementation, resource use, and UI design: all key skills needed for a gameplay programmer. This course may be useful in developing the core skills of a gameplay programmer.
Technical Artist
A technical artist bridges the gap between artists and programmers, ensuring art assets function correctly in a game. This role benefits from the course's exploration of animation trees, bone attachments, and global illumination techniques. A technical artist would be expected to implement visual features and, as such, this course will instruct students on level design and lighting. This work in level design and lighting is directly relevant to the role. This course teaches technical artists how to make a game visually appealing and technically sound. Anyone interested in the technical side of game art should take this course.
Game Designer
A game designer creates a game's concept, mechanics, and rules. While this course focuses on the implementation of a game, the process of building a 3D RPG provides valuable insights into game design principles. The course covers player progression, resource management, and user interface design. These are key areas a game designer should understand. This course guides learners through the steps of turning a game idea into a playable reality. This experience will be useful for someone pursuing a career as a game designer.
Animator
An animator creates and implements animations for game characters and objects. The course has thorough instruction on using animation trees and state machines, which are essential tools for creating smooth and engaging animations. The course involves creating animations for attacks and movements, providing hands-on experience relevant to the role of an animator. The course focuses on implementing the animation in a game. An animator should take this course to understand how their work fits within a larger game experience.
Mobile Game Developer
A mobile game developer creates games for mobile platforms like iOS and Android. This course may be helpful to a mobile game developer, as the Godot engine supports mobile game development. The course teaches how to create a 3D RPG with all of the systems and mechanics present in many mobile games. The course instruction extends to UI design, menus, and touch screen inputs, which are all relevant to mobile game development. Someone wishing to build mobile games may find this course useful.
Software Engineer
A software engineer builds and maintains a variety of software. This course may be useful to a software engineer interested in game development specifically. This course teaches advanced scripting techniques, algorithm design, and resource management. All of these are applicable to this role in game development. The course allows the learner to build a complex, feature-rich, piece of software, which will help build a portfolio. This would help a software engineer move into game development.
Simulation Developer
A simulation developer is responsible for building software that simulates systems for training, testing, or research. This role requires skills in programming, physics, and animation, all of which are addressed in the course. This course covers the implementation of movement, combat, and physics, which directly translates to simulation development. The course also teaches animation techniques using state machines, which is useful for simulating complex systems. This course may be useful to anyone looking to learn how to program complex simulations.
Interactive Designer
An interactive designer focuses on creating engaging experiences in digital environments, which can include games, websites, or other interactive applications. While this course is centered around building a game, the process of designing combat, inventory systems, and user interfaces is core to interactive design. This course will teach you how to create interfaces that players love to use. As interactive designers must be able to develop these kinds of user interfaces, this class may be helpful for them. This course addresses many aspects of interactive design.
Virtual Reality Developer
A virtual reality developer creates immersive experiences in virtual reality environments. This course may be useful to a virtual reality developer. The course is focused on 3D game development, which uses many of the same principles as virtual reality. The course will be helpful in understanding the mechanics of 3D worlds, and how to implement them. As such, this course may be helpful for someone wishing to design, build, and test virtual reality experiences.
Augmented Reality Developer
An augmented reality developer is responsible for creating experiences that blend digital content with the real world. This role often involves 3D graphics and user interfaces. This course may be useful to one who wishes to program augmented reality experiences. The course covers skills such as creating user interfaces, implementing 3D animations, and handling player interactions. These skills are also useful for coding applications in augmented reality. As such, this course may be helpful to one seeking this role.
Level Designer
A level designer creates the game environments that players explore. While this course focuses on game mechanics, it includes level setup and environment design. A level designer should consider how level progression and exploration affects player experience. This course provides the context needed to build a functional and visually appealing world. This course may be useful to those looking to understand the technical demands of building a level.
Tools Programmer
A tools programmer creates software that game developers use to build and manage game content. While this course does not directly focus on this area, the hands-on experience using the Godot engine's tools can be useful. The course teaches programming that allows students to use custom resources to manage player data and keep everything neat behind the scenes. This may be useful to a tools programmer. By learning to create tools and workflows for game production, this course may be helpful to someone hoping to progress in this career path.

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: Build a Feature-Packed 3D RPG.
Provides a comprehensive framework for game design, using 'lenses' to analyze and improve your game. It will help you think critically about your RPG's mechanics, player experience, and overall design. This book is commonly used as a textbook at academic institutions. It adds breadth to the existing course by providing a holistic view of game design principles.
Provides valuable insights into common design patterns used in game development. It will help you write cleaner, more maintainable code for your RPG. While not specific to Godot, the principles are universally applicable. This book is more valuable as additional reading to improve your coding skills.

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