Free through lesson 3

Godot for Beginners

From installation through scenes and nodes, GDScript, input and physics, collisions and signals, tilemaps, the HUD and save data, a first look at 3D, and exporting. Over 30 lessons, you'll build one complete 2D game and publish it so anyone can play it in a browser. Every version number, output, error message, and exported file size is measured from actually running Godot 4.7.2.

Curriculum

The 30 lessons are split into six chapters. We recommend working through them in order from chapter 1, but feel free to jump to whatever interests you. Note: GDScript can't run in the browser, so try the code in the Godot 4.7.2 editor you install in lesson 1. Only the lesson comparing GDScript with Python lets you run the Python versions right on the page. The prerequisite is basic Python; GDScript looks a lot like Python.

Chapter 1 — Getting Godot Running (lessons 1–5)

Install Godot and learn how to read the editor and how scenes and nodes work. By the end, you'll be able to explain GDScript's syntax and how it differs from Python in your own words.

Chapter 2 — Making Things Move (lessons 6–12)

Take input, make a character walk and jump, and have it pick up coins. Finally, learn to connect nodes loosely with signals.

Chapter 3 — Turning It into a Game (lessons 13–19)

Split the game into screens, carry the score across them, spawn enemies automatically, build stages from tiles, and play sounds. This chapter gives you everything a playable game needs.

13

Switching Scenes (From Title Screen to Game)

change_scene_to_file schedules a swap for the next frame. The old scene is removed entirely, so values you want to keep need somewhere to live.

🔒 Basic
14

Keeping Score and State in an Autoload

Place one node that survives scene changes. You can reach it by name from anywhere, but if you put everything in it, everything depends on it.

🔒 Basic
15

Spawning Enemies with PackedScene (instantiate and queue_free)

Load a scene as a blueprint and create instances with instantiate(). Add with add_child, remove with queue_free. Anything that comes and goes follows this pattern.

🔒 Basic
16

Spawning Enemies Automatically (Timer and Randomness)

Use a Timer for fixed intervals and RandomNumberGenerator for variety. Fix the seed and enemies appear in the same order every time, so you can reproduce bugs.

🔒 Basic
17

Building Stages with TileMapLayer

Since Godot 4.3, TileMap has been split into TileMapLayer. Converting between cell and world coordinates, adding collisions, and finding the used area.

🔒 Basic
18

Collision Layers and Masks (Check Here When Things Don't Collide)

layer is "what I am"; mask is "what I look for." They're stored as bits, so you can check them as numbers. Plus RayCast2D for checking the ground and line of sight.

🔒 Basic
19

Playing Sound (AudioStreamPlayer and Buses)

2D sound and non-positional sound use different nodes. Playing sounds at once takes a special setup. Volume is in dB, and half volume is -6 dB.

🔒 Basic

Chapter 4 — UI and Saving (lessons 20–24)

Build a HUD and menus with Control nodes, and let players pick up where they left off after closing the game. Finally, move tuning numbers out of your scripts.

Chapter 5 — A Taste of 3D (lessons 25–27)

See for yourself that what you learned in 2D carries straight over to 3D. The chapter ends with a hands-on exercise: make a 3D character walk and land.

Chapter 6 — Shipping It (lessons 28–30)

Export for desktop and for the web, and get a URL other people can play at. Finally, sort out when to choose Godot versus Unity or Unreal, and set yourself up for your next game.

Once you've finished all 30 lessons, try the Unity Game Dev Intro Course, where you build a complete 3D racing game, or Blender Python for Beginners, where you learn to make your own characters and backgrounds. A membership unlocks every course.