Discovering Godot: Make Video Games in Python-like GDScript
4.6 (3,032 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
12,862 students enrolled

Discovering Godot: Make Video Games in Python-like GDScript

Game development with Godot Engine 3.0 & 3.1 :: Learn to code in Python-like GDScript
Bestseller
4.6 (3,032 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
12,862 students enrolled
Last updated 8/2020
English
English [Auto]
Current price: $69.99 Original price: $99.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 44.5 hours on-demand video
  • 3 articles
  • 15 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Create video games in an object-oriented environment.
  • Write code in GDScript, and transfer your knowledge to Python.
  • Program compelling 2D word, platform & stealth games.
  • How Godot can make your game idea come to life - for free.
  • Re-use any existing C# knowledge in a user-friendly engine.
  • How to code from scratch a fun-way by making games.
Course content
Expand all 224 lectures 44:26:04
+ First Steps in Godot 3.1
10 lectures 01:02:59

In this video (objectives)…

1 Who we are 1 Why we picked Godot 1 Who is this course for

After watching (learning outcomes)…

Decide if this course is for you!

(Unique Video Reference: 1_FS_GDT)

Preview 02:01

In this video (objectives)…

Where to get help

Introduce yourself!

After watching (learning outcomes)…

Find community resources and learning support

Preview 03:59

In this video (objectives)…

Figure out which version of Godot you want

Pick your download method

After watching (learning outcomes)…

You'll have installed the best version of Godot for you onto your PC!

Installing Godot 3.1 on a PC
04:16
Hello, Godot!
23:17

In this video (objectives)…

Where to get help Introduce yourself!

After watching (learning outcomes)…

Find community resources and learning support

(Unique Video Reference: 2_FS_GDT)

Preview 03:40

In this video (objectives)…

Figure out which version of Godot you want Pick your download method

After watching (learning outcomes)…

You'll have installed the best version of Godot for you onto your PC!

(Unique Video Reference: 3_FS_GDT)

Installing Godot on a PC
05:38

In this video (objectives)…

1 Figure out which version of Godot you want 2 Pick your download method

After watching (learning outcomes)…

You'll have installed the best version of Godot for you onto your Mac!

(Unique Video Reference: 4_FS_GDT)

Installing Godot on a Mac
04:43

In this video (objectives)…

Start a New Project Print "Hello World!" to the console concatenate a string variable

After watching (learning outcomes)…

You'll be able to start a new project, create a script and print information to the console.

(Unique Video Reference: 5_FS_GDT)

Hello Godot!
14:19
Check Your Understanding 1.1
4 questions
Yann & Ben's Top 3 Reasons To Love Godot
00:14

In this video (objectives)…

A quick video on how to keep your momentum going in this course

After watching (learning outcomes)…

Maximize your productivity while you learn!

(Unique Video Reference: 6_FS_GDT)

Section 1 Wrap Up
00:52
+ Loony Lips 3.1 - Discovering GDScript
12 lectures 02:25:18

In this video (objectives)…

1 Discuss the game we're making

2 Examine the features we'll need to create

After watching (learning outcomes)…

Understand the features and essential experience of the word game we're making

Planning Loony Lips
03:23

In this video (objectives)…

Put all of our plugin words into an array Put wildcards into our story text Merge the new array into the story

After watching (learning outcomes)…

Create arrays, use format strings and create a scalable foundation for Loony Lips!

Preview 16:31

In this video (objectives)…

1 Import assets into Godot

2 Create a background texture

3 Use the Label node to display text to the player

After watching (learning outcomes)…

Learn how to resize the player's viewport, import assets into Godot, create a background texture, use RichTextLabel nodes and control them from the script.

Label - Showing Text to the Player
16:29

In this video (objectives)…

1 Create a LineEdit Node

2 Connect Signals

3 Move between functions

After watching (learning outcomes)…

Take the player's input and change the displayed text to match it.

LineEdit - Getting Text From the Player
18:15

In this video (objectives)…

  1. Add a textured button

  2. Add a label for the button

  3. Make sure the button and label align neatly

  4. Have the button work like pressing “enter” in PlayerText

After watching (learning outcomes)…

Take the player's input and change the displayed text to match it.

Buttons!
09:56

In this video (objectives)…

1 Append player input to an array

2 Use one array's size to find a position in another array

3 Prompt the player based on how many words they've already entered

4 Use an if/else condition to check if the player needs to be asked another prompt

After watching (learning outcomes)…

Prompt the player to enter the right kind of word and insert the player's inputs into the story

Appending Arrays and if Conditions
19:43

In this video (objectives)…

  1. remove a node from the scene tree with queue_free()

  2. restart the game with reload_current_scene()

  3. learn to use return to get information from a function to the one that called it

After watching (learning outcomes)…

Allow the player to restart the game once the story's done!

queue_free() and reload_current_scene()
11:08

In this video (objectives)…

  1. Create dictionaries

  2. Nest Dictionaries

  3. use ''randomize()'' and ''randi()'' to generate random integers

After watching (learning outcomes)…

Create a template system for Loony Lips and pick random stories from the template by unleashing the awesome power of dictionaries.

Dictionaries - Adding a Story Template
17:17

In this video (objectives)…

  1. Make the Loony Lips script less cluttered

  2. Create a StoryBook node

  3. Make each story a separate child of StoryBook

  4. Get each story to use the same script

After watching (learning outcomes)…

Using the Scene tree to manage objects in your game

StoryBook Option 1: Story Objects
14:40

In this video (objectives)…

  1. Use JSON to separate data from code

  2. use file()

After watching (learning outcomes)…

Using JSON to manage data in your game

StoryBook Option 2: JSON
12:23
Wrapping Up Loony Lips
01:18

In this video (objectives)…

  1. Download an export template

  2. Export and run Loony Lips as an executable

After watching (learning outcomes)…

How to export your game!

Exporting Loony Lips
04:15
+ Hoppy Days 3.1 - Discovering the Engine
20 lectures 03:53:24

In this video (objectives)

  1. Discuss the game we're making

  2. Examine the features we'll need to create

After watching (learning outcomes)...

Plan out the central mechanics and feeling of our 2D platform game!

Planning Hoppy Days
01:38

In this video (objectives)…

  1. Download and Import the game assets 

  2. Create a Scripts folder 

  3. Tour the file structure for Hoppy Days

After watching (learning outcomes)…

Understand how to plan the file system for a new project

Downloading the Assets
04:32

In this video (objectives)…

1 Create a KinematicBody2D character 2 Define custom player inputs 3 Move the character left and right using player inputs

After watching (learning outcomes)…

Know the different kinds of PlayerBody2D nodes

Understand when to use move_and_collide() and move_and_slide() 

How to use and or not in if statements

PhysicsBody2D - Making a Character
17:40

In this video (objectives)…

1 Instance a scene 2 Apply gravity to the player 3 Allow the player to jump

After watching (learning outcomes)…

Learn how to instance a scene, change the main scene of the game, make the player fall and let the player jump!

Make Bunny Jump
16:38

In this video (objectives)…

1 Create an AnimatedSprite node

2 Set up animations

3 Call animations based on which way the player is going

4 Flip the sprite to match the direction to player is heading in

After watching (learning outcomes)…

Learn about AnimatedSprite nodes, how to set up and call animations in them and how to flip the sprite in the script

Preview 09:27

In this video (objectives)…

1 Move the animation logic to the AnimatedSprite node 

2 Explore the concept of Elegant Code

After watching (learning outcomes)…

Understand the principle of one script being in charge of one thing

Reformatting - Elegance in Coding
11:45

In this video (objectives)…

1 Create a modular level with Tilemap

After watching (learning outcomes)…

Learn the awesome power of Tilemaps

Tilemaps - Making a Level
15:07

In this video (objectives)…

Stop Bunny from floating along the ceiling

After watching (learning outcomes)…

How to use is_on_ceiling()

is_on_ceiling()
05:07

In this video (objectives)…

1 Create a ParralaxBackground node 2 Make multiple ParralaxLayer nodes 3 Tweak the values to fit our game

After watching (learning outcomes)…

Learn the secrets of Parallax Background in Godot!

Parallax Backgrounds
10:57

In this video (objectives)…

1 Create a Game Over Screen

2 Trigger Game Over when Bunny falls too far

3 Allow the player to start again

After watching (learning outcomes)…

Create a game over screen and get a brief introduction to control nodes!

The Game Over Screen
11:28

In this video (objectives)…

1 Make an Area2D 

2 Instance a Spike Scene 

3 Make the level challenging

After watching (learning outcomes)…

How to use Area2D to make level hazards

Area2D - Making Spike Hazards
14:45

In this video (objectives)…

1 Add background music to our game

2 Add sound effects for jumping and pain

After watching (learning outcomes)…

Learn to use AudioStreamPlayer nodes!

AudioStreamPlayer - Bring the Noise
11:14

In this video (objectives)…

1 Create Jump Pads

2 Use a Timer node to reset Jump Pads

After watching (learning outcomes)…

How to use Timer nodes to trigger events

Adding Jump Pads
13:39

In this video (objectives)…

1 The Single Responsibility Principle 

2 Create a script to handle the game's rules 

3 Call a function from a child node

After watching (learning outcomes)…

Learn the Single Responsibility Principle and how to organize your game around it.

Gamestate.gd
08:57

In this video (objectives)…

1 Use Anchors and Control nodes 

2 Make a flexible GUI 

After watching (learning outcomes)…

Understand the basics of Control nodes and some easy tips for flexible GUI

Information to the Player - Making a GUI
13:55

In this video (objectives)…

1 About the AnimationPlayer Node 

2 Introducing Keyframes 

3 Calling functions in AnimationPlayer

After watching (learning outcomes)…

Use AnimationPlayer to make coins work!

Adding Coins - AnimationPlayer nodes
21:34

In this video (objectives)…

1 Making hurt and jump pads work consistently!

After watching (learning outcomes)…

Burn the bug with fire.

Bug Fixing is_on_floor()
03:34

In this video (objectives)…

1 Create a Spikeman NPC

2 Use AnimationPlayer to bring Spikeman to life

After watching (learning outcomes)…

How to use Animationn Player to create NPC behaviours

Adding NPCs - Enter Spikeman!
11:11

In this video (objectives)…

1 Create an NPC that can fire a projectile

2 Use Raycast2D nodes

3 Check what body is in an Area2D

After watching (learning outcomes)…

How to detect if a player is being aimed at and spawn a projectile at the player

Making the Cloud NPC
18:20

In this video (objectives)…

1 Create a Portal to let Bunny win the game

2 Link the Portal to a Victory scene

3 Decorate the Portal with the Particles2D node

After watching (learning outcomes)…

A quick introduction to the Particles2D node!

Particles and a Portal
11:56
+ Heist Meisters 3.1 - Top down Stealth
38 lectures 07:34:13
Planning Heist Meisters
02:05
Installing Assets for Heist Meisters
03:45
Making a Character Template Scene
07:10
The Player Character
14:57
Autotiles Are Awesome: Bitmasks
14:32
Autotiles Are Awesome II: Collisions
09:30
Better to Light a Candle: Light2D nodes
12:37
Making a Security Camera
12:27
Player Detection 1: Field of View
12:53
Player Detection 2: Line of Sight
12:17
Adding Guards
09:20
Moving Guards 1: Navigation Options
12:32
Moving Guards 2: get_simple_path()
21:51
Adding Furniture
17:47
Nightvision Mode
17:01
Simple Doors
17:53
Keypads
21:34
Locked Doors 1: Extending Scripts
09:14
Locked Doors 2: Wiring Numpads
24:35
Locked Doors 3: Combinations
10:58
Making Computers
14:38
Computers and Combinations
16:20
Labels, Lights and Nightvision
06:27
TextureProgress Nodes
09:52
Suspicious NPCs
08:53
Sneaking Around in a Box
12:31
Highlighting the Player
03:18
Making Disguises Risky
11:28
Boxes and Itemlist
11:32
Grabbing the Loot
08:55
Making a GUI for the Loot
07:55
Adding the Exit
05:36
Adding Polish
14:30
Preparing the Tutorial
10:42
Adding Objective Markers
21:17
Adding Objective Text
15:33
Finishing the Tutorial
05:53

In this video (objectives)…

  1. Join Ben and Yann as they answer some of the common questions on the course so far After watching (learning outcomes)… Hangout with Ben and Yann as we get ready for the next section!

(Unique Video Reference: 10b_LL_GDT)

Instructor Hangout 1
03:55
+ Cubedude Kickabout 3.1 - 3D Local Multiplayer
15 lectures 02:35:10
Planning Cubedude Kickabout
01:38
Installing Assets for Cubedude Kickabout
06:35
Making the Pitch
15:11
Physicsbody Nodes in 3D
07:00
Enter the Cubedude
07:45
Moving Each Player
14:18
Fixing The Pitch
17:45
Better Cubedude Movement
06:57
Functional Goals
06:14
Resetting the Game
14:30
Adding a GUI - 2D in 3D
11:53
Ending the Game
11:06
Adding Awesome - Set Dressing
11:38
Adding Awesome - Audio
07:03
Adding Awesome - Visual Effects
15:37
+ Food Fight 3.1 - More Advanced 3D
11 lectures 01:57:31
Planning Food Fight
02:11
Installing Assets for Food Fight
07:36
Setting up a Play Space
10:34
Player and Character Scenes
19:22
AnimationTree
13:12
Mouselook
11:24
Moving With Mouselook
08:03
Should We Use A Gridmap?
18:22
Food to Fling - Firing a Projectile in 3D
11:40
A Varied Diet - Adding More Food
12:34
Finishing Food
02:33
+ Loony Lips 3.0 (old)
8 lectures 01:46:35

In this video (objectives)…

1 Discuss the game we're making 2 Examine the features we'll need to create

After watching (learning outcomes)…

Understand the features and essential experience of the word game we're making

(Unique Video Reference: 1_LL_GDT)

Planning Loony Lips
04:05

In this video (objectives)…

Put all of our plugin words into an array Put wildcards into our story text Merge the new array into the story

After watching (learning outcomes)…

Create arrays, use format strings and create a scalable foundation for Loony Lips!

(Unique Video Reference: 2_LL_GDT)

Introducing Arrays
11:56

In this video (objectives)…

1 Create a LineEdit Node 2 Create a TextureButton Node 3 Connect Signals 4 Move between functions

After watching (learning outcomes)…

Take the player's input and change the displayed text to match it.

(Unique Video Reference: 4_LL_GDT)

LineEdit - Text From The Player
19:10

In this video (objectives)…

1 Import assets into Godot 2 Create a background texture 3 Use the RichTextLabel node to display text to the plaer

After watching (learning outcomes)…

Learn how to resize the player's viewport, import assets into Godot, create a background texture, use RichTextLabel nodes and control them from the script.

(Unique Video Reference: 3_LL_GDT)

RichTextLabel - Showing Text to the Player
11:52

In this video (objectives)…

1 Append player input to an array 2 Use one array's size to find a position in another array 3 Prompt the player based on how many words they've already entered 4 Use an if/else condition to check if the player needs to be asked another prompt

After watching (learning outcomes)…

Prompt the player to enter the right kind of word and inster the player's inputs into the story

(Unique Video Reference: 5_LL_GDT)

Appending Arrays and "If" conditions
17:29

See how you've grasped the foundational concepts of GDScript

Check Your Understanding 2.1
5 questions

In this video (objectives)…

1 remove a node from the scene tree with queue_free() 2 restart the game with reload_current_scene() 3 learn to use return to get information from a function to the one that called it

After watching (learning outcomes)…

Allow the player to restart the game once the story's done!

(Unique Video Reference: 6_LL_GDT)

queue_free() and reload_current_scene()
09:19

In this video (objectives)…

1 Learn how to write JSON files 2 How to open and parse JSON in GDScript

(Unique Video Reference: 8_LL_GDT)

JSON and File
18:23

In this video (objectives)…

1 Create dictionaries 2 Nest Dictionaries 3 use ''randomize()'' and ''randi()'' to generate random integers

After watching (learning outcomes)…

Create a template system for Loony Lips and pick random stories from the template by unleashing the awesome power of dictionaries.

(Unique Video Reference: 7_LL_GDT)

Dictionaries - Adding a Story Template
14:21
+ Hoppy Days 3.0 (Old)
25 lectures 04:19:43

In this video (objectives)

  1. Discuss the game we're making
  2. Examine the features we'll need to create

After watching (learning outcomes)...

Plan out the central mechanics and feeling of our 2D platform game!

(Unique Video Reference: 1_HD_GDT)

Planning Hoppy Days
02:46

In this video (objectives)…

  1. Download and Import the game assets 
  2. Create a Scripts folder 
  3. Tour the file structure for Hoppy Days

After watching (learning outcomes)…

Understand how to plan the file system for a new project

(Unique Video Reference: 2_HD_GDT)

Downloading the Assets for Hoppy Days
04:10

In this video (objectives)…

1 Create a KinematicBody2D character 2 Define custom player inputs 3 Move the character left and right using player inputs

After watching (learning outcomes)…

Know the different kinds of PlayerBody2D nodes

Understand when to use move_and_collide() and move_and_slide() 

How to use and and not in if statements

(Unique Video Reference: 3_HD_GDT)

PhysicsBody2D - Making a Character
17:00
In this video (objectives)…

1 Create an `AnimatedSprite`` node 2 Set up animations 3 Call animations based on which way the player is going 4 Flip the sprite to match the direction to player is heading in

After watching (learning outcomes)…

Learn about AnimatedSprite nodes, how to set up and call animations in them and how to flip the sprite in the script

(Unique Video Reference: 4_HD_GDT)

AnimatedSprite - Making Bunny Run
07:25
In this video (objectives)…

1 Instance a scene 2 Apply gravity to the player 3 Allow the player to jump

After watching (learning outcomes)…

Learn how to instance a scene, change the main scene of the game, make the player fall and let the player jump!

(Unique Video Reference: 5_HD_GDT)

Jumping
14:06
Quiz 4: Check Your Understanding 3.1
5 questions
In this video (objectives)…

1 Move the animation logic to the AnimatedSprite node 

2 Explore the concept of Elegant Code

After watching (learning outcomes)…

Understand the principle of one script being in charge of one thing

(Unique Video Reference: 6_HD_GDT)

Cleaning Up The Player Code
10:31

In this video (objectives)…

1 Make a Tilemap 

2 Make a Camera2D

After watching (learning outcomes)…

Learn the awesome power of Tilemaps

(Unique Video Reference: 7_HD_GDT)

Tilemaps - Making a Level
14:59

In this video (objectives)…

Stop Bunny from floating along the ceiling

After watching (learning outcomes)…

How to use is_on_ceiling()

(Unique Video Reference: 8_HD_GDT)

is_on_ceiling()
01:54
In this video (objectives)…

1 Create a ParralaxBackground node 2 Make multiple ParralaxLayer nodes 3 Tweak the values to fit our game

After watching (learning outcomes)…

Learn the secrets of Parallax Background in Godot!

(Unique Video Reference: 9_HD_GDT)

Parallax Backgrounds
12:16
In this video (objectives)…

1 Create a Game Over Screen 2 Trigger Game Over when Bunny falls too far 3 Allow the player to start again

After watching (learning outcomes)…

Create a game over screen and get a brief introduction to control nodes!

(Unique Video Reference: 10_HD_GDT)

The Game Over Screen
11:07
Quiz 5: Check Your Understanding 3.2
5 questions

In this video (objectives)…

1 Make an Area2D 

2 Instance a Spike Scene 

3 Make the level challenging

After watching (learning outcomes)…

How to use Area2D to make level hazards

(Unique Video Reference: 11_HD_GDT)

Area2D - Making Spike Hazards
12:53

In this video (objectives)…

1 Use Anchors and Control nodes 

2 Make a flexible GUI 

3 Change the way Hoppy Days deals with Aspect Ratio

After watching (learning outcomes)…

Understand the basics of Control nodes and some easy tips for flexible GUI

(Unique Video Reference: 12_HD_GDT)

Control Nodes - Making a GUI
11:05

In this video (objectives)…

1 The Single Responsibility Principle 

2 Create a script to handle the game's rules 

3 Call a function from a child node

After watching (learning outcomes)…

Learn the Single Responsibility Principle and how to organize your game around it.

(Unique Video Reference: 13_HD_GDT)

GameState.gd
04:15

In this video (objectives)…

1 Create a singleton

2 Move node paths to the singleton

3 Allow nodes to be moved and renamed without breaking anything

After watching (learning outcomes)…

Learn how to use a global script to solve the script referencing problem!

(Unique Video Reference: 14_HD_GDT)

Global Scripts
07:48

In this video (objectives)…

1 Create a starting_lives variable and a lives variable 

2 Update lives when Bunny is hurt 

3 Make Bunny jump up when hurt

After watching (learning outcomes)…

Add lives to our game!

(Unique Video Reference: 15_HD_GDT)

Preview 06:57
Quiz 6: Check Your Understanding 3.3
5 questions

In this video (objectives)…

1 Create an update_GUI() function 

2 Display the current number of lives to the player 

3 Update the GUI when hurt

After watching (learning outcomes)…

Keep the GUI up to date

(Unique Video Reference: 16_HD_GDT)

Updating the GUI
05:05
In this video (objectives)…

1 About the AnimationPlayer Node 

2 Introducing Keyframes 

3 Calling functions in AnimationPlayer

After watching (learning outcomes)…

Use AnimationPlayer to make coins work!

(Unique Video Reference: 17_HD_GDT)

AnimationPlayer - Making Coins
15:04

In this video (objectives)…

1 Giving the player feedback when coins and lives values change 

2 Allowing Bunny to gain extra lives

After watching (learning outcomes)…

Control multiple animations in a single function by calling arguments

(Unique Video Reference: 18_HD_GDT)

Polishing the GUI
12:16
In this video (objectives)…

1 Add background music to our game 2 Add sound effects for jumping, coin pickup and pain

After watching (learning outcomes)…

Learn to use AudioStreamPlayer nodes!

(Unique Video Reference: 19_HD_GDT)

AudioStreamPlayer - Bring the Noise!
11:38
In this video (objectives)…

1 Create Jump Pads 2 Use a Timer node to reset Jump Pads

After watching (learning outcomes)…

How to use Timer nodes to trigger events

(Unique Video Reference: 20_HD_GDT)

Jump Pads
14:33
Quiz 7: Check Your Understanding 3.4
5 questions

In this video (objectives)…

1 Create a Spikeman NPC 2 Use AnimationPlayer to bring Spikeman to life

After watching (learning outcomes)…

How to use Animaitn Player to create NPC behaviours

(Unique Video Reference: 21_HD_GDT)

Enter the Spikeman
14:52

In this video (objectives)…

1 Stop the Player from picking up the same coin multiple times

After watching (learning outcomes)…

How to stop something triggering repeatedly

(Unique Video Reference: 22_HD_GDT)

Fixing the Coin Bug
03:04
In this video (objectives)…

1 Create an NPC that can fire a projectile 2 Use Raycast2D nodes 3 Check what body is in an Area2D

After watching (learning outcomes)…

How to detect if a player is being aimed at and spawn a projectile at the player

(Unique Video Reference: 23_HD_GDT)

Making the Cloud NPC
25:54
In this video (objectives)…

1 Create a Portal to let Bunny win the game 2 Link the Portal to a Victory scene 3 Decorate the Portal with the Particles2D node

After watching (learning outcomes)…

A quick introduction to the Particles2D node!

(Unique Video Reference: 24_HD_GDT)

Particles and a Portal
13:03
Quiz 8: Check Your Understanding 3.5
5 questions
In this video (objectives)…

1 Make sure the Jump Pad works consistently 2 Limit fall speed

After watching (learning outcomes)…

Using clamp() to keep a value within range

(Unique Video Reference: 25_HD_GDT)

Polishing the Game: The Jump Pad Bug
05:02
+ Heist Meisters for Godot 3.0 - Top-Down-Stealth
38 lectures 08:14:41
In this video (objectives)…

1 Discuss the game we're making

2 Examine the features we'll need to create

After watching (learning outcomes)…

Plan out the central mechanics and feeling of our tense, top-down stealth game!

(Unique Video Reference: 1_HM_GDT)

Preview 05:11
In this video (objectives)…

1 Where to find the assets 2 Where to find additional Assets 3 a Quick overview of what's included

After watching (learning outcomes)…

Install the assets we'll need for our game

(Unique Video Reference: 2_HM_GDT)

Installing Assets for Heist Meisters
04:01
In this video (objectives)…

1 Create a Character scene and script as templates

After watching (learning outcomes)…

Understand how to use template scenes and scripts in your games

(Unique Video Reference: 3_HM_GDT)

Making a Character Scene
05:07
In this video (objectives)…

1 Create a Player scene that inherits from the Character scene 2 Create a Player script that extends the Character script 3 make the player character move and look at the mouse position

After watching (learning outcomes)…

Inheriting scenes and extending scripts

(Unique Video Reference: 4_HM_GDT)

The Player Character
11:22
In this video (objectives)…

1 Set up an Autotile to make levels creation easy 2 Add collision to our Autotile 3 Create a basic test level

After watching (learning outcomes)…

Autotiles, Bitmasking and Auto-Collision

(Unique Video Reference: 5_HM_GDT)

Turning a Tilemap into an Autotile
14:43
Test Your Understanding: 4.1
5 questions
In this video (objectives)…

1 Set up a quick and easy tilemap for floors 2 Add floros to our level

After watching (learning outcomes)…

How to work with Tilemaps and Autotiles at the same time

(Unique Video Reference: 6_HM_GDT)

Preview 06:35
In this video (objectives)…

1 Set up a Light2D node 2 Set up Occlusion is autotiles and characters 2 Enable shadows

After watching (learning outcomes)…

How to bring dynamic lighting and shadows into a 2D game

(Unique Video Reference: 7_HM_GDT)

Light2D Nodes
13:29
In this video (objectives)…

1 Create a Security Camera 2 Correctly set up the Torch node for it 3 Add physics layers

After watching (learning outcomes)…

Get the security camera in game ready for the player detection system!

(Unique Video Reference: 8_HM_GDT)

Making a Security Camera
17:17

In this video (objectives)…

1 Set up FOV

2 Calculate the npc's direction

3 Get the direction to the Player

4 Determine if the NPC can see the Player

After watching (learning outcomes)…

Get the first phase of player detection set up!

(Unique Video Reference: 9_HM_GDT)

Player Detection Part 1 - Field of View
16:55

In this video (objectives)…

1 Draw a ray from the NPC to the Player

2 Check what's intersecting the ray

3 Check if the Player is in Range

After watching (learning outcomes)…

Finish off Player detection with Line of Sight and detection range

(Unique Video Reference: 10_HM_GDT)

Player Detection Part 2 - Line of Sight
09:59
Test Your Understanding 4.2
5 questions
In this video (objectives)…

1 Create a Guard Scene that extends the PlayerDetection.gd script 2 Fix the Torch scenes 3 Populate/Recreate our level

After watching (learning outcomes)…

Get some Guards!

(Unique Video Reference: 11_HM_GDT)

Adding Guards
07:48
In this video (objectives)…

1 Setting up Navigation2D 2 Creating a NavigationPolygonInstance 3 Using Position2D nodes to mark destinations

After watching (learning outcomes)…

Get pathfinding set up for HeistMeisters!

(Unique Video Reference: 12_HM_GDT)

Moving Guards Part 1- Navigation2D
10:24
In this video (objectives)…

1 Using get_simple_path 2 Making sure that pathfinding works no matter wher we put our destinations 3 Have the guard move along a pathfinding 4 Have the guard wait at their destinations 5 Troubleshooting guards getting stuck

After watching (learning outcomes)…

Have pathfinding and guard movement fully implemented

(Unique Video Reference: 13_HM_GDT)

Moving Guards Part 2- get_simple_path()
20:31
In this video (objectives)…

1 Setting up a Tilesheet 2 Adding Collision and Occlusion to tiles 3 Rotating Tiles

After watching (learning outcomes)…

Install furniture in out level

(Unique Video Reference: 14_HM_GDT)

Adding Furniture With a Tilesheet
20:29
In this video (objectives)…

1 Set up Nightvision 2 Use an Enum to list possible vision modes 3 Use call_group() to change vision modes

After watching (learning outcomes)…

Enable nightvision mode through enums and the amazing power of groups!

(Unique Video Reference: 15_HM_GDT)

Nightvision Mode
18:26
Test Your Understanding 4.3
5 questions
In this video (objectives)…

1 Set up an NPC Group 2 Use call_group() to have all NPCs switch torches on or off as needed

After watching (learning outcomes)…

Make all torches switch off when the Player is using Nightvision

(Unique Video Reference: 16_HM_GDT)

Turning Off the Lights In Nightvision
09:40
In this video (objectives)…

1 Use an Input_event() function to detect if a player is clicking on a door 2 Only allow players to open a door if in range 3 Set up different logic for NPCs and players using doors 4 Add sound effects to doors

After watching (learning outcomes)…

Create simple doors that open if the player is in range and clicks on them!

(Unique Video Reference: 17_HM_GDT)

Making a Simple Door
16:34
In this video (objectives)…

1 Create a Numberpad as a Popup Node 2 Use Container nodes to organise the Numberpad 3 Use Grid Container to organise the buttons 4 Beautify the Numperpad with a Theme

After watching (learning outcomes)…

Learn the wonder of Themes in Godot!

(Unique Video Reference: 18_HM_GDT)

Beautiful Security - Using Themes
19:55
In this video (objectives)…

1 Fix the bug that causes all doors to open when the level loads 2 Create Locked door that inherits the Door scene and extends the Door scripts 3 Have the Numberpad popup when the player clicks on a locked door

After watching (learning outcomes)…

Simple debugging techniques and how to show and hide Popup nodes

(Unique Video Reference: 19_HM_GDT)

Making a Locked Door Part 1
13:35
In this video (objectives)…

1 Use a for loop to get all the children of ButtonGrid 2 Connect all the buttons to the script with a signal 3 Use the text label of each button as an argument 4 Display the Player's button input 5 Check if the Player's guess is correct

After watching (learning outcomes)…

Wire up the Numberpad to the Locked Door

(Unique Video Reference: 20_HM_GDT)

Making a Locked Door Part 2 - Wiring the Lock
19:41
Test Your Understanding 4.4
5 questions
In this video (objectives)…

1 Have the Locked Door open when the combination is Correct 2 Add sounds to our numberpad

After watching (learning outcomes)…

Make locked doors fully functional and polished!

(Unique Video Reference: 21_HM_GDT)

Making a Locked Door Part 3 - Finishing Off Locked Doors
09:58
In this video (objectives)…

1 Create a node responsible for generating all combinations on a level 2 use return to send the combination to whatever function asked for it

After watching (learning outcomes)…

Take advantage of Godot's Object Orientation to make a node that generates all combinations!

(Unique Video Reference: 22_HM_GDT)

Generating Combinations
08:00
In this video (objectives)…

1 Create a Computer Scene 2 Using find_node() to get a node by name 4 Ask CombinationGenerator for a random combinations 5 Display that combination to the Player in a Popup

After watching (learning outcomes)…

Using a returned value from one script to change the contents of another

(Unique Video Reference: 23_HM_GDT)

Computers and Combinations
21:43
In this video (objectives)…

1 Link computers to individual or multiple locked doors 2 Allow locked doors to open if the player approaches a specific side

After watching (learning outcomes)…

Use signals with an argument to set the combination of one or more locked doors at a time

(Unique Video Reference: 24_HM_GDT)

Linking Computers and Locked Doors
12:19
In this video (objectives)…

1 Label Computers and Locked Doors 2 Rotate labels automatically 3 Only show labels in Nightvision mode

After watching (learning outcomes)…

Turn Nightvision Mode into a strategic layer but revealing helpful information to the player

(Unique Video Reference: 25_HM_GDT)

Labels, Locks and Nightvision
11:59
Test Your Understanding 4.5
5 questions
In this video (objectives)…

1 How to use TextureProgres nodes 2 How to change values in the inspector and have them reflected in an already running game

After watching (learning outcomes)…

Unleash the power of TextureProgress nodes!

(Unique Video Reference: 26_HM_GDT)

TextureProgress Nodes
09:34
In this video (objectives)…

1 Using TextureProgress as game logic 2 Adding stealth to our stealth game! 3 Quitting the game

After watching (learning outcomes)…

Update the GUI when the NPCs see the player!

(Unique Video Reference: 27_HM_GDT)

Making NPCs Suspicious
11:26
In this video (objectives)…

1 Implement a disguise system 2 change collision_layer information in script 3 save and load occlusion

After watching (learning outcomes)…

Fulfil your dream of hiding in a box!

(Unique Video Reference: 28_HM_GDT)

Preview 15:55
In this video (objectives)…

1 Limit the number of disguises 2 Slow the player down when wearing a disguise 3 Have a time limit on disguises

After watching (learning outcomes)…

Display a certain number of decimal places in a text field and add a cost to disguises

(Unique Video Reference: 29_HM_GDT)

Making Disguises Risky
11:15
In this video (objectives)…

1 Display the number of disguises left as a nuber of icons 2 Update the GUI with very little code

After watching (learning outcomes)…

Use ItemList nodes to make polished GUI elements easily

(Unique Video Reference: 30_HM_GDT)

Boxes and ItemList
16:08
Check Your Understanding 4.6
5 questions
In this video (objectives)…

1 Have loot that the player can pick up 2 Create an exit that works if the player has loot 2 Craft an Object Oriented inventory system

After watching (learning outcomes)…

Create an inventory system in the SceneTree

(Unique Video Reference: 31_HM_GDT)

Grabbing the Loot
13:04
In this video (objectives)…

1 Create a GUI element that only appears when it's needed 2 Show the player that they're collected loot

After watching (learning outcomes)…

Finish the GUI system!

(Unique Video Reference: 32_HM_GDT)

Making a GUI for the Loot
11:43
In this video (objectives)…

1 Load a scene as a singleton 2 Create Game Over and Victory screens

After watching (learning outcomes)…

Add polish to our game with consistent background music and the ability to retry or quit the game.

(Unique Video Reference: 33_HM_GDT)

Polishing the Game
14:06
In this video (objectives)…

1 Designing a Tutorial 2 Creating a level for a tutorial

After watching (learning outcomes)…

Lay the foundations of our game's tutorial

(Unique Video Reference: 34_HM_GDT)

Preparing the Tutorial Level
08:13
In this video (objectives)…

1 Create a visual objective marker 2 Move that visual marker to a new position when needed

After watching (learning outcomes)…

Understand how and when to use Tween nodes and use a parent node as an array

(Unique Video Reference: 35_HM_GDT)

Adding Objective Markers
20:37
Check Your Understanding 4.7
5 questions
In this video (objectives)…

1 Adding text to objectives in the tutorial 2 Using a JSON file to update the objectives

After watching (learning outcomes)…

Finish the tutorial by revisiting JSON files

(Unique Video Reference: 36_HM_GDT)

Finishing the Tutorial
20:07
In this video (objectives)…

1 Plug the tutorial into the game 2 Fix the tutorial GUI position changing 3 Animate the tutorial GUI

After watching (learning outcomes)…

Finish Heist Meisters!

(Unique Video Reference: 37_HM_GDT)

The Final Polishing of Heist Meisters!
14:24
In this video (objectives)…

1 Recap some of what we've learned 2 Look at where this project could go from here

After watching (learning outcomes)…

Look at what we've learned to make this projevt happen and where we could go from here

(Unique Video Reference: 38_HM_GDT)

Wrapping up Heist Meisters
02:28
Requirements
  • Godot 3.0.6 or later (it's free and we'll show you how to install it)
  • Basic familiarity with coding is a bonus, but we'll get you up to speed if you're brand new
  • A desire to make make games, and improve your coding
Description

Learning to code by making games is a great idea, yet things can get in your way. Some game engines are over-specialised, overcomplicated and can overwhelm new users. Furthermore C-family languages like C-sharp and C++ can be cumbersome.

It's time to discover Godot, a general-purpose, simple and welcoming game engine. Powered by GDScript, a lightweight and easy to learn Python-like programming language, you'll be up-to-speed with the fundamentals of coding in a jiffy.

Whether you’re a complete beginner at writing code, an experienced developer wanting to explore this wonderful engine or a game designer who wants to embrace free and open-source software in your work, this course is for you.


Frequently Asked Questions…

Do I really need to learn a new programming language?

Absolutely, GDScript is based on Python - one of the most popular and productive coding languages in the world. As a beginner, this is a great place to start and experienced coders will find their coding improves with the perspective Python brings.


What if I don’t like “dynamically-typed” languages like Python?

Give them another chance. You’ll be sold in the first section when you see how easy it is to import a JSON file. Remember less typing means less typing! If it looks like a duck, and it quacks like a duck...


Do I really need to learn yet another game engine?

Like learning a 2nd or 3rd spoken language, the perspective you will gain from a new engine is invaluable, even if you decide to settle on another engine. You’ll re-use your existing knowledge, and discover much easier ways to do some things. Once expanded your mind will never go back to its original shape :-)


Are the any decent games made in Godot?

There are loads in the pipeline, and we want you to be amongst the first to bring yours to market. You can develop simple games fast and painlessly in Godot, and now is the perfect time to great a head-start on your competitors. This is why we have chosen to teach this wonderful game engine.


But I’ve had a look and it feels a bit “noddy”!

That’s what we thought at first, but we were wrong. It reminds me of the quote by Abraham Lincoln: “I don't like that man. I must get to know him better”. What’s actually going on here is Godot makes great use of information hiding, and shows you only what’s relevant to getting the job at-hand done.


Take a look at the reviews our students have taken the time to leave. Here are just few we like...


“... the course is fun and seems well designed for beginners to the Godot Engine. Yann is fun to listen to and explains everything very well.”

Benjamin Anderson - Godot Developer


“this is hands down the best game development course I have taken.”

Simone Bosi


“If you want to learn game development or if you're just curious about programming, Godot and this course are perfect for you!”

Sindre Sømme


We start with simple 2D games, that help you focus on learning to code. We have a word game, a platform game and a stealth game. By the end of these projects you’ll have a thorough working knowledge of both GDScript and Godot as an engine.

Every lecture contains challenges, to make you literally stop and think. Every project builds on your knowledge, and spaced-repetition ensures you remember what you learn.

Yann will be your main instructor, building each game in GDScript.


There’s no better time to learn to code by making games, and this course is a great place to start - guaranteed!

Who this course is for:
  • Beginners who want to learn game development in a friendly, lightweight and powerful engine
  • Game developers who want to learn to use a dynamic and versatile programming language based on Python
  • Indie Developers looking for an open-source engine that won't ask for a share of the revenue or logo-space in your game