Summary of "Complete FREE Godot Beginner Course 2024"
Summary of “Complete FREE Godot Beginner Course 2024”
This comprehensive beginner course on the Godot game engine, taught by instructor William, covers fundamental game development concepts and practical project creation using Godot 4.x. The course is structured around building three complete beginner projects—an arcade space shooter, a platformer, and a top-down zombie game—and includes bonus sections on exporting games for web and Android.
Below is a detailed outline of the main ideas, lessons, and step-by-step methodologies presented throughout the video.
Introduction to Godot and Course Overview
- Godot is an open-source game engine with many built-in tools (physics, animation, templates for PC/mobile export).
- No royalty fees when publishing games.
- By course end, students will build three projects:
- Arcade-style space shooter
- Platformer game
- Top-down zombie shooter
- Bonus: Exporting games to itch.io and Android devices.
Getting Started with Godot
- Download Godot from godot.org (choose regular Godot Engine, not .NET version).
- Installation steps for Windows are detailed.
- Create a new project, switch between 2D and 3D views.
- Add a Sprite2D node and assign an image.
- Position sprites using move tools.
- Play and test the project.
Project 1: Arcade-Style Space Shooter
Setup and Asset Import
- Create new project named spacecore shooter.
- Download free assets from kenney.nl (space shooter Redux).
- Extract and import assets into an art folder in the project.
Creating the Main Scene
- Resize viewport to 540x960 (mobile portrait style).
- Create a 2D main scene node.
- Add Sprite2D for background and scale/stretch to fill screen.
- Add Control node for UI, containing:
- Label for score (increase font size, add outline).
- Label for “Game Over” text (initially invisible).
Creating the Player
- Player node as Area2D with:
- Sprite2D for ship image.
- CollisionShape2D (circle).
- Set sprite filter to “nearest” for pixel clarity.
- Adjust z-index to render player above background.
Player Script (player.gd)
- Attach script to player node.
- Export variable for laser PackedScene.
- On
_process(delta), update player x-position to mouse x-position. - Input handling for firing lasers (space or left click).
- Create laser instance and add as sibling node.
- Area entered signal to detect collision with enemies:
- Destroy player and set game over flag.
Laser Object and Script
- Laser as Area2D scene with Sprite2D and CollisionShape2D (capsule).
- Script moves laser upward at speed
600 * delta. - Area entered signal destroys laser on collision with enemy.
Enemy Object and Script
- Enemy as Area2D with Sprite2D and CollisionShape2D (circle).
- Added to “enemy” group for collision detection.
- Moves downward at speed
400 * delta. - Area entered signal destroys enemy on collision with laser or player.
- Increments score by 10 on destruction.
Enemy Spawner
- Node2D enemy spawner with Timer (1 second interval).
- On timer timeout, spawn enemy at random x-position at top of screen.
- Switch direction when reaching spawn limits.
Score Script
- Attached to score label.
- Updates score text each frame.
- Converts integer score to string for display.
Game Over Script
- Attached to “Game Over” label.
- Shows label when game over flag is true.
- Listens for Enter key to reload current scene and reset variables.
Testing and Summary
- Player moves with mouse x-position.
- Can shoot lasers to destroy enemies.
- Score updates correctly.
- Game over triggers on player collision.
- Restart with Enter key.
Project 2: Platformer Game
Setup and Asset Import
- New project platform form game.
- Download pixel platformer assets from kenney.nl.
- Import into art folder.
Main Scene and Background Layers
- Create Node2D main scene.
- Add multiple Sprite2D layers for background (top, middle, bottom).
- Duplicate and position sprites for seamless background.
Platforms
- StaticBody2D nodes with Sprite2D and CollisionShape2D (rectangle).
- Long and short platforms created by duplicating and adjusting sprites.
- Out-of-bounds area as Area2D with CollisionShape2D (invisible).
Player Setup
- CharacterBody2D node with:
- Sprite2D for player.
- CollisionShape2D rectangle.
- Two Area2D children:
- JumpBox (for detecting enemies to jump on).
- HurtBox (for detecting damage).
- Scale sprites and set filter to nearest.
Animations
- AnimationPlayer node on player.
- Animations created for:
- Walk (looping).
- Jump (non-looping).
- Death (jump up, spin, fall down).
- Separate AnimationPlayer for hurt flashing effect using ColorRect overlay.
Player Script (player.gd)
- Variables for speed, gravity, jump force, states (game over, hurting, etc.).
- On
_physics_process(delta):- Handle movement input (A/D keys).
- Apply gravity with limit.
- Handle jumping with double jump.
- Play appropriate animations.
- Flip sprite based on direction.
- Manage health and hearts UI visibility.
- Handle game over and restart on space key.
- Screen shake effect on damage.
- Area entered signals for jump box and hurt box:
- Jump box: bounce when landing on enemies.
- Hurt box: trigger damage, game over, or win states.
- Hurt function to manage damage cooldown and animation.
Camera and UI
- Camera2D node added to main scene.
- UI elements (hearts, score, game over, win text) added as children of camera.
- Camera script to follow player with offset.
- Background script to follow player with offset.
- Z-index set for proper layering.
Enemies
- CharacterBody2D nodes with Sprite2D, CollisionShape2D, and Area2D children (enemy and enemy hurt box).
- AnimationPlayer for enemy with walk and death animations.
- Enemy script:
- Moves between two Marker2D points.
- Flips sprite based on direction.
- Plays death animation and disables collision on death.
- Detects jump box collisions to be defeated.
- Second enemy type:
- Uses same script but invincible (disabled hurt box).
Coins and Win Area
- Coin as Area2D with Sprite2D and CollisionShape2D.
- Collecting coin increases coin count.
- Win area as Area2D with collision shape and flag sprite.
- Touching win area triggers win state and allows restart.
Project 3: Top-Down Zombie Shooter
Setup and Asset Import
- New project zombie game.
- Download topdown shooter assets from kenney.nl.
- Import into art folder.
Main Scene Setup
- Node2D named Arena.
- Background node with tiled wooden plank sprites.
- Camera2D positioned and aligned.
UI and Timers
- UI node with Control containing score and high score labels.
- Timers for enemy spawn, difficulty increase, and camera shake.
Global Script
- Stores global variables: player, points, camera, high score, game off flag.
- Function to instantiate nodes with position and parent.
Player Setup
- Sprite2D node with timer (reload speed), Area2D hit box, and Area2D aim spot.
- Player script:
- Movement input (WASD).
- Clamp position to arena bounds.
- Face mouse cursor.
- Shoot bullets with cooldown.
- Handle death and restart.
Bullet Setup
- Sprite2D with VisibleOnScreenNotifier2D and Area2D hit box.
- Bullet script:
- Moves towards mouse direction.
- Deletes itself when off-screen.
- Has “enemy damager” group.
Enemy Setup
- Sprite2D with Area2D hit box and timer (stun).
- Enemy script:
- Faces player.
- Moves towards player unless stunned or game over.
- Gets stunned and pushed back on bullet hit.
- Dies when HP ≤ 0, triggers blood particles and score increment.
Blood Particles
- CPUParticles2D with timer to stop emission.
- Particle settings for blood effect.
Camera Script
- Attached to Camera2D.
- Implements screen shake effect with intensity and duration.
Arena Script
- Handles enemy spawning at random positions outside player view.
- Decreases spawn timer interval over time to increase difficulty.
Score Script
- Updates score and high score labels.
- Saves high score persistently.
Exporting Games
Export to itch.io (Web)
- Export project as HTML zip.
- Upload zip to itch.io.
- Adjust dimensions and enable shared array buffer support.
- Test game in browser.
Export to Android
- Download and install OpenJDK 17.
- Install Android Studio for SDK.
- Configure Godot project settings for Android:
- Set window stretch mode to viewport.
- Set orientation to portrait.
- Add Android export template.
- Set Java SDK and Android SDK paths.
- Export APK file.
- Transfer APK to device for testing (via Google Drive or USB).
- Optionally set up keystore for publishing.
Final Remarks
- Encouragement to continue building and expanding on learned skills.
- Godot is a powerful and free tool for game development.
- Course covers foundational skills and practical workflows.
Speakers / Sources
- William: Course instructor and main speaker throughout the video.
Detailed Methodologies / Instructions (Selected Examples)
Creating Player Movement and Shooting (Space Shooter)
- Create player node (Area2D).
- Add Sprite2D and CollisionShape2D.
- Attach
player.gdscript:- Export PackedScene for laser.
- In
_process(delta), update player x-position to mouse x. - Detect input for firing laser.
- Instantiate laser scene and add as sibling.
- Connect
area_enteredsignal to detect collisions.
Creating Enemy Spawner (Space Shooter)
- Add Node2D enemy spawner with Timer.
- Timer timeout signal:
- Generate random x within viewport width.
- Instantiate enemy scene at random x, fixed y.
- Add enemy as child of spawner.
Creating Platformer Player Script (Movement, Jump, Health)
- Variables for speed, gravity, jump force, states.
_physics_process(delta):- Reset jump count if on floor.
- Apply gravity with max limit.
- Jump on input if jumps < 2.
- Move left/right on input.
- Play animations based on state.
- Flip sprite based on direction.
- Manage health and game over state.
- Screen shake on damage.
- Area entered signals for jump box and hurt box.
Creating Top-Down Player Script
- Variables for speed, velocity, bullet scene, shoot cooldown.
_process(delta):- Get input for movement.
- Normalize velocity to prevent faster diagonal movement.
- Clamp position within arena.
- Rotate to face mouse.
- Shoot bullet on click with cooldown.
- On hitbox
area_entered:- Set dead, hide player, set game over flag.
- Wait 1 second, reload scene.
Exporting to itch.io
- Project > Export > Add Web.
- Download export templates.
- Export HTML zip.
- Upload to itch.io, set project type to HTML.
- Set dimensions and enable shared array buffer.
- Save and test in browser.
Exporting to Android
- Install OpenJDK 17 and Android Studio.
- Set window stretch mode and orientation.
- Add Android export template.
- Configure SDK paths in editor settings.
- Export APK.
- Transfer and install APK on device.
This summary captures the key concepts, workflows, and step-by-step instructions taught in the Complete FREE Godot Beginner Course 2024, providing a solid foundation for beginners to start creating games in Godot and publish them.
Category
Educational
Share this summary
Is the summary off?
If you think the summary is inaccurate, you can reprocess it with the latest model.