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…
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.
In this video (objectives)…
Welcome to the course! Bram 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)…
Download the latest or specific engine version, unzip the folder, and open Godot for the first time.
In this video (objectives)…
Create your first project and make sure things are up and running seamlessly right out of the gate.
In this video (objectives)…
Let’s take a moment and explore some of Godot’s basically editor functionality.
In this video (objectives)…
Learn about saving scenes and running the game.
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, we show you how to access that content.
In this video (objectives)…
An introduction to the project and what you will be making.
In this video (objectives)…
Make a player, run the game, and print “Hello World”.
In this video (objectives)…
Intro to variables, ready functions, and print statements.
In this video (objectives)…
Create a script to rotate and move the player’s rocket.
In this video (objectives)…
Make the level out of CSGShapes to give us a basic environment to work with.
In this video (objectives)…
Add the player to the blockout level and finish setting up the camera and environment.
In this video (objectives)…
Convert the player into a RigidBody3D and control it with forces.
In this video (objectives)…
Remap some of our input to more intuitive controls.
In this video (objectives)…
Detect RigidBody collisions with signals and identify bodies with Groups.
In this video (objectives)…
Replace ‘magic numbers’ with variables and control them from the inspector.
In this video (objectives)…
Use functions and get_tree() to respawn when crashing.
In this video (objectives)…
Making two new levels and using the landing pads to load them.
In this video (objectives)…
Use tweens to sequence and delay function calls.
In this video (objectives)…
Use the AnimatableBody3D node and Tweens to create moving obstacles for the player to dodge.
In this video (objectives)…
Use the AudioStreamPlayer node to play one off sound effects when the player crashes and completes levels.
In this video (objectives)…
Use the AudioStreamPlayer 3D and else statements to play sounds when the player is boosting.
In this video (objectives)…
Learning how to use the GPUParticles3D node and control its emitting property for the ships boosters.
In this video (objectives)…
Learn how to use one shot particles for an explosion and to show the player has reached the goal.
In this video (objectives)…
Use the MeshInstance3D node and a variety of shapes to customize your player rocket.
In this video (objectives)…
Saving and reusing the StandardMaterial3D node to color in the player ship.
In this video (objectives)…
Learning to use Constructive Solid Geometry to build walls and background objects for our levels.
In this video (objectives)…
Improving the WorldEnvironment DirectionalLight3D and adding Omnilights to improve the levels appearance.
In this video (objectives)…
Learn how to create files your players can run by downloading templates and exporting the project.
In this video (objectives)…
A congratulations and a selection of directions you could take the project in going forwards.
In this video (objectives)…
Create a new project and set up the floor and camera.
In this video (objectives)…
Create a MeshLibrary to start placing meshes in a grid with the GridMap node.
In this video (objectives)…
Learn how to customize a Gridmap to fit your MeshLibrary and start building a level with them both.
In this video (objectives)…
Learning how to create 3D paths for the enemy to follow.
In this video (objectives)…
Making an enemy that can walk along our Path3D with a simple script.
In this video (objectives)…
Connecting the enemies to a home base so they can deal damage at the end of the path.
In this video (objectives)…
Learn how to track the base’s health and show it to the player with the Label3D node.
In this video (objectives)…
Using properties to create setter and getter functions. Ensuring code is run when the base’s health changes.
In this video (objectives)…
Learning how to compose complex strings and create colors in scripts to improve the health label.
In this video (objectives)…
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)…
Getting familiar with GridMap functions to change tiles dynamically when the player hovers over them with the mouse.
In this video (objectives)…
Learning how to change the mouse cursor and detecting mouse clicks from the player.
In this video (objectives)…
Creating a scene for defensive towers and learning how to spawn new scenes in code.
In this video (objectives)…
Connecting the RayPickerCamera and the TurretManager, so we can place the new turret scene onto tiles in the GridMap.
In this video (objectives)…
Learning about the Area3D and making the turrets able to fire them in a given direction.
In this video (objectives)…
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)…
Using the look_at function and the towers basis, to aim the turrets at enemies on the Path3D.
In this video (objectives)…
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)…
Learning how to use loops to identify the best target for each turret.
In this video (objectives)…
Ung what we have learned from spawning projectiles to spawn endless waves of enemies.
In this video (objectives)…
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)…
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)…
Introducing the curve resource and using timers to increase the difficulty of our level over time.
In this video (objectives)…
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)…
Using the TreeExited signal to check when the player has won the game.
In this video (objectives)…
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)…
Rewarding the player with stars based on their performance in the level.
In this video (objectives)…
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)…
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)…
Learning how to use bundled AnimationPlayer nodes within GLTF/ GLB files to add an animated barbarian enemy.
In this video (objectives)…
Tweaking Project Settings, adding fonts, and using exported variables to balance the play experience.
In this video (objectives)…
A congratulations and a selection of directions you could take the project in going forward.
In this video (objectives)…
Introducing the topics we will cover while building the retro FPS Robo Rampage!
In this video (objectives)…
Using template scripts to quickly get a player character running and jumping.
In this video (objectives)…
Introducing InputEvents and using them to move the camera.
In this video (objectives)…
Vertical camera motion and using interpolate_with to smooth the camera.
In this video (objectives)…
Learning how to use the _draw() virtual function and other draw functions to create custom 2D shapes for a reticle.
In this video (objectives)…
Using projectile motion to make our jumping calculations more precise.
In this video (objectives)…
Using CSGShapes to fill out the play area and make a sandbox to test new features.
In this video (objectives)…
Introducing the NavigationServer, regions, and agents for enemy AI and navigating 3D space.
In this video (objectives)…
Combining our navigation path and enemy movement script to make the enemy pursue the player.
In this video (objectives)…
Making the enemies face the way they are moving and attack the player when they get within range.
In this video (objectives)…
Adding a weapon mesh to the player and learning about scene inheritance to create a reusable weapon scene.
In this video (objectives)…
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)…
Adding hitpoints to the player and enemy and adding logic to defeat enemies and handle the player losing.
In this video (objectives)…
Learning how to create your own particles for muzzle flash with a ParticleProcessMaterial.
In this video (objectives)…
Learning to dynamically create and delete particles wherever the player has shot.
In this video (objectives)…
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)…
Adding a red flash animation to the player reinforcing whenever they take damag
In this video (objectives)…
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)…
Introducing Visual shaders as a way of creating visual effects with graphs and code.
In this video (objectives)…
Adding a second weapon and the ability to fire weapons semi-automatically.
In this video (objectives)…
Adding controls for the player to select weapons with the number keys.
In this video (objectives)…
Learning more about arrays to cycle through weapons with the mouse wheel.
In this video (objectives)…
Using enums and dictionaries to manage how much ammo the player has and whether they can shoot.
In this video (objectives)…
Adding a Label so the player can see how much ammo they have left.
In this video (objectives)…
Adding Area3D pickups to replenish the players used ammo.
In this video (objectives)…
Adding an idle animation to the ammo pickups and making a Fresnel shader for some visual juice.
In this video (objectives)…
Letting the player zoom in their view by holding the right mouse button.
In this video (objectives)…
Learning to combine CSG shapes to build interior levels.
In this video (objectives)…
Using what we have learnt about CSG shapes to build a level from a floorplan.
In this video (objectives)…
Adding the player, enemies and pickups into the main level.
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.