Free Course Image Godot 4.3 2D Projectile Platformer in GDScript: Movement, Shooting, AI, Hitboxes and Combat Text

Free online courseGodot 4.3 2D Projectile Platformer in GDScript: Movement, Shooting, AI, Hitboxes and Combat Text

Duration of the online course: 7 hours and 55 minutes

New

Build a 2D projectile platformer in Godot 4.3: responsive movement, mouse-aim shooting, enemy AI, hitboxes and combat text. Free online course.

In this free course, learn about

  • Implement 2D character movement and jumping using Godot 4.3 physics loops
  • Use the modern 2D level-building node that replaces deprecated TileMap (TileMapLayer workflow)
  • Read and buffer directional input in _process for responsiveness, apply motion in _physics_process
  • Instance Rigidbody2D projectiles, aim at mouse cursor, and organize them under a projectiles parent
  • Prevent shooting into walls via collision checks at the muzzle (e.g., RayCast2D/ShapeCast2D)
  • Build hitbox/hurtbox damage systems with overlap-only Area2D zones and signals
  • Safely despawn projectiles using queue_free() to avoid immediate-free pitfalls during callbacks
  • Set up Behavior Trees for enemies/players, including hit, death, and interrupt-driven actions
  • Ensure overridden _physics_process calls parent logic (super) so shared gravity still runs
  • Design hit reactions using HitData + knockback objects, curves over time, and hit-stun control
  • Make enemies flash red on hit using a shader/material parameter driven by script
  • Create Global autoload singletons as Node scenes for project-wide naming and access patterns
  • Implement combat UI: combat text, health-changed signals, stats tracking, and game over screens
  • Play weapon SFX correctly when firing (AudioStreamPlayer2D/one-shot instances), avoid UI blocking input

Course Description

Create a fast, satisfying 2D projectile platformer while learning how modern Godot 4.3 projects are structured in real production-style patterns. This free online course guides you from the first lines of GDScript to a complete moment-to-moment combat loop where movement feels responsive, shots spawn and behave correctly, enemies react to damage, and the screen communicates impact through hit effects and floating combat text.

You will design a player controller with reliable acceleration, jumping, and grounded control, then extend it into a shooter that aims toward the mouse and fires projectiles with proper physics. Along the way, you will learn why some logic belongs in different engine callbacks, how to instance gameplay objects cleanly without creating tangled scene trees, and how to prevent shots from spawning inside walls by checking collisions at the muzzle point. These are the small decisions that make a project scale smoothly as features grow.

Combat becomes meaningful as you implement hitboxes and hurtboxes that detect overlaps without unwanted physical pushing, apply damage, trigger hit reactions, and clean up safely with queue_free when objects are removed. You will build enemy behavior with behavior trees, including hit-stun and death handling that stops logic at the right time, so animations do not loop incorrectly and AI states remain consistent.

To keep systems maintainable, you will also explore practical architecture techniques such as autoload singletons for shared naming and state, using dedicated data objects for hits instead of messy parameter lists, and separating knockback direction from tunable stats for clearer reuse. Visual feedback is improved through simple shader-driven flashing on damage and a combat text system tied to health changes, giving your game readable, satisfying responses to every action.

By the end, you will have a cohesive mini-game foundation with player and enemy behavior, UI tracking and game over flow, sound effects for firing, and patterns you can carry into larger projects. Whether you are starting in game development or upgrading your Godot 4 knowledge, you will leave with sharper GDScript habits and a practical platformer combat toolkit you can extend into your own ideas.

