Changelog: Learn 2D Gamedev From Zero with Godot 4

This changelog lists all the new features, content, improvements, and fixes added in every course release that are relevant to you.
What do the version numbers mean?
The version numbers are split into three (for example. 0.4.2) to follow a standard convention in game and software development.
In this course, the first number indicates whether the course got out of early access. If it is 0, it is still in early access, and 1 means it got out of early access and can be considered complete and stable (we will still make improvements after that point).
The second number going up indicates the addition of new content, new features, or substantial improvements. That can also come with fixes.
The third number going up means the release mostly brings corrections and bug fixes.

Version 0.21.0

Released on 2024-12-12
This release completes M10. Path of Sorcerers with the addition of the last lesson, M10.L17: Exporting your game. It's the only change in this update.
You do not need to re-download the project files for this update. You can stick with the Godot files from release 0.20.0.

Version 0.20.0

Released on 2024-12-10
This release focuses on improving M10. Path of Sorcerers module with various bug fixes, rephrased sections, and extra content. It also brings a new lesson, M10.L16: Music and sound.
M2. Get to Know Godot
  • M2: Added leading zero in project title for consistency and sorting in the project manager
M7. Telling a Story
  • M7.L8: Fixed incorrect URL link to dictionary cheatsheet
M9. Top Down Movement
  • M9.L11: Removed enum from game states pseudocode example and added info callout about constants and enums
M10. Path of Sorcerers
Fixes:
  • M10.L4 & M10.L8: Changed motion mode recommendation from grounded to floating for player and mob
  • M10.L11: Fixed incorrect call to bind when connecting the resume button to the toggle function
  • M10: Fixed hurt and death sounds being inverted on the shooting mob in extended solution project
  • M10: Corrected dialogue text animation behavior when pressing the interaction key in extended solution project
Improvements and clarifications:
  • M10.L1: Updated video clips of the extended version to reflect latest project changes
  • M10.L10: Added troubleshooting callout for handling player weapon during death animation
  • M10.L12: Renamed variable from "potential_items" to "possible_items" for consistency
  • M10.L14: Added information about blur and tint shader usage on web platform
  • M10.L8 & M10.L10: Updated challenges, instructions, and code references to make the module work with the new M10.L16, which is dedicated to music and sound

Version 0.19.0

Released on December 4, 2024
This release brings two new lessons in M10: you'll get to code a teleporter and end game menu that displays the player's playtime.
M4. To Space and Beyond
  • M4.L4.P1: Fixed practice tests to work with any timer node name
  • M4: Added macOS-specific instructions for accessing editor settings
M6. Looting
  • M6.L8: Added reference note and link to M6.SG1
  • M6.L7: Improved explanations for transition and easing functions
  • M6: Changed the deprecated TileMap node into a TileMapLayer node
M7. Telling a Story
  • M7.L8: Added reference note and link to M7.SG2
  • M7.L4: Added troubleshooting section
  • M7.L2: Added guidance for Control node screen coverage
  • M7: Added macOS-specific instructions for accessing editor settings
M8. Start a Dialogue
  • M8.L2: Improved explanation of container sizing
M9. Top Down Movement
  • M9.L4.P1: Check for node transform in practice tests
  • M9.L8: Added missing instructions about restoring y-sorting with obstacles
  • M9.L6: Fixed incorrect glossary link
  • M9.L6: Changed reference to character face into head shape node to be more accurate
  • M9.L6: Improved viewport visualization
  • M9.L10: Added documentation for tint parameter
  • M9.L11: Fixed pause menu tween bug
M10. Path of Sorcerers
  • M10: Fixed GDPractice addon initialization errors

Version 0.18.0

Released on November 26, 2024
This release adds two lessons in M10 where you'll code a chest that drops a pickup and create a game level.
You do not need to re-download the project files for this update.

Version 0.17.0

Released on November 22, 2024
This release brings two new lessons, M10.L10 and M10.L11, where you'll code player health, add a health bar, and create a pickup and reusable item resources.
M9. Top Down Movement
  • M9.L4: Fixed layout issue with overlapping aside sections
General
  • Course-wide: Updated remaining references of Godot 4.2 to Godot 4.3

Version 0.16.0

Released on November 18, 2024
This release brings two new lessons in M10.
You do not need to re-download the project files for this update.
NOTE:
We inserted a new lesson about giving the player hands that control the weapon. Coding the mob is now M10.L8.
M9. Top Down Movement
  • M9.L15: Added detailed explanations about avoidance intensity in pathfinding, helping you better understand how to fine-tune agent navigation.
M10. Path of Sorcerers
  • M10.L7 and M10.L8: inserted new L7

Version 0.15.0

Released on November 14, 2024
This release brings three new lessons to M10. Path of Sorcerers, L5 to L7, where you'll code the bullets, weapon, and first mob for your twin-stick shooter.
M8. Start a Dialogue
  • M8.L6: Fixed incorrect class names displayed in code reference
M9. Top Down Movement
  • M9.L2: Fixed illustration showing motion mode settings
  • M9.L4: Corrected typo in quiz answer
  • M9.L4: Added clarification about Y sorting feature diagram being one example use case
  • M9.L6: Updated terminology, replacing "runner face" with "head shape"
  • M9.L11: Fixed typo in tween function documentation
M10. Path of Sorcerers
  • M10.L4: Added new question and answer about class names
  • M10.L4: Added recommendation for creating a room scene to preview player movement

Version 0.14.0

Released on November 10, 2024
This release brings the first four lessons in M10. Path of Sorcerers. This challenge-driven module will put what you've learned to the test as you create a top-down twin-stick shooter.
We made several improvements to the existing content, including fixing typos, improving explanations, and adding new content to the study guides.
M4. To Space and Beyond
  • M4.L4: Improved clarity in the explanation of code implementation order
