Changelog: Learn 2D Gamedev From Zero with Godot 4
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
Version 0.20.0
- M2: Added leading zero in project title for consistency and sorting in the project manager
- M7.L8: Fixed incorrect URL link to dictionary cheatsheet
- M9.L11: Removed enum from game states pseudocode example and added info callout about constants and enums
- 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
- 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
- M4.L4.P1: Fixed practice tests to work with any timer node name
- M4: Added macOS-specific instructions for accessing editor settings
- 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 aTileMapLayer
node
- 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.L2: Improved explanation of container sizing
- 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: Fixed GDPractice addon initialization errors
Version 0.18.0
Version 0.17.0
- M9.L4: Fixed layout issue with overlapping aside sections
- Course-wide: Updated remaining references of Godot 4.2 to Godot 4.3
Version 0.16.0
NOTE:
We inserted a new lesson about giving the player hands that control the weapon. Coding the mob is now M10.L8.
- M9.L15: Added detailed explanations about avoidance intensity in pathfinding, helping you better understand how to fine-tune agent navigation.
- M10.L7 and M10.L8: inserted new L7
Version 0.15.0
- M8.L6: Fixed incorrect class names displayed in code reference
- 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.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
- M4.L4: Improved clarity in the explanation of code implementation order
- M6.L6: Fixed incorrect sprite texture reference in practice exercise
- M7: Removed incorrect chapter references to chapters 14, 15, and 16 (which are actually in M9)
- M8.L8: Improved challenge solution to prevent ship flipping when reaching the goal
- 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
- M7.SG1: Enhanced explanation of theme tabs with additional information
- M7.SG2: Fixed typo in study guide content
- M8.L4.P1: Fixed typo in module content
- 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
- Fixed inconsistent project naming across the course
Version 0.12.0
- M5.L2: Fixed typo in lesson content
- M6.L5: Added educational note about input event handling versus input actions
- M6.L6.P1: Fixed missing texture files in practice exercise
- M7.L6.P1: Corrected typo in poem content
- M8.L7: Updated external reference link to Roadwarden
- 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
- Updated AudioStreamPlayer icons to match Godot 4.3 visual style
Version 0.11.0
- 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.L1: Added a callout about GDScript being part of the C family
- M4.L1: Removed redundant sentences
- M4.L3: Clarified the section about turning the ship only when moving
- M6L3: Remind users that all signals will be in code
- 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.L8.P1: Removed unnecessary
normalized()
call from solution and updated tests - M9: Corrected documentation for the finish line script
- Changed all projects to use compatibility mode
- Corrected typos in multiple modules (M9.L6, M7.L8, M4L2)
Version 0.10.0
- 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.L6.P2: rework practice to better frame assets and preserve values from the student
Version 0.9.0
- M5.L6: for node groups.
- M7.L4: for the theme editor.
- M9.L7: for particle systems.
- M4.L3.P2: Added note about the direction variable being defined at the top of the script
- M6.L9: Updated instructions for collecting only the topmost clicked item spawned from the chest
- M7.L4: Enhanced lesson with additional video clips for better illustration of steps
- 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
- 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
- Updated instructions for Godot 4.3
- M4.L2: Updated type hints setting to match Godot 4.3
- M5.L7: Added troubleshooting point about placement of the random item placer node
- M5.L10: Corrected value for Tween.TRANS_SINE
- 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.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: 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.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
- 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.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.L7: update quiz about guessing how to make tweens run in parallel
- 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.L2.P1: correct techniques field on the website ending with words in italics
Version 0.6.0
- M1.L2: Update menu title to match lesson title
- M2.102.d: Allow continuing and completing the tour when the player is a child of different nodes in the scene
- M4.L6: Remove extraneous camera icon
- M5.L7: Add note in the challenge to clarify that you need to reintroduce
_ready()
in the script
- 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.L5: Mention how to add variations in the button style challenge
- 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
andlambda
- 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
- Add page with the early access outline to see upcoming modules
- Rename references to M2 into Get to Know Godot
Version 0.5.2
- M7.SG1: fix a video getting cropped on the page
- 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
- M2.102.a: fix starting scene already having the player and some rooms added
- 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
- 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: 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.L1: rephase to better distinguish lessons and practices and how to follow along
- M4.L5: correct spelling of decelerate
- 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: 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: 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 withis_empty()
- M7.SG2: clarify what sets are and how to use them
- M7.SG2: clarify what the
has()
method does
Version 0.4.2
- 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
- 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.L3.P1: Add a troubleshooting point that you cannot use a tween animation to instantly change the outline thickness
- 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
- 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
- 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.
- 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!
- 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
- Practice system: fix stacked practice and solution ghost views preventing mouse input in the practice view
- Add open-source licenses to Godot projects
- Add tags in the project manager for tours, workbooks, and solution projects for quick filtering
- 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
- 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
- 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
- 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
- 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
- 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.
- 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.
- Make changelog formatting consistent
- 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
- Correct typo in parameter name in area signal callback
- L10: correct two typos
Version 0.2.3
- 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.
- 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
- 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.
- L1: fix missing word in lesson outline heading in navigation menu
- L3: improve bullet list at the end of the page
- 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
- 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
- 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
- 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
- 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
- Add two frequent questions and answers
- Add this release changelog
Version 0.2.1
- 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.
- 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
- 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.
- 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.
- Add top headings to every lesson.
- M1.L5: remove mention of limited willpower based on student feedback and edit the corresponding section to focus on habit-forming.
- 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.
- 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
- 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.
- L5: Remove mention of limited willpower following a report that this effect doesn't have scientific consensus, edit section
- 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.
- Add a note about using the desktop version of the learn GDScript app on older computers.
- 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
- 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.