We may earn an affiliate commission when you visit our partners.
Thomas Yanuziello

In this course, we will start with a blank project and start by learning the basics of a third person character and camera controller popular in modern action adventure games.  From there we will add the essential elements that are common to most games such as menus, settings, music, saving, and loading.  Next we will add an event system capable of producing complex branching dialogues and cut-scenes complete with animation and camera movements.  Then we will add an inventory system which will allow the player to pick up money and items, see them in an inventory menu, drop, use, or equip their items, and trade them with NPCs.  Lastly, we will allow characters to engage in combat; attacking with weapons, blocking with shields, dodging, shooting projectiles, taking damage, and dying.

Read more

In this course, we will start with a blank project and start by learning the basics of a third person character and camera controller popular in modern action adventure games.  From there we will add the essential elements that are common to most games such as menus, settings, music, saving, and loading.  Next we will add an event system capable of producing complex branching dialogues and cut-scenes complete with animation and camera movements.  Then we will add an inventory system which will allow the player to pick up money and items, see them in an inventory menu, drop, use, or equip their items, and trade them with NPCs.  Lastly, we will allow characters to engage in combat; attacking with weapons, blocking with shields, dodging, shooting projectiles, taking damage, and dying.

Join our discord server to work on this course alongside your peers.   Click the website link in my profile to join.

You'll also learn useful skills for working with the Godot game engine, organizing, and designing your projects to be more scalable.  You will be learning how to code with GDscript, with everything explained in detail.  Our scripts will be written to be highly customizable and reusable.  All of the project files will also be available on GitHub if you need to review the project as it was after completing each lesson.  These videos were recorded using Godot version 4.3.

This course contains:

Introduction to 3D Game DevelopmentGame Development EssentialsDialogue & EventsInventory & ShopsDynamic Combat System

If you've already purchased any of these courses, please ask me for a discount on this course.

The assets used in this course are from KayKit's Adventurers and Dungeon Remasters packs along with Basic GUI bundle made by Penzilla, and music composed by Eric the Funny Baron.  The inventory icons were made by Shikashi.  All are available to download for free on itch.  Coins sound effects were made by Valenspire on FreeSound.

Enroll now

What's inside

Learning objectives

  • Learn how to use the godot game engine to create scenes with objects, lights, cameras, and a character that the player can control.
  • Learn the basic infrastructure common to most games; including menus, saving and loading, game settings, and background music.
  • Build an event management system that can display dialogue complete with choices, animate characters, move the camera, fade in and out, and mark progress.
  • Build an inventory system that allows the player to pick up items, view them in a menu, drop, use, or equip items, and trade them with npcs.

Syllabus

Introduction

Learn how to set up a basic 3D scene in Godot, as well as how meshes, materials, cameras, and light sources interact with each other to produce a scene.

Read more
Practice
When you're done, you'll have a good understanding of third person character control, and a fully functional implementation that is highly customizable for any 3D project.

Learn how input events are used to trigger actions in our game, and how scripts are used to add behaviors to nodes.

Learn how to use 2-dimensional input controls to move a character through 3-dimensional space.

Learn how to import and implement 3D character models into the Godot engine.

Animate the character walking at variable speeds with realistic locomotion physics.

Learn how to rotate a character model to face in the same direction they are moving, either instantaneously or gradually over time.

Learn how to animate jumping through a sequence of separate animations, using a state machine to control how and when to transition between animations.

Learn how to adjust gravity, or how it affects your character and how they jump. As well as how much control the player has over the character in midair.

Learn how to implement third person character controls.

Learn how to build a 3D level with imported assets using a grid map.

Build Levels
When you're done, you'll have a good basic structure of a game that you can further develop into something of your own design of any genre.

Pause your game and build a menu on a canvas complete with buttons. Learn how to connect signals to script functions.

Build a title scene for your game and connect it to the game scene, then connect the game scene back to the title scene through the pause menu.

Transition smoothly between scenes by fading to black. Learn how to use tweens to gradually change properties over time and await signals.

Learn about classes and inheritance while passing information about game settings and player progression between different scenes.

Combine what you learned in the previous 2 lessons to create an autoloaded node for background music that fades volume in and out.

