We may earn an affiliate commission when you visit our partners.
GameDev.tv Team and Bram Williams

Learn how to get the most out of the new Godot 4 game engine by making cool 3D video games.

We take you through the fundamentals and key concepts of Godot. You’ll use Godot’s built-in scripting language, GDScript, to create interesting game mechanics.

You’ll learn how to build 3D levels, environments, character controllers, enemies, and a host of other essential game objects. And you’ll animate your game with Tweens, AnimationPlayers and even Shaders.

You’ll create 3, yes 3. , awesome games in Godot 4…

Read more

Learn how to get the most out of the new Godot 4 game engine by making cool 3D video games.

We take you through the fundamentals and key concepts of Godot. You’ll use Godot’s built-in scripting language, GDScript, to create interesting game mechanics.

You’ll learn how to build 3D levels, environments, character controllers, enemies, and a host of other essential game objects. And you’ll animate your game with Tweens, AnimationPlayers and even Shaders.

You’ll create 3, yes 3. , awesome games in Godot 4…

  • Project Boost: Your first 3D Godot Project from the ground up, controlling a rocket with physics to explore levels and avoid obstacles.

  • Barbarian Blaster: a Tower Defence game where you’ll learn a bunch of essential skills for a variety of games like mouse control, enemies, firing projectiles, dealing damage, spawning game objects, making animations and more.

  • Robo Rampage: First Person Shooter game where you’ll learn how to build custom interior levels, enemies with AI and polish off your 3D game dev skills.

Whether you’re a complete beginner or have dabbled in Godot before, this course will have something 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.

Godot 4 is an amazing engine and this course is the perfect place to dive into it.

Get in early for this highly anticipated and much requested course. The course is still in development, with the first two projects (10+hrs of content) already live. More awesome content is being added on a regular basis. So don't delay, jump in now.

Enroll now

What's inside

Learning objectives

  • Get the most out of the new godot 4 game engine by making 3d video games
  • Make 3 different awesome games, while learning the fundamentals and key concepts of godot 4
  • Learn key concepts of godot such as using nodes, scenes, scripting & signals
  • Learn how to program using gdscript, godot’s tailor-made scripting language - ideal for making things quickly.
  • Learn how to animate your game with tweens, animationplayers and even shaders!
  • Learn how to build 3d levels, environments, character controllers, enemies, and a host of other essential game objects.

Syllabus

Introduction & Setup

In this video (objectives)…

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

Read more

In this video (objectives)…

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

In this video (objectives)…

  1. Download the latest or specific engine version, unzip the folder, and open Godot for the first time.

In this video (objectives)…

  1. Create your first project and make sure things are up and running seamlessly right out of the gate.

In this video (objectives)…

  1. Let’s take a moment and explore some of Godot’s basically editor functionality.

In this video (objectives)…

  1. Learn about saving scenes and running the game.

In this video (objectives)…

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

Project Boost

In this video (objectives)…

  1. An introduction to the project and what you will be making.

In this video (objectives)…

  1. Make a player, run the game, and print “Hello World”.

In this video (objectives)…

  1. Intro to variables, ready functions, and print statements.

In this video (objectives)…

  1. Create a script to rotate and move the player’s rocket.

In this video (objectives)…

  1. Make the level out of CSGShapes to give us a basic environment to work with.

In this video (objectives)…

  1. Add the player to the blockout level and finish setting up the camera and environment.

In this video (objectives)…

  1. Convert the player into a RigidBody3D and control it with forces.

In this video (objectives)…

  1. Remap some of our input to more intuitive controls.

In this video (objectives)…

  1. Detect RigidBody collisions with signals and identify bodies with Groups.

In this video (objectives)…

  1. Replace ‘magic numbers’ with variables and control them from the inspector.

In this video (objectives)…

  1. Use functions and get_tree() to respawn when crashing.

In this video (objectives)…

  1. Making two new levels and using the landing pads to load them.

In this video (objectives)…

  1. Use tweens to sequence and delay function calls.

In this video (objectives)…

  1. Use the AnimatableBody3D node and Tweens to create moving obstacles for the player to dodge.

In this video (objectives)…

  1. Use the AudioStreamPlayer node to play one off sound effects when the player crashes and completes levels.

In this video (objectives)…

  1. Use the AudioStreamPlayer 3D and else statements to play sounds when the player is boosting.

