Use delta time to make movement frame-rate independent.
Design levels with multi-layer TileMaps for background/ground/foreground depth and collisions.
Set Camera2D limits, show boundaries while editing, and add smoothing to reduce pixel jitter.
Create shooting with timers; despawn bullets via lifetime/cleanup; use hitbox/hurtbox collision nodes.
Add health/damage systems: global HealthManager (autoload), health bar UI, pickups, collectibles counters.
Add VFX: hit-flash via fragment shader, death particles, and correct node parenting for persistent effects.
Build menus and scene transitions: pause UI processing while paused, doors/keys, loading screen shader, saving settings.
About the free online course
Create a fast, responsive 2D metroidvania-style shooter platformer while learning modern Godot 4.2 workflows from the ground up. This free online course is designed for learners who want more than isolated snippets: you will shape a complete playable project and understand why each system works, so you can confidently reuse the same patterns in your own games.
Starting with a clean project setup, you will develop a player character with crisp pixel-art presentation, smooth animations, and reliable input handling. You will connect movement to frame-rate independent logic, troubleshoot scripts with practical debugging techniques, and tune gameplay quickly by exposing variables that make iteration painless. As the project grows, you will design levels with tilemaps, layer depth for stronger atmosphere, and camera limits that keep exploration readable without breaking the feel of momentum.
Combat and feedback are central: you will implement shooting, manage bullet lifetime, and build damage interactions using clear collision logic. On the enemy side, you will move beyond simple behaviors and adopt a state-driven approach that scales, letting you add patrols, attacks, and transitions without turning code into a single fragile script. You will also create satisfying player feedback with hit-flash shader effects, particles on death, and health pickups that restore resources in a clean, reusable way.
To make the game feel complete, you will craft UI elements such as health bars and counters, add a main menu, pause and resume correctly, and store settings so changes persist. You will handle scene transitions using doors, keys, and visual loading effects, plus apply camera smoothing and integer scaling techniques that keep pixel games sharp and stable. By the end, you will have a cohesive foundation for your own Godot projects and a portfolio-ready prototype that demonstrates real game development skills.
Course content
Video class: Game Project Setup and Player Animations - Godot 4 Tutorial - Pt 1- 2D Platform Game13m
Exercise: Which Project Setting change makes pixel art look crisp instead of blurred?
Video class: Player Character Script and Animations - Godot 4 Tutorial - Pt 2 - 2D Platform Game07m
Exercise: Which method is used to apply player movement after changing velocity in a CharacterBody2D gravity setup?
Video class: Keyboard Input Map and Player Movement - Godot 4 Tutorial - Pt 3 - 2D Platform Game09m
Exercise: How is the left/right movement direction read for the player run state in Godot 4?
Video class: Script Debugging and Debug Print Output - Godot 4 Tutorial - Pt 4 - 2D Platform Game06m
Exercise: How can you print the enum-based player state name (e.g., Idle/Run) instead of its integer value in Godot 4?
Video class: Player Jump State and Jump Animation - Godot 4 Tutorial - Pt 5 - 2D Platform Game10m
Exercise: Why was the jump velocity changed from +200 to -200 (and later a negative constant) for making the player jump?
Video class: Statically and Dynamically Typed Variables in GDScript - Godot 4 Tutorial - Pt 6 - 2D Platform Game10m
Exercise: What is a key benefit of exporting player movement variables (like speed and jump) in Godot 4?
Video class: Enemy Movement and Animation between Patrol Points - Godot 4 Tutorial - Pt 7 - 2D Platform Game32m
Exercise: How is the enemy made to patrol back and forth between two points in the scene?
Video class: Create a Parallax Background with Parallax Layers - Godot 4 Tutorial - Pt 8 - 2D Platform Game09m
Exercise: How do you create a stronger parallax sliding effect for the middle ground layer in Godot 4?
Video class: Delta Time in Games and Why We Should Use It - Godot 4 Tutorial - Pt 9 - 2D Platform Game09m
Exercise: What is the main purpose of multiplying movement values by Delta time in a 2D player controller?
Video class: Creating Advanced Tilemaps and Level Design - Godot 4 Tutorial - Pt 10 - 2D Platform Game15m
Exercise: How do the background, ground, and foreground TileMap layers achieve depth relative to the player?
Video class: Camera Movement Boundary using Camera Limits - Godot 4 Tutorial - Pt 11 - 2D Platform Game02m
Exercise: In Godot 4, which Camera2D setting is enabled to visually display the camera boundary while adjusting camera limits?
Video class: Shooting Bullets and Creating a Timer - Godot 4 Tutorial - Pt 12 - 2D Platform Game12m
Exercise: How is the bullet removed so it doesn’t stay in the scene forever?
Video class: Enemy Damage using Hitboxes and Hurtboxes - Godot 4 Tutorial - Pt 13 - 2D Platform Game19m
Exercise: Which node setup is used to create the bullet's hitbox so it can detect collisions and trigger damage logic?
Video class: Enemy Character State Machine and Transitions - Godot 4 Tutorial - Pt 14 - 2D Platform Game26m
Exercise: What is a key advantage of using a composition-based enemy state machine in Godot 4 (with separate state nodes like Idle and Attack)?
Video class: Player Damage and Create a Health Bar UI - Godot 4 Tutorial - Pt 15 - 2D Platform Game14m
Exercise: How is the HealthManager made accessible across the whole game so the player and UI can use it?
Video class: Player Damage and Hit Flash Visual Shader VFX: Godot 4 Tutorial - Pt 16 - 2D Platform Game08m
Exercise: In Godot 4, which shader stage is used to change the sprite’s pixel colors for a hit-flash effect?
Video class: Player Death Animation and Particles VFX: Godot 4 Tutorial - Pt 17 - 2D Platform Game13m
Exercise: Why is the player death effect added as a child of the player's parent instead of the player itself?
Video class: Player Health Pickup and Replenish Health Bar: Godot 4 Tutorial - Pt 18 - 2D Platform Game04m
Exercise: How is the health pickup set up to detect the player and restore health?
Video class: Player Collectibles and Award Counter Display UI: Godot 4 Tutorial - Pt 19 - 2D Platform Game15m
Video class: Game Main Menu UI and Pause and Continue: Godot 4 Tutorial - Pt 20 - 2D Platform Game25m
Exercise: How is the pause menu made to still respond to button clicks even when the game tree is paused?
Video class: Screen Settings UI and Saving Data in Resources: Godot 4 Tutorial - Pt 21 - 2D Platform Game25m
Video class: Camera Smoothing and Fix Jittering in Pixel Games: Godot 4 Tutorial - Pt 22 - 2D Platform Game11m
Video class: Player Double Jump or Multiple Jumps with Jump Counter: Godot 4 Tutorial - Pt 23 - 2D Platform Game04m
Video class: Using Doors in Levels to Transition from Scene to Scene: Godot 4 Tutorial - Pt 24 - 2D Platform Game13m
Video class: Animated Doors and Keys with Scene Transition: Godot 4 Tutorial - Pt 25 - 2D Platform Game18m
Video class: Game Shader VFX Loading Screen and Scene Transition: Godot 4 Tutorial - Pt 26 - 2D Platform Game15m
Video class: How to Setup Integer Scaling for Pixel Games: Godot 4.2 Tutorial - Pt 27 - 2D Platform Game08m
Video class: Player State Machine with States and Transitions: Godot 4.2 Tutorial - Pt 28 - 2D Platform Game1h11m