
This course was made with Godot 4.1, so I recommend using Godot 4.1 and download the asset for Godot 4.1 for the best experience(LittleAdventurerAsset1.1_ForGodot4.1.zip). Everything you'll learn in the course will still work with later versions, so there is no need to use the latest version of Godot.
But if you want to use Godot 4.2, please download the asset for Godot 4.2(LittleAdventurerAsset1.1_ForGodot4.2.zip). Please make sure to use the right version of asset to match your Godot version, since the asset for 4.2 is not compatible with Godot 4.1
Please also notice that using later versions of Godot(newer than 4.2) might result in some unknown problems.
Unzip the asset files to the root folder of your project, and make sure the name of the asset folder is 'Asset'. Please do not change the name of the asset folder, otherwise the Godot editor will not be able to locate some files.
Download and Set up the FBX importer for Godot
Please follow this lecture until you copy the Asset folder into your Godot project folder,
then jump back to Godot and you are going to get a pop-up window asking you for the FBX importer (FBX2glTF).
Check the download link in the pop-up window to download the zip file (FBX2glTF-windows-x86_64.zip for Windows), and extract the exe file. Then go back to Godot and set the path. After Godot finds the FBX2glTF file is valid, the import process will proceed.
You can also head to the Godot official website to download FBX2glTF:
https://godotengine.org/fbx-import/
Rename the root node to Level, add a CharacterBody3D as the player, attach the LittleAdventurerAndie visual with its material override, and add a CapsuleShape3D collider adjusted to y=1.
Add a camera to the player using a spring arm, adjust rotation and position, attach a camera to the spring arm, and set the camera fov to 30 degrees for an orthographic look.
Create and customize your first CharacterBody3D script by naming it PlayerCharacter.gd, using the basic movement template, and learning Godot's UI navigation and testing workflow.
Set up the input map in project settings. Add left, right, up, and down actions, bind each to its direction key and A, D, W, S, and test with F5.
Rotate the visual node to face the input direction by updating its y-rotation using the velocity-derived lookDir in _physics_process.
Add an OmniLight3D as a child of the player, set position to y=2, z=1, and tune range to 3, color to ffdd76, energy to 0.5, and specular to 0.2.
Control the player's running animation using the AnimationPlayer node in Godot. Set up an onready animationPlayer variable, fetch the node, and play LittleAdventurerAndie_Run when moving and LittleAdventurerAndie_Idel when idle.
Attach two swords to the player's hands using BoneAttachment3D on DEF-hand.R and DEF-hand.L in Godot 4; adjust rotation and position, then duplicate for the other hand and test.
Set up the footstep VFX by adding a Node3D as the VFX root under the player, then drag the footstep_particle.tscn into the VFX node.
Write a footstep vfx script in Godot 4 to trigger footstep particles during run and stop them on idle, using onready, get_node, and the emitting property.
Attach a coin script to the Collectable_Coin node to rotate the VisualNode each frame and detect player collection via the body_entered signal and player group checks, then queue_free on collect.
Update the PlayerCharacter script to track coins with coinNumber and implement AddCoin(value int) to update and print total. Call AddCoin() from the coin script when collecting a coin, passing coinValue.
Add an AnimationPlayer to the collectable coin, create a Collected animation with position, scale, and visibility keyframes, then turn it into a reusable scene and test.
Develop a GameUIManager that updates the coin label in the UI by wiring the Label_Coin node, using a coinNumberUpdated signal, and a coinNumber setter to refresh as coins change.
Organize the scene hierarchy and set up an enemy by adding a CharacterBody3D node, importing NPC_01.fbx, applying npc_material, and adding a CapsuleShape3D collider, then adjust its position.
Create a NavigationRegion3D, make level a child, bake navmesh with colliders, set cell height to 0.01 m and agent height to 2, with max climb 0 and max slope 0.02.
Develop an enemy AI script for a CharacterBody3D using NavigationAgent3D, target the player in the 'Player' group, and stop at 2.2 units while smoothing velocity with lerp.
Build the base state class and state machine in Godot 4 for a 3D action game. Create StateBase.gd and StateMachine.gd, name classes, and implement enter, exit, state_update, and showInfo.
Create a 3D player state machine under the Player node in Godot 4, with Idle and Run states and scripts inheriting StateBase, stored in Game/Script/State as PlayerIdle.gd and PlayRun.gd.
Write a state machine script in Godot 4, using initial_state, NodePath, and @export to assign the Idle and Run states. Initialize each state in _ready, wire state_machine, character, and animationPlayer, and implement _physics_process and switchTo for state transitions with enter, exit, and debug showInfo.
Implement the player's idle state in Godot 4 by overriding state_update and exposing direction input. Switch to Run when input exists, and trigger the idle animation via base state.
Update the footstep vfx script by wiring a GPUParticles3D node, playing on enter and stopping on exit in the PlayerRun state, with editor assignment and F5 testing.
Add a slide input action mapped to the space key, create a new 3D node named slide under the state machine, and add a PlayerSlide.gd script in Game/Script/State inheriting StateBase.
update the player controller to handle the slide input, introduce slide state with animation, and implement timed sliding with slideSpeed and slideDuration, switching back to idle when the duration ends.
Set up an Attack input action in project settings, assign the left mouse button, and update PlayerController to set attackKey_pressed in _physics_process, triggering Attack in Idle/Run.
Create a player attack state in Godot 4, add an attack state node under state machine, and enable the hitbox only during the attack via animation events.
Use a call method track in the animation to enable and disable the HitBox during LittleAdventurerAndie_ATTACK_01, calling enableHitBox() and disableHitBox() in the Attack script and test.
Add a health system for the enemy in Godot 4 by defining maxHealth and currentHealth, initializing currentHealth in _ready, and implementing applyDamage(damage) with clamping and debug output.
Add the attack hit VFX in Godot 4 by wiring a GPUParticles3D node, placing the hit particle at the enemy’s position, and restarting the VFX on hit.
Add forward slide during the player attack by updating slide duration and facing direction, moving with slideSpeed and delta time, and stopping when the duration ends or on enemy hit.
Hello, I’m Single-minded Ryan.
In this course, we are going to make a 3D action game with Godot. In the game you will control Andie, our little adventurer, to explore an ancient world. You’ll need to defeat the enemies and collect enough coins to enable the portal at the end stage to finish the game.
Godot is a beginner-friendly and highly efficient game engine, its refined and intuitive workflow can save us a lot of time and effort, and I also believe Godot can achieve high-quality game graphics.
My goal is to create a visual-oriented course to show you the potential of Godot.
I want to combine the intuitive workflow with production-level graphics, to immerse you in the experience where you feel like you are making a real game from scratch.
This course comes with a production-level game asset package, including high-quality characters with high-resolution textures, materials, animations, environment models, a pre-constructed level, and a bundle of VFX.
(sound & music not included at the moment)
Along the course, you are going to learn everything you need to make your own game, from how to code in GDScript, how to control the characters, create enemy AI, control the animations and VFX, design the game level, create the game UI, all the way to how to compile your game to EXE files.
I will 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 3D action game 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:
Customize Godot's settings for your game and your workflow
Code in GDScript, which is Godot's built-in programming language
Code basic character movement, attack, and dodge abilities
Create an attack combo system
Use Godot's input system
Control animations with AnimationPlayer node
How to communicate from the animations to the script
Create animations to move and rotate objects
Control material effect with GDScript and animation
Control VFX via GDScript
Create Enemy AI with Godot's Navigation System
Control Enemy's behaviors like spawn and dead
Use a state pattern to control the Player and the Enemy's status
Create a health & damage system
Create a health pick-up
Create a coin-collecting system
Create a Game logic manager
Design the Game Level
Create 3D text UI
How to load and reset game scenes
Create a main menu and game menu with the Godot UI system
How to create buttons and control button functions with GDScript
How to export the game project into EXE files
Please NOTE that this course DOES NOT contain any sound and music assets at the moment.
*All of the assets (models, animations, VFX, etc.) provided in this course are only for educational purposes, please do not use them in any commercial projects.