Learn how to use more types of Control nodes, nesting containers, and emit custom signals to build a settings menu accessible from any scene.

Detect when the player exits the level, fade to black, and unload the current level. Learn about abstraction and debug warnings.

Use arrays to store transitions between levels, iterate through the array, position the character in the new level and rotate them to face the desired direction.

Use Singletons to Save and Load both game settings and player progress through your game.

Wrapping everything up by adding a credits scene with variable scrolling speed.

Build Characters
You'll have a comprehensive dialogue and event system for your game that can be used to produce high quality cutscenes and complex branching narratives that react to player's choices.

Create a dialog box for your game that displays a line of dialogue to the player.

Display longer sequences of dialogue from a single speaker without closing the dialog box, complete with animated typing at variable speeds and letting the player skip the typing animation.

Synchronize dialogue with other game scene objects through the use of an event manager.

Apply the composite pattern to make anything in your game intractable with a button press.

Creating branching dialogue trees by connecting signals to a match statement.

Use progress flags, allowing the player to progress through your game using the event system.

Add camera angles, panning, and track movements to turn dialogue into cut-scenes.

Animate characters during interaction and dialogue events.

Move characters around the scene during events using markers and simple stage directions telling them to walk or run.

Make event scripts easier to write & edit, standardize common functions and nest events inside each other.

Build a Cutscene
You'll have a customizable inventory system for your game that allows the player to pick up, drop, and use items, as well as using shops to buy and sell them.

Use global signals to connect a collision with a stack of coins to the player's progress data and updating the UI all automatically. Use Tweens to hide UI elements when they are not needed.

Make the simple act of picking up coins more satisfying for the player with visual and audio effects.

Detect when items are around the player to be picked up, figure out which one is nearest to the player, and add it to their inventory at the press of a button.

Build an inventory menu that removes player control without pausing the game.

Initialize the player's inventory and add items as they are picked up, either as individual items or in stacks, and display information about selected items in the inventory menu.

Drop or use items from the inventory menu taking into consideration both PC and controller inputs.

Equip items from the player's inventory to the player character through the inventory menu.

Allow players to buy and sell items with an NPC shop.

Build Items
Students will be able to implement a basic combat system into their game.

What you should have in your project before starting this section and what will be covered.

Use a lock on button to reposition the camera behind the player character, determine which enemies are visible, and which one is the closest to lock on to.

Change the behaviour of the player character and camera while locked on to a target.

Buffer inputs and blend upper body action animations with lower body movement animations.

Change character's attack animations based on what type of weapon they have equipped and apply different collision masks to their hit boxes based on who is holding the weapon.

Add hurt boxes to characters, use collision masks to detect when a weapon makes contact, apply damage based on the weapon used, react to the strength and directionality of the attack, and track health using a gauge.

Create blended, omnidirectional dodging animations complete with i-frames, and wait until characters complete a combat action before performing another.

Reduce the damage of attacks coming from in front of the character while blocking with a shield. Allow actions to interrupt other actions and automatically return to the original action.

Load ranged weapons with ammunition to fire straight ahead or at a target, hitting either enemies or the environment, and cleaning up old projectiles.

Control enemies with AI scripts that can detect the player character, navigate around obstacles, and engage in armed combat.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Uses Godot 4.3, which is a stable version of the engine, ensuring compatibility and access to a wide range of features and a supportive community
Teaches GDScript, which is similar to Python, making it easier for beginners to learn game development and implement complex game mechanics
Covers essential game elements like menus, saving/loading, and settings, providing a solid foundation for building complete and engaging game experiences
Emphasizes reusable and customizable scripts, which promotes efficient coding practices and allows developers to adapt the code to various game projects
Includes assets from KayKit and Penzilla, which are freely available on itch.io, reducing the barrier to entry for aspiring game developers
Requires assets from external sources, which may require learners to create accounts and navigate third-party websites to acquire them

Save this course

Save Intro to 3D Game Development Masterclass in Godot! to your list so you can find it easily later:
Save

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 Intro to 3D Game Development Masterclass in Godot! with these activities:
Review GDScript Basics
Reinforce your understanding of GDScript syntax and common programming patterns before diving into the course's more complex implementations.
Show steps
  • Review GDScript documentation on variables, data types, and operators.
  • Practice writing simple scripts to manipulate game objects.
  • Experiment with control flow statements like if/else and loops.