Course content

  • Video class: Basic Character Movement 37m
  • Exercise: In Godot 4.3, what is the recommended replacement for the deprecated TileMap node when building 2D levels?
  • Video class: Player Jumping 27m
  • Exercise: Why move directional input reading from _physics_process() to _process() in the input component?
  • Video class: Instancing Projectiles with Rigidbody2D Physics - 1 Bit Platformer [Part 3] - Godot 4.3 Tutorial 36m
  • Exercise: Why is a separate node/group (e.g., a Projectiles Parent) used to hold instantiated projectiles instead of making them children of the player?
  • Video class: Fire Projectiles ~ Aim at Mouse Cursor - 1 Bit Platformer [Part 4] - Godot 4.3 Series 15m
  • Exercise: Which Godot 2D node type is used to prevent shooting when the shooter point is inside a wall by checking for collisions?
  • Video class: Damageable Enemies, Hitboxes, 29m
  • Exercise: Which node type is used for a character’s damage-receiving zone (hurtbox) so it can detect overlaps without physical pushing?
  • Video class: Hitboxes, Hit, Death, QueueFree from Scene ~ 1 Bit Projectile Platformer [Part 6] - Godot 4.3 Series 25m
  • Exercise: Why is it generally better to remove a projectile with queue_free() instead of free() after it hits a target?
  • Video class: Behavior AI Trees Setup 29m
  • Exercise: When a child class overrides _physics_process() in a shared platformer/character parent, what must it do to ensure the parent gravity logic still runs?
  • Video class: Behavior Tree Death 11m
  • Exercise: In a Play Death action leaf, what is a good way to stop the behavior tree from running after the death animation finishes?
  • Video class: Hit 27m
  • Exercise: When handling a non-lethal hit state in a behavior tree, what must happen after the hit animation finishes to prevent it from replaying every loop?
  • Video class: Global Autoload Singleton Naming for Consistency ~ 1 Bit Platformer [Part 10] ~ Godot 4.3 10m
  • Exercise: When creating a project-wide Global names autoload, why did it need to be set up as a scene with a Node root instead of a Resource?
  • Video class: Enemy Hit Stun Behavior Action ~ 1 Bit Projectile Platformer Part 11 ~ Godot 4.3 38m
  • Exercise: Why use a dedicated HitData object for hits instead of passing multiple parameters (like damage, knockback, duration) through signals?
  • Video class: Directional Knockback for CharacterBody2D ~ 1 Bit Platformer Part 12 ~ Godot 4.3 27m
  • Exercise: Why was a separate Knockback object class created instead of storing direction inside KnockbackStats?
  • Video class: On Hit Make Enemy Red Shader Script ~ 1 Bit Platformer Part 13 ~ Godot 4.3 15m
  • Exercise: How can you make an enemy flash red when it gets hit in Godot?
  • Video class: Player Behavior Tree 29m
  • Exercise: Why was an interrupt added to the Ground Input Action in the player behavior tree?
  • Video class: Floating Combat Text System 14m
  • Exercise: What is the main reason for introducing a CombatState Resource with a HealthChanged signal?
  • Video class: Player Hit Invincibility 13m
  • Exercise: Why is a boolean like ready_done used before emitting a Health Changed signal?
  • Video class: Solving Common Gdscript Warnings ~ 1 Bit Platformer [Part 17] ~ Godot 4.3 05m
  • Video class: Knockback Curve 20m
  • Exercise: When using a Curve resource to shape knockback over time, what do the X and Y axes represent?
  • Video class: Tracking Game Stats UI Panel ~ 1 Bit Platformer [Part 19] ~ Godot 4.3 30m
  • Exercise: Why is death reporting handled in the character’s root script (e.g., Invader) instead of directly inside the Health component?
  • Video class: How to Make a Game Over Screen ~ 1 Bit Platformer [Part 20] ~ Godot 4.3 18m
  • Exercise: To prevent an invisible Game Over UI from blocking shooting input during gameplay, what mouse setting should be applied to the UI controls?
  • Video class: How to Play Sound Effects in Godot 4.3 ~ 1 Bit Platformer [Part 21 - FINALE] 10m
  • Exercise: In a 2D projectile platformer, what is the correct way to play a weapon's shooting sound when a projectile is fired?

This free course includes:

7 hours and 55 minutes of online video course

Digital certificate of course completion (Free)

Exercises to train your knowledge

100% free, from content to certificate

Ready to get started?Download the app and get started today.

Install the app now

to access the course
Icon representing technology and business courses

Over 5,000 free courses

Programming, English, Digital Marketing and much more! Learn whatever you want, for free.

Calendar icon with target representing study planning

Study plan with AI

Our app's Artificial Intelligence can create a study schedule for the course you choose.

Professional icon representing career and business

From zero to professional success

Improve your resume with our free Certificate and then use our Artificial Intelligence to find your dream job.

You can also use the QR Code or the links below.

QR Code - Download Cursa - Online Courses

More free courses at Game development

Free Ebook + Audiobooks! Learn by listening or reading!

Download the App now to have access to + 5000 free courses, exercises, certificates and lots of content without paying anything!

  • 100% free online courses from start to finish

    Thousands of online courses in video, ebooks and audiobooks.

  • More than 60 thousand free exercises

    To test your knowledge during online courses

  • Valid free Digital Certificate with QR Code

    Generated directly from your cell phone's photo gallery and sent to your email

Cursa app on the ebook screen, the video course screen and the course exercises screen, plus the course completion certificate