In this video (objectives)…

  1. Learning how to use the GPUParticles3D node and control its emitting property for the ships boosters.

In this video (objectives)…

  1. Learn how to use one shot particles for an explosion and to show the player has reached the goal.

In this video (objectives)…

  1. Use the MeshInstance3D node and a variety of shapes to customize your player rocket.

In this video (objectives)…

  1. Saving and reusing the StandardMaterial3D node to color in the player ship.

In this video (objectives)…

  1. Learning to use Constructive Solid Geometry to build walls and background objects for our levels.

In this video (objectives)…

  1. Improving the WorldEnvironment DirectionalLight3D and adding Omnilights to improve the levels appearance.

In this video (objectives)…

  1. Learn how to create files your players can run by downloading templates and exporting the project.

In this video (objectives)…

  1. A congratulations and a selection of directions you could take the project in going forwards.

Barbarian Blaster

In this video (objectives)…

  1. Create a new project and set up the floor and camera.

In this video (objectives)…

  1. Create a MeshLibrary to start placing meshes in a grid with the GridMap node.

In this video (objectives)…

  1. Learn how to customize a Gridmap to fit your MeshLibrary and start building a level with them both.

In this video (objectives)…

  1. Learning how to create 3D paths for the enemy to follow.

In this video (objectives)…

  1. Making an enemy that can walk along our Path3D with a simple script.

In this video (objectives)…

  1. Connecting the enemies to a home base so they can deal damage at the end of the path.

In this video (objectives)…

  1. Learn how to track the base’s health and show it to the player with the Label3D node.

In this video (objectives)…

  1. Using properties to create setter and getter functions. Ensuring code is run when the base’s health changes.

In this video (objectives)…

  1. Learning how to compose complex strings and create colors in scripts to improve the health label.

In this video (objectives)…

  1. Learn how to use the Camera3D and the RayCast3D node to find out what objects in the game world the player is clicking on.

In this video (objectives)…

  1. Getting familiar with GridMap functions to change tiles dynamically when the player hovers over them with the mouse.

In this video (objectives)…

  1. Learning how to change the mouse cursor and detecting mouse clicks from the player.

In this video (objectives)…

  1. Creating a scene for defensive towers and learning how to spawn new scenes in code.

In this video (objectives)…

  1. Connecting the RayPickerCamera and the TurretManager, so we can place the new turret scene onto tiles in the GridMap.

In this video (objectives)…

  1. Learning about the Area3D and making the turrets able to fire them in a given direction.

In this video (objectives)…

  1. Introducing the Timer node as a tool for making events happen at specific times. This lets us fire the turrets at regular intervals.

In this video (objectives)…

  1. Using the look_at function and the towers basis, to aim the turrets at enemies on the Path3D.

In this video (objectives)…

  1. Using the Area3D node and variables to give the enemies health that is whittled away by projectiles until they are defeated.

In this video (objectives)…

  1. Learning how to use loops to identify the best target for each turret.

In this video (objectives)…

  1. Ung what we have learned from spawning projectiles to spawn endless waves of enemies.

In this video (objectives)…

  1. Introducing Control nodes to create user interfaces. Adding a label to track the players gold count and positioning it with a container.

In this video (objectives)…

  1. Finalizing the bank, making the player earn gold when they defeat enemies, and making them spend gold in order to buy turrets.

In this video (objectives)…

  1. Introducing the curve resource and using timers to increase the difficulty of our level over time.

In this video (objectives)…

  1. Building on the DifficultyManager so it also increases the enemy health over time, and using custom signals to stop the waves of enemies.

In this video (objectives)…

  1. Using the TreeExited signal to check when the player has won the game.

In this video (objectives)…

  1. Building a User Interface for when the player wins the game, letting them restart and quit. Introducing a variety of essential Control nodes and Containers.

In this video (objectives)…

  1. Rewarding the player with stars based on their performance in the level.

In this video (objectives)…

  1. Learning how to use GLTF and GLB files to add premade meshes into your games. Then using them to build the final turrets and home base.

In this video (objectives)…

  1. Adding rock and tree meshes to the MeshLibrary to fill out the level and give more control over the environment with the GridMap.

In this video (objectives)…

  1. Learning how to use bundled AnimationPlayer nodes within GLTF/ GLB files to add an animated barbarian enemy.

