
Build a basic character scene and explore the default template for a character script provided by Godot. Separate components in your game project into individual scenes so they can be edited in isolation.
Improve the input handling by separating it from the character, putting it in its own script, and creating custom input mappings. Write more reusable and adaptable scripts by making them generic and single-purposed.
Alter the character's running mechanics, adding acceleration and deceleration, so it feels more realistic. Create autoloaded nodes which can easily be accessed by the entire project.
Improving the overall feel of the character's jumping and gravity mechanics. Make adjustments to project constants like the force of gravity.
Start building the animations for the character. Flip the character sprite to match the input from the player.
Build a state machine to monitor the character's behaviour and automatically play the correct animation. Nest state machines to set up priorities for future behaviours.
Create animations of dust clouds and import sound effects to be used by the character's animations. Use scenes as variables, instantiate and destroy them as needed.
Set up a tile set and tile map with physics and terrain to rapidly build levels for your game.
Small update to how Tile Map Layers have changed as of Godot version 4.3+.
Add layers to your tile map and use animated sprites to add decorative elements to your level. Build a platform with 1-way collision.
Use custom signals to write a camera script that reacts to the player's actions.
Make the camera movements gently pan using tweens. Modify tweening behaviours with different durations, transition types, and easing types.
Add an animated background to the scene. Use parallax scrolling to create an illusion of depth in a 2D environment.
Update for Godot version 4.3 to use a Parallax 2D node.
Add water that the character can swim in to the foreground of the scene. Use class names and typecasting.
Restructure the main scene and separate the level components into a level scene, add boundaries for the player and the camera using the clamp method.
Review the assignment, learn about level design principles, and create a custom resource for tracking player progress.
Use a rigidbody to create collectible coins of varying denominations. Control how different bodies collide with each other using collision layers.
Use a Canvas Layer to display how many the coins the player has collected. Use the % operator to index an array and tell the godot engine to ignore warnings.
Learn how to use polymorphism to add more types of collectible treasure to your game.
Learn about restricting exported variables, random number generation, and applying impulse forces while building a treasure chest that spawns coins.
Lock the treasure chest and add a key that will unlock it. Discuss the difference between instantiating during the ready phase and during play.
Add a goal to end your levels. Learn how tweens can be used to tween other properties and await the results.
Give characters a health value and take damage method, then add spikes with a collider that damages them. Create a custom collision polygon and separate environment collisions from damage collisions.
Learn how to use the monitoring and monitorable properties of the Area2D node to control collision between hit and hurt layers. Trigger an animation and knockback effect when the character gets hit.
Learn how to make a health gauge automatically react to changes in the player character's health by connecting custom signals.
Use scene structure and arrays to automatically identify checkpoints in your levels to spawn your player at different locations.
Have the characters able to die when health reaches 0, reduce lives counter, and either respawn or trigger game over.
Use the transform scale property to flip nodes so enemies can attack the player in both directions.
Connect buttons to scripts to give the player options of what to do when they run out of lives. Use the theme editor to change the appearance of UI elements.
Create a sword that the character can equip and drop when they die.
Use input buffering to process player input, animate collision shapes, and use the debug menu to draw collision shapes during play.
Apply a cooldown timer to prevent continuous attacking and apply a bounce velocity to midair attacks.
Write an AI script to make enemies patrol an area of your level, using enumerations and raycasting to define their behaviours.
Have enemies perceive the player character with a field of vision and line of sight, then chase and attack them.
Adding a new projectile shooting enemy, disconnecting signals and animating through code to create an explosive debris effect.
Create a boss encounter, complete with a camera zone, health gauge, attack patterns and battle phases.
Add a pause button and pause menu to your game, connecting signals from your buttons with customized arguments.
Build a Title scene and menu. Set this to be the game's default scene and transition to other game scene's seamlessly.
Load any level dynamically with a clean transition from a level selection scene by connecting button signals with custom arguments.
Learn how to save and load custom resources to track the player's progress between play sessions.
Learn how 2-dimensional arrays and bit masks can be used to store large amounts of data in your save files very efficiently.
Use coroutines to gradually fade music volume in and out to switch music tracks.
Export your game for distribution on multiple platforms.
Learn how to build a complete pixel platformer in Godot 4 by following along with this course! Whether you are new to game development, new to the Godot engine, or want to improve your skills with some high level design principles, you will learn a lot here! I recommend at least having a basic understanding of game engines and writing scripts before starting this course.
Each section of the course generally focuses on 1 aspect of the game; Character, Levels, Treasure, Enemies, etc. The sections are further divided into 7 video lessons, each focused on teaching 1 feature of the Godot engine, 1 script, or 1 specific part of game development. By the end of each section, you will have a template for building the various aspects of your game. There is an assignment you will need to complete before proceeding on with the rest of the course, repeating many of the lessons taught throughout the section to implement more of the game assets, while also providing extra challenges for those who want to try them. The challenges are optional and are not required to proceed with the lessons.
This course includes scripting in the Godot scripting language. If this is your first time using scripting, you're welcome to follow along and I will explain individual items as we go. To avoid overwhelming new students, I will try not to explain everything all at once, but focus on individual elements that are relevant to each lesson. If you have experience with scripting in other languages, Godot script is extremely easy to pick up and you will be able to appreciate how well it is optimized for the engine and game development in general.
The assets used in this course are available for free on itch and FreeSound.
Upon completion of the course you will have a complete game that you can upload and share. Since everything taught in this course uses design patterns and good practices, the skills and techniques you learn will allow you to expand this project or use it as a template for something entirely of your own design.