
Learn to build a classic 2D platformer in Godot 4, from AutoTile level creation and animated parallax backgrounds to player movement, enemies, UI, and exporting to executables.
Download and install Godot 4.2.2 from the official godotengine.org site or archive, unzip, and run the Godot_v4.2.2-stable_win64.exe to open the editor.
Create a Godot project, set the project path, name it, and create the folder; import and unzip asset files, then open the Asset folder in Godot without altering its contents.
Create a main 2d scene, add a tilemap, and build a 16 by 16 ground terrain tile set with match corners and sides rules, then paint and test the map.
Create a simple level with TileMap ground, add a CharacterBody2D and CapsuleCollisionShape with idle AnimatedSprite2D, then configure a Camera2D for pixel-perfect zoom, smooth follow, and fullscreen readiness.
Attach a new GDScript to the CharacterBody2D node to define SPEED, JUMP_VELOCITY, and GRAVITY, link AnimatedSprite2D, and implement movement in _physics_process using is_on_floor, Jump action, and move_and_slide.
Create run and jump animations in Godot 4 with AnimatedSprite2D (Run.png, Jump.png) at 10 fps, flip by velocity, and drive idle, run, and jump via UpdateAnimation in _process.
Create and paint a one-way platform and grass terrains in Godot 4 using tilemaps and terrain sets, enable one-way collisions, and test jump height of three blocks.
Create a player reset area with Area2D and CollisionShape2D, and detect the player with body_entered. Use a global GameManager autoload to reset the player's position to the starting point.
Set up a parallax background using parallax background and multiple parallax layers in Godot 4, arranging sprite layers with motion scales, mirroring, and animated textures.
Design a test-level draft in Godot 4 by configuring a tilemap, painting terrain and grass detail, adding one-way platforms, and placing a reset area and end door for testable progress.
Learn to layer particles and sunlight in Godot 4 by adding a second parallax background, using AnimatedSprite2D with sprite frames, and adjusting motion scales and mirroring for a front-layer effect.
Create a jump-up vfx as a separate scene using AnimatedSprite2D with a Start animation at 15 fps, aligned to player's feet, spawned from the player script and auto-removed after playing.
learn to create the land vfx in Godot 4 by duplicating the jump up vfx, configuring frames and alignment, and spawning it on landing via a shared game manager function.
Add a final touch by configuring a ParallaxBackground with a ParallaxLayer7 of motion scale 1/1, decorate the TileMap with close background sprites from assets, and test.
Create an enemy as a CharacterBody2D with a capsule collision and animated sprite, then implement horizontal movement with direction, speed, and walk animation using move_and_slide.
Finish the enemy script to detect obstacles ahead and edges with RayCast2D nodes, flip direction, adjust collision layers and z-order, and test that the player can pass.
Create and animate a bullet in Godot 4: build a 2D scene with Area2D, add CollisionShape2D and Sprite2D, set speed and direction, define damage, and spawn a hit vfx.
Implement a 2d action game shoot ability in Godot 4 by adding the Shoot_Stand animation, a Shooting_Point for bullet spawn, a direction-sensitive bullet, and a 0.25 second TryToShoot cooldown.
Implement the player shoot ability by adding Shoot_Jump and Shoot_Run animations to AnimatedSprite2D, syncing them with run and jump, adjusting the shooting point, and spawning a hand fire VFX.
Define an EnemyController with ApplyDamage(damage) to reduce currentHealth from 100, set isDead and play Die animation, disable collision layer, and queue_free after 2 seconds.
Develop an enemy attack system in Godot 4 by adding Area2D detectors and a damage caster, enabling monitoring during frames 10-13 to apply 30 damage, and align hitboxes with direction.
Define a three-state player system (Normal, Hurt, Dead) in Godot 4, configure AnimatedSprite2D animations (Hit_Stand, Hit_Jump, Die), and control health, collision, and movement during state changes.
Build a full screen UI with a HealthBar under a CanvasLayer, then implement a UI_Manager to update it via the playerHealthUpdated signal from the Player script.
Create a coin in Godot 4 using Area2D, CollisionShape2D with a CircleShape2D, and AnimatedSprite2D from Coin.png; connect body_entered to the PlayerController, call CollectedCoin(value), and remove the coin after the animation.
Create a coin label UI in Godot 4 by adding a Label node, styling font size 80 with color ffca00, anchored top-right, and connect playerCoinUpdated to update the CoinLabel.
Create a functional game over UI in Godot 4 by building a GameOverScreen with a label and restart button, styling states, wiring signals, and reloading the scene on restart.
Create an end door in a Godot 4 2D game using an EndDoor scene with Area2D and AnimatedSprite2D. Trigger game over through the GameManager and set the player to uncontrollable.
Design the level by shaping the TileMap ground, adding one-way platforms and a floating island end, testing multiple paths to ensure the end is reachable and the reset area works.
Export your Godot 4 game to an executable by configuring the main scene and fullscreen, installing export templates, and exporting to a Windows build in a dedicated build folder.
Update your Godot 4.2 project to 4.4 by backing up, restarting for uuid changes, converting tile map nodes to tile map layer nodes, and linking a tile set across scenes.
Fix minor warnings by prefixing unused parameters with an underscore to improve code readability, update parameters across functions, and re-run the scene to verify that debug messages disappear.
Update the door script to switch the level by adding a next level parameter, exporting it for the inspector, and switching scenes via the game manager with call deferred.
Create the main menu user interface by building a 2D scene with a canvas layer, a full-screen control node, and a level select grid of reusable buttons, then test.
script a godot 4 main menu to dynamically generate level select buttons from a uuid-based array, wire new game and quit buttons, and load scenes via button signals.
Create a rich main menu background in Godot 4 with a 2d camera, background plane, and tile map; add an animated idle character and decorative scenery.
Replace the level one scene file path with the uuid of the level two file, copy the id and paste the uuid into the level string to fix Andor.
Implement a pause system in Godot 4 by binding a pause action, toggling the paused state, and building a pause menu UI with restart and main menu options.
Implement a toggle pause signal between the game manager and ui manager in Godot 4, hide the pause screen at start, and show it whenever the game is paused.
Create a per-enemy blink effect on bullet impact using a visual shader with a blink parameter animated by a tween, applying it as an instance parameter to prevent simultaneous blinking.
Create a camera shake using a 2D camera and fast noise light, animate with a tween from intensity 2.0 to 0 over 0.5s, centralized in the game manager.
Use Godot 4 physics engine to create a coin burst by turning coins into rigid body 2d with circle collision shapes and gravity. Implement timer-based detachment and reparenting with checks.
Create a coin burst effect in Godot 4 by applying central impulse to coin Rigidbody2D with randomized rotation and varied magnitudes, and spawn coins on enemy defeat.
Create a moving platform in Godot 4 using an animatable body 2D with a region sprite and collision shape, then animate its x position to move back and forth.
Add a second moving platform and create a move animation with keyframes, 3.6 seconds, and ping pong looping. Reverse the right platform to meet at center and align reset animation.
Create a static trap in Godot 4 using an area 2D for player detection, a collision shape, and a sprite; export a damage value and apply damage to the player.
Create a hidden trap that reveals spikes when the player approaches using an extrude animation in Godot 4. Reuse the trap scene, add area 2D for detection, and adjust z-order.
Hello, I’m Single-minded Ryan, a game developer and digital artist.
In this course, we are going to create a classic 2D platformer game, with high-quality game assets.
In the game you will control Andie, our little adventurer, to explore an ancient 2D world. You’ll need to defeat the enemies and reach the portal at the end of the level to finish the game.
My goal is to create a visual-oriented course to make you feel like you are making a real 2D game from scratch.
This course comes with a high-quality game asset package, including the player and enemy animations, VFX files, parallax backgrounds (some are animated), and a level TileMap.
(sound & music not included at the moment)
Along this course, you'll learn everything you need to start your 2D platformer. From how to design the level using the AutoTile feature, how to control the 2D animations with the animatedSprite2D node, how to code the movement and the enemy patrol behavior, how to create the close-range attack and projectile systems, how to create the pick-up item and the VFX, how to create and control the game UI, all the way to how to export the game project into executable files.
I'll try to focus on every detail, but at the same time, it would be great if you have some basic experience with some programming language. You don't necessarily need to know anything about GDScript, but it helps if you understand some general programming ideas such as how variables and functions work.
By the end of this course, you will have a 2D platformer that you can show off to your friends.
Please enroll today, I'm looking forward to seeing you in the course.
At the end of this course, you will be able to do things like:
How to code in GDScript, which is Godot's built-in programming language
How to control the player's 2D movement
How to use the AutoTile system with the TileMap node
How to design a 2D game level by painting the tiles
How to create the 2D parallax background layers
How to create the moving platform
How to control 2D animations with the animatedSprite2D node
How to create the attack & health system
How to create a 2D bullet system
How to create the patrol behavior for the enemy
How to create a pick-up item
How to control 2D VFX
How to handle the 2D physics layers and physics detection
How to create game UI in Godot, like the health bar UI & the restart button
How to use the Autoload system to control the gameplay flow
How to reload the game scene to restart the game
How to use Godot's input system
How to customize Godot's settings for your game and your workflow
export the game project into executable files
How to update the project from Godot 4.2 to Godot 4.4
How to load the next game level scene
How to create a Main Menu
How to pause the game
How to create the material blink effect (for attack feedback)
How to create the camera shake effect (for attack feedback)
Please NOTE that this course DOES NOT contain any sound and music assets at the moment.
*All of the assets (the tile map, animation files, VFX files, background files, etc.) provided in this course are only for educational purposes, please do not use them in any commercial projects.