In this video (objectives)…

  1. Tweaking Project Settings, adding fonts, and using exported variables to balance the play experience.

In this video (objectives)…

  1. A congratulations and a selection of directions you could take the project in going forward.

Robo Rampage

In this video (objectives)…

  1. Introducing the topics we will cover while building the retro FPS Robo Rampage!

In this video (objectives)…

  1. Using template scripts to quickly get a player character running and jumping.

In this video (objectives)…

  1. Introducing InputEvents and using them to move the camera.

In this video (objectives)…

  1. Vertical camera motion and using interpolate_with to smooth the camera.

In this video (objectives)…

  1. Learning how to use the _draw() virtual function and other draw functions to create custom 2D shapes for a reticle.

In this video (objectives)…

  1. Using projectile motion to make our jumping calculations more precise.

In this video (objectives)…

  1. Using CSGShapes to fill out the play area and make a sandbox to test new features.

In this video (objectives)…

  1. Introducing the NavigationServer, regions, and agents for enemy AI and navigating 3D space.

In this video (objectives)…

  1. Combining our navigation path and enemy movement script to make the enemy pursue the player.

In this video (objectives)…

  1. Making the enemies face the way they are moving and attack the player when they get within range.

In this video (objectives)…

  1. Adding a weapon mesh to the player and learning about scene inheritance to create a reusable weapon scene.

In this video (objectives)…

  1. Adding recoild to the weapon to show when it is firing as well as adding a RayCast3D to detect what the player is shooting at.

In this video (objectives)…

  1. Adding hitpoints to the player and enemy and adding logic to defeat enemies and handle the player losing.

In this video (objectives)…

  1. Learning how to create your own particles for muzzle flash with a ParticleProcessMaterial.

In this video (objectives)…

  1. Learning to dynamically create and delete particles wherever the player has shot.

In this video (objectives)…

  1. Learning how to use the SubViewport and SubViewportContainer nodes to create new views on the game world. Making the weapons visible even when clipping through walls.

In this video (objectives)…

  1. Adding a red flash animation to the player reinforcing whenever they take damag

In this video (objectives)…

  1. Adding a game over menu when the player runs out of health so they can either restart the game or quit.

In this video (objectives)…

  1. Introducing Visual shaders as a way of creating visual effects with graphs and code.

In this video (objectives)…

  1. Adding a second weapon and the ability to fire weapons semi-automatically.

In this video (objectives)…

  1. Adding controls for the player to select weapons with the number keys.

In this video (objectives)…

  1. Learning more about arrays to cycle through weapons with the mouse wheel.

In this video (objectives)…

  1. Using enums and dictionaries to manage how much ammo the player has and whether they can shoot.

In this video (objectives)…

  1. Adding a Label so the player can see how much ammo they have left.

In this video (objectives)…

  1. Adding Area3D pickups to replenish the players used ammo.

In this video (objectives)…

  1. Adding an idle animation to the ammo pickups and making a Fresnel shader for some visual juice.

In this video (objectives)…

  1. Letting the player zoom in their view by holding the right mouse button.

In this video (objectives)…

  1. Learning to combine CSG shapes to build interior levels.

In this video (objectives)…

  1. Using what we have learnt about CSG shapes to build a level from a floorplan.

In this video (objectives)…

  1. Adding the player, enemies and pickups into the main level.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides a comprehensive introduction to Godot 4, covering fundamental concepts like Nodes, Scenes, Scripting, and Signals, which are essential for building a strong foundation in game development
Teaches GDScript, Godot's tailor-made scripting language, which allows for rapid prototyping and efficient game development, making it ideal for both beginners and experienced developers
Explores animation techniques using Tweens, AnimationPlayers, and Shaders, empowering developers to create visually appealing and dynamic game experiences within the Godot 4 engine
Covers the creation of various game elements, including 3D levels, environments, character controllers, and enemies, providing a holistic approach to game development using Godot 4
Requires learners to download and install Godot 4, which may pose a challenge for those with limited technical experience or older computer systems, as newer software often demands more resources
Focuses on Godot 4, so learners should be aware that while Godot is open source and actively developed, its community and asset ecosystem may not be as extensive as those of more established engines

Save this course