M6. Looting
  • M6.L6: Fixed incorrect sprite texture reference in practice exercise
M7. Telling a Story
  • M7: Removed incorrect chapter references to chapters 14, 15, and 16 (which are actually in M9)
M8. Start a Dialogue
  • M8.L8: Improved challenge solution to prevent ship flipping when reaching the goal
M9. Top Down Movement
  • M9.L1: Improved explanation of StaticBody2D usage as obstacles for better clarity
  • M9.L4: Added troubleshooting section for y-sorting issues
  • M9.L5: Fixed typo in hint section showing incorrect HTML-like tags
  • M9.L13: Fixed quiz content to correctly reference the "Runner" node instead of "Player"
  • M9.L13: Added a hint about the move_toward() function
  • M9.L13: Added new challenge
  • M9.L15: Removed unnecessary content and added missing instruction for renaming the raycast test scene's root node

Version 0.13.0

Released on 2024-11-01
This release completes M9. Top Down Movement with three new lessons. You'll learn to create an AI-controlled character that avoids obstacles and we'll wrap up, as in M8. Start a Dialogue, with a recap and suggested games to try tackling on your own.
M7. Telling a Story
  • M7.SG1: Enhanced explanation of theme tabs with additional information
  • M7.SG2: Fixed typo in study guide content
M8. Start a Dialogue
  • M8.L4.P1: Fixed typo in module content
M9. Top Down Movement
  • M9.L11: Corrected explanation regarding input propagation order
  • M9.L11: Fixed typo in content
  • M9: Added obstacles to final circuit in solutions project
  • M9: Fixed typo in range annotation hint
General
  • Fixed inconsistent project naming across the course

Version 0.12.0

Released on October 28, 2024
This release brings 2 new lessons to module 9. You'll learn to code an AI that chases and catches the player.
M5. Loot it All
  • M5.L2: Fixed typo in lesson content
M6. Looting
  • M6.L5: Added educational note about input event handling versus input actions
  • M6.L6.P1: Fixed missing texture files in practice exercise
M7. Telling a Story
  • M7.L6.P1: Corrected typo in poem content
M8. Start a Dialogue
  • M8.L7: Updated external reference link to Roadwarden
M9. Top Down Movement
  • M9.L2: Fixed formatting of Texture property documentation
  • M9.L8, M9.L9: Corrected script file name references in lesson code
  • M9.L9: Added missing signal connection in code reference
  • M9.L10: Fixed typos and corrected shader parameter name
General Improvements
  • Updated AudioStreamPlayer icons to match Godot 4.3 visual style

Version 0.11.0

Released on October 20, 2024
This release brings 2 new lessons to module 9, where you'll learn how to design, animate, and code a pause menu.
This release does not require any changes to the projects you have already downloaded.
As usual, we also made improvements to other course content, including improved explanations, added examples, and enhanced practice tests.
M2. Get to Know Godot:
  • M2: Improved sentence phrasing in the "Draw the Bridges" tour
  • M2: Removed unnecessary Node icon being added to the reference in the Node dock
M3. Learn GDScript:
  • M3.L1: Added a callout about GDScript being part of the C family
M4. To Space and Beyond:
  • M4.L1: Removed redundant sentences
  • M4.L3: Clarified the section about turning the ship only when moving
M6. Looting:
  • M6L3: Remind users that all signals will be in code
M7. Telling a Story:
  • M7.L2: Improved explanation of anchors, including an extra example and clarification on texture sizing
  • M7.L2: Added troubleshooting steps for Windows users who cannot resize the game window
  • M7.L5: Added a warning about lack of in-editor errors
  • M7.L6.P1: Reworked test cases for animation pacing
M9. Top Down Movement:
  • M9.L8.P1: Removed unnecessary normalized() call from solution and updated tests
  • M9: Corrected documentation for the finish line script
General:
  • Changed all projects to use compatibility mode
  • Corrected typos in multiple modules (M9.L6, M7.L8, M4L2)

Version 0.10.0

Released on October 7, 2024
This release introduces a new lesson in Module 9 that introduces a countdown before the race starts. It also includes a number of improvements and fixes across various modules.
There are new glossary entries for terms like Duck Typing, and more. There are about 154 in total now.
This release does not require any changes to the projects you have already downloaded.
M9. Top Down Movement:
  • M9.L5: update code reference to reflect changes to acceleration and deceleration code in this lesson
  • M9.L5: explain why character body parts can disappear behind the circuit and that we'll address it in L6
M5. Loot it all:
  • M5.L6.P2: rework practice to better frame assets and preserve values from the student
As well as many other small typos and improvements across the course.

Version 0.9.0

Released on September 30, 2024
This release updates the lessons to align the course content with Godot 4.3. It also adds a new lesson in M9. Top Down Movement.
We remade these lessons for Godot 4.3:
  • M5.L6: for node groups.
  • M7.L4: for the theme editor.
  • M9.L7: for particle systems.
M4. To Space and Beyond:
  • M4.L3.P2: Added note about the direction variable being defined at the top of the script
M6. Looting:
  • M6.L9: Updated instructions for collecting only the topmost clicked item spawned from the chest
M7. Telling a Story:
  • M7.L4: Enhanced lesson with additional video clips for better illustration of steps
M9. Top Down Movement:
  • M9: Fixed an error occurring when changing the default animation of the runner visuals and running the runner visual scene
  • M9.L7: Specified to set the y gravity property for upward particle movement

Version 0.8.1

Released on September 22, 2024
This release addresses a crash that would affect some users on some systems in M2.
M2. Get to Know Godot:
  • M2: fixed crash on some systems when first activating the tours project.
  • M2: Remove Windows-specific warning about crashes on Windows and needing a manual editor restart.

Version 0.8.0

