Learn Godot Game Development
A free, interactive Godot course that starts from zero. Write GDScript and play your 2D games in the real Godot 4 engine beside the editor, with Hot reload, a live scene tree, AI hints and a certificate per section.
1,000+ codders enrolled
167 lessons167 challenges181 quiz questions
- Beginner friendly
AI-assisted coding help
Hands-on interactive lessons
Audio narration on every lesson
Quizzes to test your knowledge
Free certificate of completion
Play a Godot game right here
Three small games written in GDScript, running in the real Godot 4 engine. Press Play, then move a slider: the number changes in the code and the game restarts with it. On a phone, use the keys on the screen.
Run with the arrow keys and jump with Space. Set JUMP_VELOCITY to -300.0 and the ledges are out of reach.
extends CharacterBody2D
const SPEED = 240.0
const JUMP_VELOCITY = -460.0
const GRAVITY = 1200.0
func _physics_process(delta):
# Fall when in the air.
if not is_on_floor():
velocity.y += GRAVITY * delta
# Jump only from the ground.
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = JUMP_VELOCITY
# Run left and right.
var direction = Input.get_axis("move_left", "move_right")
velocity.x = direction * SPEED
if direction != 0:
$Body.scale.x = sign(direction)
$Eye.position.x = 3 if direction > 0 else -9
move_and_slide()
# Fell off the world? Start again.
if position.y > 420:
position = Vector2(100, 280)
velocity = Vector2.ZERO
Writing these scripts yourself is the course: free, in your browser.
Syllabus
Section 1
Nodes and Scenes
Start sectionStartExpandCollapseHow a Godot game is built from nodes and scripts. Move, spin and scale nodes with delta, tune values and find other nodes. You finish with a bouncing screensaver.Your First Godot Game
6 lessons66Every Frame
6 lessons67Values You Can Tune
6 lessons66Finding Nodes
5 lessons55Project: Screensaver
Project4 lessons44Section 2
Input and Movement
Start sectionStartExpandCollapseMove a character with the keyboard. Use input actions, CharacterBody2D and move_and_slide, then add gravity, jumping and smooth speed. You finish with a platformer hero that runs and jumps.Input Actions
6 lessons67CharacterBody2D
5 lessons58Gravity and Jumping
6 lessons66Smooth Movement
5 lessons58Project: Platformer Hero
Project6 lessons66Section 3
Signals and Collisions
Start sectionStartExpandCollapseMake things react when they touch. Use Area2D and signals, write your own signals, group nodes and remove them with queue_free. You finish with a coin collecting game.Areas
5 lessons55Signals
5 lessons56Groups
4 lessons45Removing Things
4 lessons44Hazards
4 lessons45Project: Coin Collector
Project5 lessons55Section 4
Game Rules
Start sectionStartExpandCollapseAdd the rules of a game: timers, a score on screen, lives, winning, losing, restarting and enemies spawned from a scene. You finish with a dodge game.Timers
5 lessons55Score on Screen
5 lessons55Lives and Losing
5 lessons55Spawning
6 lessons66Winning
3 lessons33Project: Dodge
Project5 lessons55Section 5
Game Feel
Start sectionStartExpandCollapseAdd motion and feedback: tweens, a camera that follows and shakes, particles, hit flashes and AnimationPlayer.Tweens
7 lessons77Camera
4 lessons44Particles
4 lessons44Flashes and Feedback
4 lessons44Animation
4 lessons44Section 6
Projects
Start sectionStartExpandCollapseBuild four complete games step by step: Breakout, an asteroid shooter, a flappy flyer and a top down dungeon crawler. Every step ends in a game that runs.Project: Breakout
Project9 lessons911Project: Asteroid Shooter
Project9 lessons910Project: Flappy Flyer
Project7 lessons77Project: Dungeon Crawler
Project8 lessons88
Learn by Doing
Write real code, query databases, build websites, and master AI prompts. Our interactive lessons cover every skill modern developers need.
Build Your Streak
Stay consistent and watch your progress grow! Track your daily coding habit, protect your streak with freeze days, and earn rewards for showing up every day.
12 days streak
Return tomorrow to keep your streak!
January 2026
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
21
22
23
24
25
26
27
28
29
30
Double or Nothing
Day 5 of 7
Streak Freeze
2 left
You're Not Alone
Compete on global leaderboards, invite friends to earn rewards, and celebrate each other's wins. Coding is better with friends!
Every way to learn
Read, listen, test yourself, ask the AI, or look up anything you've already covered. Every lesson meets you where you are.
A variable is a named container that stores a value you can reference later in your program.
In Python, you create one by writing the name, an equals sign, then the value you want to store.
The value can change over time. Reassigning the name simply points it to a new value.
Earn a Certificate
Earn certificates for every course you complete. Add them to your LinkedIn profile and resume to showcase your coding expertise to employers.
Why learn Godot with Coddy
- Your code and your game sit side by side. Press Play and the game runs in Godot 4.7, the real engine, compiled for the web. Hot reload swaps your script into the running game, the Scene tab shows the live node tree like Godot's Scene dock, and the Console shows
print()and every error with its line. Press Check and the lesson is graded by playing your game. - No game making experience needed to start. The first section shows how a Godot game is built: nodes in a scene tree,
_readyand_process,delta, positions andVector2,@exportvariables and finding nodes with$, and ends with a bouncing screensaver. - Characters that answer the keyboard: input actions,
CharacterBody2Dandmove_and_slide(), walls, gravity and jumping, acceleration and friction. Then things that touch:Area2D, signals connected in code, your own signals, groups andqueue_free(), ending with a coin collecting game. - From toy to game:
Timer, a score in aLabel, lives, game over and restart, and enemies spawned from aPackedScene. Then game feel: tweens, a camera that follows and shakes, particles andAnimationPlayer.
Frequently asked questions about learning Godot
Do I need to know GDScript to learn Godot?
if, loops and signals, each one when a game first needs it. For the language on its own, take the GDScript course.