Save Complete Godot 3D: Develop Your Own 3D Games Using Godot 4 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 Complete Godot 3D: Develop Your Own 3D Games Using Godot 4 with these activities:
Review GDScript Fundamentals
Reinforce your understanding of GDScript syntax, variables, data types, and control flow before diving into the course projects. This will make it easier to follow along with the code examples and implement your own game mechanics.
Show steps
  • Read the official GDScript documentation.
  • Complete a basic GDScript tutorial.
  • Write small scripts to practice syntax.
Create a Simple 3D Scene
Practice building a basic 3D scene in Godot 4 using nodes, meshes, and materials. This will help you become familiar with the Godot editor and the process of creating 3D environments.
Show steps
  • Create a new Godot 4 project.
  • Add a MeshInstance3D node.
  • Assign a mesh and material to the node.
  • Adjust the lighting and camera.
Read 'Godot Engine Game Development Projects'
Explore a book that provides a broader view of game development in Godot. This will help you understand different approaches and techniques, and inspire you to create your own unique games.
Show steps
  • Obtain a copy of the book.
  • Read through the relevant chapters.
  • Experiment with the code examples.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Document Your Learning Journey
Maintain a blog or journal to document your progress, challenges, and solutions throughout the course. This will help you reflect on your learning and solidify your understanding of the concepts.
Show steps
  • Choose a platform for your blog or journal.
  • Write regular entries about your learning experience.
  • Share your insights and discoveries.
GDScript Coding Challenges
Sharpen your GDScript skills by completing coding challenges on platforms like Edabit or HackerRank. This will help you improve your problem-solving abilities and become more proficient in GDScript.
Show steps
  • Find a website with GDScript challenges.
  • Solve a set number of challenges each week.
  • Review your solutions and learn from mistakes.
Contribute to a Godot Asset Library Project
Contribute to an open-source project in the Godot Asset Library. This will give you experience working with a team, collaborating on code, and contributing to the Godot community.
Show steps
  • Find an open-source project in the Asset Library.
  • Fork the repository and make your changes.
  • Submit a pull request with your contributions.
Portfolio: Showcase Your Godot Projects
Create a portfolio website or online showcase to display your Godot projects. This will help you demonstrate your skills and attract potential employers or collaborators.
Show steps
  • Choose a platform for your portfolio.
  • Gather screenshots and videos of your projects.
  • Write descriptions of your projects and your role.
  • Publish your portfolio online.

Career center