Released on September 20, 2024
This release introduces a new lesson on particle systems in Module 9 and updates the Godot tour and practice plugins to work with Godot 4.3. There are more changes lined up to update a number of screenshots and video clips to better match the Godot 4.3 interface.
It also includes numerous improvements and fixes across various modules. Most notably, we reworked GDPractice, our Godot practice plugin, to fix a bug when resetting practices that would link files from the practice reference and make it difficult to complete the practices.
There are new glossary entries for terms like Game AI, and more. There are about 150 in total now.
M2. Get to Know Godot:
  • Updated instructions for Godot 4.3
M4. To Space and Beyond:
  • M4.L2: Updated type hints setting to match Godot 4.3
M5. Loot It All:
  • M5.L7: Added troubleshooting point about placement of the random item placer node
  • M5.L10: Corrected value for Tween.TRANS_SINE
M6. Looting:
  • M6.L3: Improved explanation of node access performance
  • M6.L3: Explained why tweens need to be created in _on_mouse_*() functions instead of _ready()
  • M6.L5: Rewrote explanation of using engine features over custom variables with more details
  • M6.L6.P1: Rewrote practice code to match the lesson more closely
  • M6.L7: Clarified tween timing explanation
M7. Telling a Story:
  • M7.L4, M7.L5, M7.L6: Corrected various typos
  • M7.L6.P1 and M7.L6.P2: Improved automated checks and tests
  • M7.L9: Edited section "Refactor, don't predict" to be more nuanced
  • M7.SG1: Fix typos
  • M7.SG2: Clarify "set" example
M8. Start a Dialogue:
  • M8: Make action buttons vboxcontainer use % consistently to get the node
  • M8.L5: Corrected typo in code in hint 4 of voice challenge
  • M8.L7: Updated DialogueChoice docstring to use an unordered list
  • M8.L8: Corrected typo in asteroid project
M9. Top Down Movement:
  • M9.L2: Specify that we need to change the floating motion mode
  • M9.L2.P1: Added test for velocity and direction
  • M9.L3: Simplified explanation of character flipping using sign(direction.x)
  • M9.L3: Updated introduction to mention teaching the match statement instead of dictionary lookups
  • M9.L4: Corrected extension in circuit filename
  • M9.L4: Add troubleshooting point in case adding points to a polygon does nothing
  • M9.L5: Correct "smooth movement" url
  • M9.L5: Removed redundant sentence about art resolution
  • M9.L5: upate mention of what's coming next at the end of lesson after extending lesson plan for this module
  • M9.L6: Improved explanation of the SubviewPort node functionality
  • M9.L6: Specified which node of the character's face has a higher Z index
  • M9.L7: Added new lesson on particle systems

Version 0.7.0

Released on August 30 2024
This update brings a batch of three new lessons in M9. Top Down Movement. It also includes a few fixes and improvements to previous modules.
M4. To Space and Beyond:
  • M4.L2: rewrite instruction about script creation template, mention to uncheck the template option
  • M4.L3.P1 and L3.P2: add check and explanation message for when the direction variable is moved into the _process() function
M5. Loot It All:
  • M5.L2: add troubleshooting point about lesson reference vs function call when connecting the area signal
  • M5.L2.P1: add note with instructions on how to open another scene and reminder to edit the ball scene
  • M5.L3: specify that the root viewport created by Godot is a Window node, and that a Window node is a viewport
  • M5.L6.P2: Add note to practice that you may get a different outcome than the reference
M6. Looting:
  • M6.L7: update quiz about guessing how to make tweens run in parallel
M7. Telling a Story:
  • M7.L8: clarify argument in question Do we have to use square brackets to access dictionary values?
  • M7.L6.P1: remove empty lines from poetry script in attempt to address issue when trim trailing whitespace option is on
M9. Top Down Movement:
  • M9.L2.P1: correct techniques field on the website ending with words in italics

Version 0.6.0

Released on August 19 2024
This release brings the first three lessons of M9. Top Down Movement.
Heads up! Module 9 is expected to have 10 lessons. So it's not over yet!
Starting this module we will be releasing lessons gradually, one at a time. This allows us to push lessons out to you more frequently and iterate faster on your feedback.
If you prefer to wait until the complete module is released with all the lessons, keep an eye/ear out for the usual announcement. You can subscribe to course updates by clicking the button in the Stay Tuned section, or join our discord server.
The release also includes improvements and fixes to previous modules.
M1. Introduction:
  • M1.L2: Update menu title to match lesson title
M2. Get to Know Godot:
  • M2.102.d: Allow continuing and completing the tour when the player is a child of different nodes in the scene
M4. To Space and Beyond:
  • M4.L6: Remove extraneous camera icon
M5. Loot It All:
  • M5.L7: Add note in the challenge to clarify that you need to reintroduce _ready() in the script
M6. Advanced Looting:
  • M6.L6.P1: Redesign the practice to be closer to the lesson and less confusing
  • M6.L6: Add troubleshooting point in case the chest doesn't spawn any items
  • M6.L6: Add extra instructions on how to refresh editor warnings
  • M6: precise that Tween.set_loops() doesn't need to be called before creating tween animations
M7. Telling a Story:
  • M7.L5: Mention how to add variations in the button style challenge
M8. Start a Dialogue:
  • M8.SG2: Fix missing word, replace title
  • M8.L5: Rewrite second challenge instructions and hints to make it clearer
  • M8.L3: Add info callout about differences between bind and lambda
  • M8.L6.P1: Clarify an instruction comment in the code
  • M8.L6: Add troubleshooting point to reload the scene or restart Godot if an exported property does not appear
  • M8.L6: Add extra instructions on how to refresh editor warnings
  • M8.L5: Fix: Do not use code ref with special class name
  • M8.L6: Fix typo in method _get_configuration_warnings name
General:
  • Add page with the early access outline to see upcoming modules
  • Rename references to M2 into Get to Know Godot

Version 0.5.2