Read 'Learning GDScript'
Deepen your understanding of GDScript by working through the examples and exercises in this book, which provides a solid foundation for game development in Godot.
Show steps
  • Read the chapters covering GDScript basics and object-oriented programming.
  • Complete the exercises at the end of each chapter to test your understanding.
  • Experiment with modifying the examples to create your own variations.
Follow Godot's Official Tutorials
Enhance your understanding of Godot's core concepts by working through the official tutorials, which cover a wide range of topics relevant to the course.
Show steps
  • Visit the official Godot Engine website and navigate to the tutorials section.
  • Select tutorials that cover topics such as scene management, input handling, and animation.
  • Follow the instructions in each tutorial to create the example project.
  • Experiment with modifying the project to add your own features.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Read 'Godot Engine Game Development Projects'
Gain practical experience by following along with the book's projects, which cover a range of game development topics relevant to the course.
Show steps
  • Select a project from the book that aligns with your interests.
  • Follow the book's instructions to build the project step-by-step.
  • Experiment with modifying the project to add your own features.
Document Your Inventory System
Solidify your understanding of the inventory system by creating a detailed document explaining its architecture, functionality, and customization options.
Browse courses on Inventory System
Show steps
  • Review the course's inventory system implementation.
  • Create a document outlining the system's components and their interactions.
  • Explain how to add new items, modify item properties, and create shops.
  • Include diagrams and code snippets to illustrate key concepts.
Prototype a Simple 3D Platformer
Apply the course's character controller and level design principles to create a basic platformer level with jumping, moving platforms, and simple enemies.
Show steps
  • Create a new Godot project and import necessary assets.
  • Implement a basic character controller with jumping and movement.
  • Design a simple level with platforms and obstacles.
  • Add basic enemy AI and collision detection.
Contribute to a Godot Open Source Project
Deepen your understanding of Godot by contributing to an open-source project, which will expose you to real-world development practices and collaborative workflows.
Show steps
  • Find a Godot open-source project on GitHub or GitLab.
  • Review the project's documentation and contribution guidelines.
  • Identify a bug or feature that you can contribute to.
  • Submit a pull request with your changes.

Career center