Learners who complete Complete Godot 3D: Develop Your Own 3D Games Using Godot 4 will develop knowledge and skills that may be useful to these careers:
Hobbyist Game Developer
A Hobbyist Game Developer creates games for personal enjoyment or small-scale projects, and this course is perfect for this kind of developer. The course provides skills needed to create entire games using Godot 4 including scripting with GDScript, creating 3D levels, implementing character controllers, and handling game animations. The course does this through multiple hands-on projects, which are an excellent way to learn and practice these skills. Additionally, this course can help a hobbyist build a portfolio of different types of games.
Indie Game Developer
An Indie Game Developer works on smaller scale games, often independently or with a small team, and this course can be a great start to this career path. This role often requires proficiency in various aspects of game creation, including programming, level design, and art. The course projects help build skills in all of these areas. The course teaches you the essentials of Godot, which is a fantastic tool for an indie developer. By creating three full games, the course helps an indie game developer launch their career and create an engaging game product.
Game Developer
A Game Developer uses tools like game engines to design and build video games, and this course provides an excellent introduction to the Godot game engine. This role involves scripting game mechanics, creating levels, implementing character controllers, and adding animations. The course emphasizes hands-on projects, which mirror the tasks involved in professional game development, such as creating three complete games. The course provides an in-depth look at the fundamentals of game development using Godot 4, with experience in scripting with GDScript, animation, and level design.
Gameplay Programmer
A Gameplay Programmer writes the code that brings game mechanics to life, and this course provides the perfect introduction to this role. The course focuses on coding in GDScript to create interactive elements such as character movement, enemy AI, and combat systems. This course offers experience building these game mechanics through real projects. The course is designed to give a programmer the skills they need to develop complex and engaging gameplay experiences, making it especially helpful for this career.
Educational Game Developer
An Educational Game Developer designs and builds games that are used for educational purposes. This course's emphasis on creating interactive 3D games using Godot, along with its focus on scripting, level design, and animation, makes it very relevant for this role. Many educational games are simulations or use game mechanics similar to other game types. This course includes projects involving character control, enemy AI, and user interfaces, all of which are essential for creating engaging educational games.
Level Designer
A Level Designer creates the environments and stages in video games, and this course offers practical skills necessary for a career in the field. The course teaches how to build 3D levels and environments using the Godot engine. The course also covers designing multiple games with different goals and layouts for them using nodes, scenes, and scripting. The knowledge of physics, and camera controls will be particularly useful to someone wanting to become a level designer.
Game Designer
A Game Designer conceptualizes the overall vision of a video game, including its mechanics, story, and gameplay, and this course provides skills to create game mechanics, levels, and controllers directly. While a game designer may not always do the coding themselves, the course offers a hands on approach with skills to program with GDScript. The course helps a game designer gain a deeper understanding of the game development process. Through the course, a game designer will learn game development with Godot, and that experience with development can be very useful in making design decisions.
Mobile Game Developer
A Mobile Game Developer focuses on creating games for mobile devices, and this course can help this developer learn the fundamentals of game development using Godot. The course teaches skills in using scripting, level building, and animation. This course can be helpful for learning game development, and can help a prospective mobile game developer learn the basics of level design and game mechanics.
Virtual Reality Developer
A Virtual Reality Developer creates immersive experiences using virtual reality technologies, and this course's focus on 3D game development is directly relevant. Godot is a game engine that can be used to create virtual reality applications. The course teaches the basics of 3D level design, character controllers, and animations that VR applications use. Because the course introduces nodes, scenes, and scripting, it can provide a useful foundation in a virtual reality role.
Junior Programmer
A Junior Programmer is often an entry-level role in software development, and this course provides experience in the Godot game engine, and its programming language, GDScript, which can be a good introduction to programming concepts. This role often involves coding, testing, and debugging software. The course introduces foundational programming skills by building three different games. This course provides a practical foundation for anyone starting a career as a Junior Programmer who wants experience in a modern scripting language.
Software Engineer
A Software Engineer develops software and applications. While this course does not focus on general software development, it can be useful to learn a programming language like GDScript and the logic of game development. The course's focus on scripting, debugging, and creating projects will be useful in learning programming concepts. This course serves as an introduction to development, and may be particularly useful for a software engineer who wants experience in game development.
Interactive Designer
An Interactive Designer creates engaging experiences for a variety of digital platforms, and while this course focuses on video games, the skills in creating interactive elements, animations, and environments are very useful. The course provides experience in creating character controllers, user interfaces, and visual effects. Godot is a powerful tool for creating interactive experiences, and the course can be a useful way to get into this role. This course helps an interactive designer to understand the game development process, and provides a good foundation in visual and interactive design.
Animator
An Animator creates the movement and visual effects for characters and objects in video games. While this role can include character design and modeling, this course provides practical experience with animating game elements using Godot engine tools like Tweens, and AnimationPlayers. The course provides information on how to use shaders, which can be used for special effects as well as animation. This course will help an animator to understand the game development process at a deeper level, giving a better appreciation for how their work will be implemented.
Technical Artist
A Technical Artist bridges the gap between art and programming in video game development. While this role typically requires an understanding of art creation tools, this course provides a strong foundation in the technical aspects of game development using Godot 4 and its built in scripting language, GDScript. This course also provides skills in animations with Tweens, and AnimationPlayers, and even Shaders. In this role, the course knowledge of creating game mechanics will be very useful and provide a fuller understanding of the game process.
Simulation Developer
A Simulation Developer creates software that emulates real-world systems or scenarios. This course may be useful towards a career as a simulation developer, especially if the simulation involves 3D environments and interactive elements. While this course focuses on game development, it teaches scripting, animation, and the use of physics using Godot's engine which all can be applied to simulation development. The course can help a simulation developer gain an understanding of interactive simulations which can be useful in their career.

Featured in The Course Notes

This course is mentioned in our blog, The Course Notes. Read one article that features Complete Godot 3D: Develop Your Own 3D Games Using Godot 4:

Reading list

We've selected one 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 Complete Godot 3D: Develop Your Own 3D Games Using Godot 4.
Provides practical examples of building different types of games in Godot. It covers a range of topics, including 2D and 3D game development, user interfaces, and game mechanics. While the course focuses on Godot 4, this book can still be valuable for understanding core concepts and project structure. It serves as a useful reference for expanding your 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