Released on July 17 2024
This small update refines the 8th module, Start a Dialogue, with corrections and improvements to the lessons and practices. It also fixes a video cropping issue in the 7th module.
M7. Telling a Story:
  • M7.SG1: fix a video getting cropped on the page
M8. Start a Dialogue:
  • M8.L2: add instruction to open solutions godot project to find the scene to experiment with
  • M8.L5.P1: correct property name to match in code and practice instructions
  • M8.L5: add missing script name
  • M8.L5: add missing var keyword in challenge hint
  • M8.L6.P1: correct reference to PoweredItem script in practice instructions
  • M8.L7: correct typos and update code reference to match lesson
  • M8.L8: remove Arkanoid from suggested projects as the knowledge gap to tackle this one is still a little too large
  • M8.SG2: correct 2 typos

Version 0.5.1

Released on July 12 2024
This is a quick hotfix release to remove pre-added nodes in the starting scene a tour in M2.
M2. Get to Know Godot:
  • M2.102.a: fix starting scene already having the player and some rooms added
M8. Start a Dialogue
  • M8.L1: add section about downloading the project files
  • M8.L1: correct typo
  • M8: rename practices to match their lesson number. They were offset by one lesson

Version 0.5.0

Released on July 9 2024
This release adds M8. Start a Dialogue, the eighth module of the course. In this module, you expand on what you created in M7 and code a branching dialogue system.
It also brings improvements to previous modules, including new questions and answers, and fixes to practices and lessons.
M1. Introduction:
  • M1.L1: add details and improve phrasing to highlight that the course teaches gamedev alongside programming foundations, and that code is the tool we use to translate game ideas into gameplay
M2. Get to Know Godot:
  • M2: add troubleshooting point for Windows users when getting a file path too long error when extracting the ZIP files
  • M2: in tour 101, clarify the difference between nodes and scene instances, and how scenes present themselves as a single node but hide a more elaborate structure
  • M2: in tour 102.a, better distinguish node and scene instances
  • M2: update mention that Godot tours uses blue highlights as we change it to purple. Update Japanese translation
  • M2.L1: update picture showing tour list after enabling plugin
M4. To Space and Beyond:
  • M4.L1: rephase to better distinguish lessons and practices and how to follow along
  • M4.L5: correct spelling of decelerate
M5. Loot It All:
  • M5.L2: add several paragraphs to help wrap your head around signal names and connected functions, and why we use the _on_signal_name convention for naming the connected functions
  • M5.L10: correct explanation of tween.set_loops(), it affects following animations in the tween
  • M5.SG1: correct typo in remote scene tree
M6. Looting:
  • M6: make type hints consistent throughout series in _input_event() and for variable loot_item
  • M6: do not use self in the course content before teaching it
  • M6.L4: add 2 asides
  • M6.L4: correct typos
  • M6.L5: add more explanations and breakdown of boolean expressions and alternate syntax using nested if blocks
  • M6.L9: add optional explanation and solution to picking only the top item
M7. Telling a Story:
  • M7: fix typos in L10 and L6.P1
  • M7.L7: correct typos in bubble and group icon text
  • M7.L8: correct two typos
  • M7L9: fix missing code reference
  • M7.L10: add a troubleshooting callout to help with the error 'cannot infer variable type' for students who did a challenge in M7.L6
  • M7.SG2: remove incorrect reference to the set variable for dictionaries, add aside explaining that both indexing syntaxes also work with nodes
  • M7.SG2: fix: replace instances of the empty() method with is_empty()
  • M7.SG2: clarify what sets are and how to use them
  • M7.SG2: clarify what the has() method does

Version 0.4.2

Released on June 1 2024
M2. Get to Know Godot:
  • M2: Increase contrast on title bubble background
  • M2: Remove unused line of code in player.gd script
  • M2: Replace inputs used for sprite direction to ensure the sprite turns as expected in all circumstances
  • M2: Revert to suggesting Godot 4.2.0 for macOS users after reports of crashes on some computers with 4.2.2
  • M2.L1: Update Godot version in mac troubleshooting callout
M4: To Space and Beyond
  • M4L3: Correct stray aside
  • M4.L4.P1: Add test and requirement that the timer is set to one shot
  • M4.L5.P1: Correct the order of terms in the second requirement to make the subtraction mathematically correct
M6: Looting
  • M6.L3.P1: Add a troubleshooting point that you cannot use a tween animation to instantly change the outline thickness
M7. Telling a Story:
  • M7: Add instructions that you need to add the characters dictionary before the dialogue array
  • M7: Change the project window scaling mode to disabled to allow anchors to work
  • M7.L2: Correct typo
  • M7.L2: Correct wrong word
  • M7.L2: Fix typo in challenge
  • M7.L3: Correct description of shader pattern size property
  • M7.L4: Add icons to theme tabs, edit lists, edit
  • M7.L4: Edit, fix typos and missing words
  • M7.L4: Invite to use a lower font size than 48px depending on your display resolution
  • M7.L4: Minor rephrases
  • M7.L4: Remove extraneous word
  • M7.L5: Correct typo in variable name
  • M7.L5.P1: Add support for more ways of solving the practice
  • M7.L6: Fix: Normalize sounds, change mp3 to ogg
  • M7.L6: There should be no script shown in the image
  • M7.L6.P1: Improve hint when not using the appearance_time variable
  • M7.L7: Change theme filename from main.theme to main_theme.tres
  • M7.L7: Fix typo in recap section
  • M7.L8: Remove duplicated end text
  • M7.L8.P1: Correct code comment to mention Gobot and Nova
  • M7.L9: Remove duplicated dictionary definitions in code listing
  • M7.L9: Remove overlapping aside
  • M7.L10: Add question and answer and specify to define the expressions dictionary before dialogue items
  • M7.L10.P1: Correct typo in practice code comment, space out lines of code according to GDScript style guide
  • M7.L12: Make sure we don't forget we're solving an earlier challenge
  • M7.L14: Correct code listing showing a dialogue line that didn't change instead of changing the text to use a BBCode animation
  • M7.SG2: Correct code example for copy-pasting into Godot, add extra paragraph explaining the use of the _init() function in a code listing