Learners who complete Intro to 3D Game Development Masterclass in Godot! will develop knowledge and skills that may be useful to these careers:
Game Developer
A game developer brings video games to life, from the initial concept to the final product. This role involves coding game logic, designing gameplay mechanics, and integrating assets. This course helps a prospective game developer learn to use the Godot engine to create scenes with objects, lights, cameras, and a player controlled character. It also helps developers build essential elements such as menus, settings, and saving and loading mechanics. The course's focus on building an event system, inventory system, and combat mechanics directly mirrors common game development tasks.
Gameplay Programmer
A gameplay programmer focuses on the interactive elements of a game, such as character movement, combat, and user interface. This position requires a strong understanding of game mechanics and the ability to implement them using code. This course, with its hands-on approach to building character controllers, event systems, and combat mechanics, helps gameplay programmers build a foundation in game development. The course's learning objects include the creation of core gameplay features like inventory systems and dialogue, which are crucial to the role of the gameplay programmer.
Indie Game Developer
An indie game developer works on smaller, independent game projects, taking on multiple roles such as programming, design, and art. This role requires a broad range of skills and a passion for creating unique gaming experiences. This course helps an indie game developer get a head start by teaching them how to create a fully functional game with common features such as menus, inventories, and combat. The course's hands-on project based teaching style helps developers learn about game design and implementation.
Level Designer
A level designer creates the maps and environments for video games. This involves designing the layout of each level to facilitate gameplay, create challenges, and craft a cohesive world. A level designer may find this course helpful, as they learn how to build 3D levels with imported assets, and how to use features such as grid maps. The course helps designers to better understand how the mechanics of the game interact with the layout of a level.
Educational Game Developer
An educational game developer creates games designed to teach specific concepts or develop certain skills, targeting various age groups. This role requires a strong understanding of how to integrate educational content into an engaging game design. This course may be useful to an educational game developer, as it provides the practical skills to build interactive games. The course's focus on creating dialogue, event systems, and inventory systems can be applied to educational games.
UI Programmer
A user interface programmer specializes in creating the visual and interactive elements of a software application that users interact with. This role involves programming menus, buttons, and other UI elements. A UI programmer may find this course useful in gaining practical experience in implementing user interfaces within a 3D environment. The course's content on menus, settings, and the display of inventory items are directly relevant to user interface implementation.
Technical Artist
Technical artists bridge the gap between art and programming, ensuring that visual assets work flawlessly within a game engine. This role involves optimizing assets, setting up animations, and creating visual effects. This course may be useful to a technical artist, as it introduces the fundamentals of the Godot game engine and teaches the integration of 3D models. The course's content on animation, camera movement, and UI design are valuable to technical artist who want to better understand how visual elements are brought into a game.
Interactive Developer
An interactive developer creates engaging user experiences for various applications, including websites, games, and installations, using programming, design, and interactivity. A prospective interactive developer may find this course useful, as it can help to build a foundation in the design of menus, event systems, and user interfaces. The course's content on implementing character controls and user interaction are directly relevant to creating interactive experiences.
Game Designer
A game designer is responsible for the overall vision of a game, including its rules, gameplay, and story. This role requires a deep understanding of game mechanics and the ability to create engaging player experiences. This course's exploration of event systems, inventory mechanics, and combat systems can help a game designer build a more practical base of skills. The course's focus on user interfaces, menus, and settings allows designers to understand the finer points of user experience. A prospective game designer may find this course to be a very useful starting point.
Simulation Developer
A simulation developer creates interactive simulations for various purposes, such as training, research, or entertainment. This role involves programming realistic scenarios and user interfaces. This course may be useful to a simulation developer, as it introduces the basics for creating interactive 3D scenes with user controls. The course's teachings on camera movement, character control, and event management can be relevant for developing various simulation applications.
Multimedia Developer
Multimedia developers are responsible for combining and integrating various forms of media, such as text, sound, video, and interactive elements. This role often involves creating engaging and interactive experiences, often using digital animation, video, and audio. A prospective multimedia developer may find this course useful for gaining hands-on experience in the integration of multimedia assets using a game engine. The course's teachings on integrating user interfaces, 3D character models, and interactive elements are relevant to this role.
Animator
An animator creates motion graphics and animations for various media, including games, movies, and websites. This role requires skills in traditional animation principles and the use of animation software. While this course does not focus on the animation process itself, it may be useful to an animator by teaching how to set up and apply character animations within the Godot game engine. The course's content on integrating character animations and controlling them through a state machine helps build practical skills.
Training Simulation Developer
A training simulation developer creates interactive simulations for professional training purposes for companies and organizations. This role would involve programming realistic scenarios and user interfaces, and an understanding of the needs of a given client or organization. A prospective training simulation developer may find this course useful as a first step toward a particular career. The course touches on the use of cameras, characters, and scene management, which are directly applicable to training simulations.
Software Engineer
A software engineer designs, develops, and maintains software applications. This role requires a broad understanding of programming languages and software development principles. This course helps a software engineer by teaching them how to develop interactive 3D application using the Godot game engine and GDscript. The course helps the learner build object oriented projects, and also builds an understanding of event based software design.
Project Manager
A project manager is responsible for planning, executing, and closing projects effectively, ensuring that they are completed on time and within budget. Project managers are often responsible for communicating with team members, and ensuring that they are all on track. This course may be useful to project managers, as they may be asked to work with other members of a game development team. The course provides some practical perspective into the process of building a game, which can help improve communication with team members.

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 Intro to 3D Game Development Masterclass in Godot!.
Comprehensive guide to GDScript, the scripting language used in Godot. It covers the fundamentals of the language, as well as more advanced topics such as object-oriented programming and game-specific scripting techniques. This book is useful for students who are new to programming or who want to deepen their understanding of GDScript. It is commonly used as a reference by both beginners and experienced Godot developers.
Provides practical examples of building various game types in Godot. It offers a hands-on approach to learning the engine's features and workflows. It is particularly useful for understanding how different game mechanics can be implemented. This book serves as a valuable reference for students looking to expand their knowledge beyond the course material.

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