Version 0.4.1

Released on May 13 2024
This patch release improves phrasing in the first lessons of the seventh module and corrects typos you reported across the module. It also ensures the course files have an empty lessons/ folder.
M7. Telling a Story:
  • Ensure there's an empty lessons/ folder in the course files
  • Change display stretch mode to allow window resize to resize app UI in L2
  • L1: correct typo in heading
  • L3: correct image to use Keep Aspect Centered property instead of Keep Centered for consistency with text
  • L4: correct link to theme editor study guide in lesson text
  • L4: improve phrasing and correct typos
  • L5: correct script name in code reference at the end of the lesson
  • L5: correct a code listing showing code before instruction to add it, improve comments in code reference at the end of the lesson.

Version 0.4.0

Released on May 12 2024
This update brings the seventh module, M7. Telling a Story, the longest to date, with 14 lessons, 7 practices, and 2 study guides. It focuses on Godot's UI system and working with arrays and dictionaries.
The glossary got major additions with over 30 new entries to cover many more programming concepts and Godot-specific terms.
Educational technology
GDSchool, the web platform hosting this course, got a few new features:
New UI elements: figure (image with caption), carousel (slideshow you can navigate by clicking arrows), and "your turn" (an invitation for you to try applying what you've learned and get extra practice).
We also made a dozen fixes and improvements across the website:
  • Do not show the loading bar and spinner when opening a side panel (glossary, etc.). It would keep showing the loading bar after the modal was opened.
  • Add an outline around testimonials in dark mode.
  • Ensure user guide download links show up when opened through a remote control.
  • Make zoom work correctly for quote bubble tail on old browsers.
  • Fix filenames that ended with double slashes.
  • Use single-column layout on tablets. It would show the 2-column layout designed for laptops.
GDPractice, the practice system, got several important improvements:
  • Practices now use a split-screen view. This allows you to see the practice solution on the right and your practice scene on the left, both at the same time.
  • We now hide the addons folder and files in Godot when GDPractice is active in the project. This prevents from accidentally instantiating files and resources from the addon and makes the project cleaner and easier to browse. It also affects the quick load popup.
  • The framework now forces Godot to reload scene files when resetting a practice. This ensures that when you reset a practice, the editor hopefully always reloads the files. Please let us know if that's not the case for you!
For Windows users, we also shortened the addon path to reduce issues with long paths.
GDTour, the interactive tours, got a ton of improvements, mostly through the work done on Learn 3D Gamedev From Zero with Godot 4. The most important ones for you are:
  • You can now drag and drop the bubble to move it around the screen in case it gets in the way.
  • The bubble should never overshoot the screen anymore on small displays. It should stay within the Godot editor bounds. Please let us know if you have a small screen resolution and it still goes off-screen.
  • The bubble animations were improved so it doesn't jump as much when its size changes a lot between steps.
  • The mouse animations were improved. Most notably, the speed now scales depending on the distance to the target so that animations feel more consistent in speed.
  • When highlighting inspector properties and files, the view should now center them on the screen instead of sometimes leaving them at the bottom of the dock.
  • We made the highlight color purple to distinguish it from Godot's default blue highlight.
  • We added better support for CJK languages (Chinese, Japanese, Korean) and generally improved translation support for students who want to use machine translation. Big thanks to Japanese user Cacapon for thoroughly testing the translation system and contributing the Japanese translations!

Version 0.3.2

Released on April 9 2024
Educational technology
  • Practice system: fix stacked practice and solution ghost views preventing mouse input in the practice view
General
  • Add open-source licenses to Godot projects
  • Add tags in the project manager for tours, workbooks, and solution projects for quick filtering
M1: Introduction
  • L1: add instructions on how to access user guides
  • L1: improve the phrasing and detail the course introduction
  • L2: add a note about redoing the course a second time to tackle the challenges
M4: To Space and Beyond
  • L2: add references to the glossary
  • L2: add a reminder to not copy-paste code for your learning's sake
  • L2: explain how to use the new code diffs with the code tabs
  • L2: remove the mention that the save button is at the bottom right, as it depends on the operating system
  • L3: add two questions and answers about joystick input and the use of Input.get_vector()
  • L3: correct typo
  • L4: explain how and why we change the max_speed variable to normal_speed by default
  • L4: fix steps to add to input map not displaying the boost key as intended
  • SG1: add extra explanations about scenes and nodes to better differentiate them
M5: Loot It All
  • L2: explain that the boosting mechanic was removed in M5 because the game takes place on a single-screen
  • L3: correct shortcut on macos
  • L3: update remote scene tree screenshots, add an explanation of the newly added metadata node
  • L5: correct typo
  • L6.P2: make the practice preserve coin count and energy in the output display, add node groups to solution copy
  • L7: add a challenge to limit the number of spawned items
  • L8: add Q&A about synchronizing changes between item scenes
  • L10: correct a typo
M6: Looting
  • Add M6 prefix to Godot project title
  • Correct cases where references to M5 would use M6's name
  • Make practice text crisp on displays with high-resolution
  • L1: update the project manager picture to include M06 project prefix
  • L4: correct a typo
  • L5: correct one typo
  • L5.P2: add extra requirement to the practice, introduce event.is_released() function
  • L6.P1: clarify that the radius should be random as well as the generated angle
  • L6.P1: fix the practice not passing when the order of randomly generated numbers is different from the lesson
  • L6.P1: remove one requirement from the practice on the website
  • L6.P1: rename files to avoid special character and related issues
  • L6.P1: rewrite and improve feedback messages when failing some checks
  • L6: correct typo in a variable name
  • L6: narrow the type of the item
  • L9: document how to animate the bird's shadow

Version 0.3.1

Released on March 23 2024
M6. Looting
  • L5: change animation player function to check last played animation
  • L6.P1: fix error in test script preventing from completing the practice

Version 0.3.0

Released on March 22 2024
This update brings M6. Looting, which builds upon what you learned previously and introduces mouse input, using shader materials, the animation editor, combining tween animations, and polar coordinates. This is also the first module with guided challenges, where you'll be asked to apply what you've learned to different game mechanics.
Educational technology
GDSchool, the web platform hosting this course, got your most requested features:
  • The website now remembers where you left off and brings you back there when you log back in.
  • You can get an email notification when a course gets an update!
  • You can subscribe to threads and get an email when there's a new reply.
  • Threads can be linked to.
We also made many extra improvements:
  • The new user dashboard separates your courses, notifications, purchases, and profile into tabs.
  • Code listings with added and removed lines of code now have tabs to see the old and the new code only.
  • We're introducing a couple of side-notes with M6, that you'll find in the right column on desktop.
  • The Lesson Q&A list design was improved to make it easier to read and navigate.
  • We now subtly change the color of light Godot icons that would blend with the background.
And dozens of styling and improvements across the website.
General:
  • Make changelog formatting consistent
M4. To Space and Beyond:
  • L3: add explanation of why multiplying a direction and speed produces a velocity vector
  • L3: mention that a vector's length is always positive and that's why we can use it to rotate the ship
M5. Loot It All:
  • Correct typo in parameter name in area signal callback
  • L10: correct two typos

Version 0.2.3

Released on March 13 2024
This release solidifies the course content. It comes with 17 new glossary entries and a number of improvements and fixes.
Educational technology
GDSchool, the website hosting the course, saw major updates with the addition of:
  • User guides accessible from every lesson. They're a sort of user manual for the website and your convenience.
  • A new user interface for lessons.
  • Improved layouts that better adapt to large and small displays, on desktop, laptops, tablet, and mobile.
  • Faster navigation between lessons with a shortcut bar that follows you around.
Behind the scenes, we're refining the "build system", a set of tools to create and manage the course content. This allows us to make these releases more frequently and with more confidence.
Below is a list of the most significant changes in this release.
General:
  • Add prefix M to Godot folders to match module labels on website
  • Add user guides accessible from every lesson. They're a sort of user manual for the website and your convenience
  • Add 17 glossary entries and make the full glossary searchable and accessible from every lesson
  • Make all indents use tab in code listings. Some used spaces, which could cause an error when copy pasting the code
Godot Tours
  • Fix an issue with using a shortcut to press a button not working on some systems.
  • Work around a Godot bug on Windows 11 causing the overlay to appear white.
  • Make sure that all inputs are physical, so they're not tied to specific letters.
M1. Introduction:
  • L1: fix missing word in lesson outline heading in navigation menu
  • L3: improve bullet list at the end of the page
M4. To Space and Beyond:
  • Accelerate scrolling of the space background
  • Fix: Restore missing input actions in solutions project
  • L2: add explanation about why we use _process()
  • L2: correct two typos
  • L2: replace callout with a code reference as on other pages for the ship.gd script
  • L3: add breakdown of how the length of a vector is calculated
  • L3: add paragraph to clarify why we need a condition to rotate the ship
  • L3: correct typo in L3.P1
  • L4.P1: check for existence of the boost input and give user feedback if it's missing or it has a typo
  • L4: add title at the top of the lesson
  • L5: rename steering variable to steering_vector
  • SG1: add math explanation of how the length of a vector is calculated
M5. Loot It All:
  • L2.P1: clarify to open the ball.tscn scene first in the practice instructions.
  • L2: correct typo
  • L4: correct typo that F in hex is number 16, it is 15
  • L5: add two questions and answers about why and when values are emitted by signals and the connected function parameter name
  • L7: add code reference at the end of the lesson
  • L9: add missing 'if velocity.length > 0.0' in final code listing
  • L10: add glossary link to refactor page
  • L10: change wording of known issue on macOS for more clarity
  • L10: correct typo in macOS workaround for tween animation not looping properly
  • L10: remove duplicate "user interface" in recap
  • Correct information about how tween.set_loops() works
  • Make all input actions physical

Version 0.2.2

Released on February 21 2024
M2. Get to Know Godot:
  • Add explicit mention to follow all the tours and then move on to the third module
  • Work around engine bug on Windows 11 causing the dimmer area to be white instead of darkening the editor
  • Tour 102.a: Add instruction to leave some space between rooms in two steps to have space to add bridges later
M4. To Space and Beyond:
  • L2: rewrite how to complete a practice section to make it clear that you only need to follow one practice, L2.P1, and then move to the next lesson
  • L6: Change the series conclusion and correct the presentation of the next project after M5. release
  • Fix error that Utils identifier is already defined in the parent class in practices
M5. Loot It All!:
  • Ensure that the direction vector is normalized in all lessons and lesson reference folders
  • Make space level the default scene opening on first load
  • L2.P1: Improve message explaining why you need to add the collision shape to the ball scene
  • L2.P1: correct typo in practice instructions
  • L5: wrap comment to avoid content overflowing the lesson column
  • L7.P1: Add test and explanation when the position of spawned collectibles is randomized
  • L7.P1: fix the last practice test failing when changing the order of loaded scenes in the collectible_scenes array
  • L10: add callout about known issue and workaround on macOS with Godot 4.2.0
  • Make Godot projects run as maximized windows instead of fullscreen to allow closing them more easily
More to come:
  • Add two frequent questions and answers
  • Add this release changelog

Version 0.2.1

Released on February 19 2024
This release brings a few small improvements and fixes to the course content.
M2. Get to Know Godot:
  • L1: Reinforce that on macOS, users should use Godot 4.2.0 exactly, not 4.2.1 or another version.
  • L1: Change the wording of several sentences.
M5. Loot It All:
  • L2.P1: Make it clearer that the collision shape nodes need to be added inside the ball scene.
  • L2.P1: Remove the word "not" from the first practice test description.
  • L2.P1: Fix some ship tests passing before adding the corresponding code change.
  • L5.P1: Specify that you need to add 20 energy to pass the practice requirement.
  • L6.P1: fix an error with the practice failing when coins disappear as expected.

Version 0.2.0

Released on February 18 2024
This release adds the 5th course module, M5. Loot It All. It's a long one packed with ten lessons, five practices, and one study guide.
The Glossary also got six new entries for composition, function, refactor, tween, runtime, and API.
Educational technology
The release also brings numerous changes to GDSchool, the web platform, including:
  • Short labels: Module, lessons, and practice labels throughout the website (like "M5.L1"). You can use them to refer to specific parts of the course in the comments or in the community.
  • A new website mode for schools and teachers, with their own Q&A and anonymized student accounts. A couple of high schools are getting started with this mode already!
  • A new code reference at the end of lessons.
  • Detection and feedback of owned products on all product pages. If you own certain courses, a banner will appear at the top of the page to help you find and access the content you already own.
  • Improvements to folded callouts, practices display on the website, challenges, and more. You'll find many parts with nicer contrast, readability, and little animations.
  • Sign in, register, payment, and contact form buttons now tell you when they've registered your action, so you don't accidentally click them twice.
  • A myriad of small adjustments and fixes.
We're not done! The practice system also got big changes:
  • There's a new user interface when running practices. The buttons let you run the practice 5x faster or split the view.
  • When running practices, a ghost appears on top of the practice scene to show the expected result. We rewrote this to be more reliable and to work with any practice, now and in the future.
  • Practice requirements can now have dependencies and sub-requirements. This allows for more elaborate practices than before and more detailed feedback on what you need to do to pass.
  • Practice text will now render sharply on high-resolution screens.
General:
  • Add top headings to every lesson.
M1. Introduction:
  • M1.L5: remove mention of limited willpower based on student feedback and edit the corresponding section to focus on habit-forming.
M2. Get to Know Godot:
  • L1: Put zip file extract instructions in a callout.
  • L1: Update list of known issues in callout.
  • L2: inform people that they can skip the videos if they could run the tour.
M4. To Space and Beyond:
  • Rename practice folders to use LX.PX format.
  • L2: Add explanation of type inference and why we use it in a callout.
  • L2: Add macOS shortcuts to run and stop the current scene.
  • L3 mention joystick as reason for having an if.
  • L4.P1: correct typo in code comment.
  • L4: correct typo.
  • L5: correct typo.
  • L6: correct node name.

Version 0.1.1

Released on February 6 2024
This release brought lots of adjustments to the course content and essential fixes to the interactive tours after new issues were brought up on different systems and languages. On the website's side, there were a fair number of styling improvements and the addition of the questions and answers below every lesson: a place where you can ask questions, share insights, and get support.
The glossary has three new entries: class, static function, and function parameter.
Godot tours:
  • Work around a Godot engine crash in interactive tours.
  • Fix tours sometimes replaying the same tour or jumping to a previous tour instead of the next one.
  • Change the tour system to work and detect tabs and other buttons when the editor language is not English.
  • Make the tour adapt to the Ok and Cancel buttons having different places on Windows compared to Linux and macOS.
Content improvements and corrections:
M1. Introduction:
  • L5: Remove mention of limited willpower following a report that this effect doesn't have scientific consensus, edit section
M2. Get to Know Godot:
  • L1: Add multiple troubleshooting points and steps for the tours: toggling off some tour rail guards, erasing the Godot cache folder, and more.
  • L1: Change tour numbering to 102.a, 102.b, etc. as on the website.
  • L1: Remove mention that users need to tab out of godot for reloading after tour plugin update
  • L1: Update tours and Godot download and usage instructions for macOS users
  • L1: update list of known issues
  • L1: Fix a couple of typos.
  • L2: Add video screencasts as fallback to the tours.
M3. Learn GDScript:
  • Add a note about using the desktop version of the learn GDScript app on older computers.
M4. To Space and Beyond:
  • L1: Update download instructions in module overview
  • L1: Add sample practice that serves as a sort of tutorial
  • L2, M4.L4, M4.L5: set practice paths to res://practices instead of practices_solutions
  • L2.P1: address errors in tests
  • L2: Fix typo in callout
  • L2: add explanation of type inference and why we use it in a callout
  • L2: correct typo
  • L2: fix typo in filename
  • L2: move first final code listing up. People are mistaking it for the practice solution
  • L2: Add extra copy of download links for project files
  • L3.P1: fix typo in practice folder and file name
  • L3: correct input value in explanation
  • L4.P1: correct typo in code comment
  • L4: make it clear that the example of storing timer in variable is just an example, not something to type
  • L4: correct typo
  • L5 update explanation to access debug visualization for steering vectors
  • L5.P1: Try to add a larger error tolerance to the steering practice. A handful of users couldn't pass the practice despite having correct code. This could help.
  • L5: Add Q&A entry about steering factor being 10
  • L6 add code comments to main thrusters
  • L6 add comments and code guard to side thrusters script
  • L6: update callout about how thrusters work
  • SG1: add formatting to vector math guide
  • Tweak steering factor values in Godot project to make the ship move more smoothly
  • Fix incorrect link to the vector math guide, SG1.
  • Remove "your questions" titles

Version 0.1.0

Released on January 30 2024
The first early access release of the course brought the first four modules:
  • M1. Introduction.
  • M2. Get to Know Godot.
  • M3. Learn GDScript.
  • M4. To Space and Beyond.

Lesson Q&A

Use this space for questions related to what you're learning. For any other type of support (website, learning platform, payments, etc...) please get in touch using the contact form.

  • download links for 0.10CasimirMorelHi, the release log mention a 0.10 for October 7, though the downloads in the modules lesson overviews are still 0.9 (at least in M5 and M6). Is it expected( i.e. it takes time to update all the links) ? 3 1 Oct. 09, 2024
  • Version 0.17.0 - gdpractice.gd multiple errorsKorielHey there! So I've downloaded the latest version of the game files for windows, and on a fresh un-zip and run of the M10 workbook, godot puts out this "Warning!: > Unable to load addon script from path: 'res://addons/gdpractice/gdpractice.gd'. This might be due to a code error in that script. > Disabling the addon at 'res://addons/gdpractice/plugin.cfg' to prevent further errors. Then in the output window, it reads as follows: ```gdscript res://addons/gdpractice/gdpractice.gd:9 - Parse Error: Preload file "res://addons/gdpractice/practice_solutions/metadata.gd" does not exist. res://addons/gdpractice/gdpractice.gd:9 - Parse Error: Cannot infer the type of "Metadata" constant because the value doesn't have a set type. res://addons/gdpractice/gdpractice.gd:11 - Parse Error: Assigned value for constant "PracticeMetadata" isn't a constant expression. res://addons/gdpractice/gdpractice.gd:11 - Parse Error: Cannot infer the type of "PracticeMetadata" constant because the value doesn't have a set type. res://addons/gdpractice/gdpractice.gd:18 - Parse Error: Assigned value for constant "AUTOLOADS" isn't a constant expression. res://addons/gdpractice/gdpractice.gd:89 - Parse Error: "PracticeMetadata" is a constant but does not contain a type. res://addons/gdpractice/gdpractice.gd:93 - Parse Error: "Metadata" is a constant but does not contain a type. res://addons/gdpractice/gdpractice.gd:94 - Parse Error: "Metadata" is a constant but does not contain a type. res://addons/gdpractice/gdpractice.gd:95 - Parse Error: "PracticeMetadata" is a constant but does not contain a type. modules/gdscript/gdscript.cpp:2936 - Failed to load script "res://addons/gdpractice/gdpractice.gd" with error "Parse error". (User) core/config/project_settings.cpp:351 - Property not found: editor_plugins/enabled ``` So I've been checking the files and it seems to me like the path for the metadata file is wrong? It takes this "Paths.SOLUTIONS_PATH + "/metadata.gd" which seems equivalent to "res://addons/gdpractice/practice_solutions/metadata.gd". But the problem is that such file does not exist in there! metadata.gd seems to live in "res://addons/gdpractice/metadata.gd" So from what I gather, many things can't find metadata.gd where they expect it to be. I've been manually trying to fix some of these paths but it seems lots of scripts got the path wrong, including "db.gd", "ui_practice_dock.gd" and several more. Do tell me if I can help in some way. 1 0 Dec. 01, 2024
  • Version 0.15.0: Missing new M10 lessons?KorielGreetings! So in the release changelog, it says that "This release brings three new lessons to M10. Path of Sorcerers, L5 to L7, where you'll code the bullets, weapon, and first mob for your twin-stick shooter". However on my end, I can only see up to L4, just wanted to let you guys know. Loving this course to bits, btw!! 1 0 Nov. 17, 2024
  • 0.13.0 M7 changesPaul> Added new content for lessons 14, 15, and 16 The changelog mentions the above, but M7 only goes to lesson 14. Either I'm misunderstanding the change, or this doesn't quite seem right? Looking forward to getting stuck into M9 now - thankyou for all the great work! 1 0 Nov. 03, 2024
  • What is the recommended procedure for updating?adiI learned up to half of M5 on version 0.6. I downloaded 0.7, and how can I transfer my progress from 0.6 to the 0.7 directory? Is it enough if I copy files from lessons directories from individual projects directories (0.6 to 0.7)? What about the progress in your plugin? Is there a better method? If this is written somewhere I apologize because I overlooked it. Or maybe it's better to finish the M5 at 0.6 and do the M6+ at 0.7. But it will get a bit messy. Fantastic course I am very happy with it :) 2 0 Sep. 01, 2024
  • A question outside the curriculumhumble-pelicanHello teachers, while waiting for the course to be updated, I went to see other free project courses. There is a question I don't quite understand, but the teacher didn't reply to me. I wonder if you can help me answer it? If you can, thank you very much~, if you are too busy and can't, it doesn't matter. The address of this project is [https://drive.google.com/file/d/1bPziFrcNnmWj_UGkGVo4fgfOt2M5zr-u/view?usp=sharing](https://drive.google.com/file/d/1bPziFrcNnmWj_UGkGVo4fgfOt2M5zr-u/view?usp=sharing) ,it makes the tiles become translucent after collision through the tileset's shader, but I didn't achieve this effect, and I can't find where the problem is. I am at a loss, so I want to ask you, thank you for your previous course, I will continue to wait, because it is worth waiting! 4 0 Jun. 27, 2024
  • Version 0.3.2 - L5.P2: add extra requirement to the practice, introduce event.is_released() functionBartek PatoletaNot sure if it's even important as it is only for people who already did all modules at the time being, but you've put this note in the M5. **LOOT IT ALL** instead of M6. **LOOTING** 1 0 Apr. 10, 2024
  • Error extracting 0.2.3, File path is too longStonemonkeyI'm on Windows 10 and extracting the zip in the Downloads directory. Screenshot of error: [https://imgur.com/a/LCa7PNe](https://imgur.com/a/LCa7PNe) I shortened the zip file name to fix this. 1 0 Mar. 14, 2024
Site is in BETA!found a bug?