Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(2 edits) (+1)

soooo i couldn’t find any link to feedback/bugreports/etc, just a heads up, in 04-Making-A-Basic-3D-Platformer-v0.4.0/03-Camera-Controls.html, section “Creating node variables” you claim:

The annotation @onready indicates that the variable being defined is a Node in the scene tree, and the script needs to wait for it to load.

which is factually wrong and might confuse a bunch of people without that prior knowledge, might wanna fix that.

@onready indicates that the variable assignment has to happen between _init and _ready. we have to indicate that due to the node being in the scene tree, but that’s not “what that indicates” (and especially in a beginner course you wanna be suuuuper careful about claims like “@onready tells it that this is a node”, plenty gdscript newbies already have issues wrapping their head around the Object inheritance vs Scene trees and “optional typing”).

I would instead write something along:

The annotation @onready indicates that the variable assignment happens at startup time (directly before _ready()). You’ll have to do this for any Node-related operations, because the scene tree only gets loaded at runtime.

Note also how the “variable being defined” isn’t in the scene tree at all (again, careful when it comes to terminology in a beginner’s tutorial, the variable “is” most definitely both “being declared” and residing “in” the script class, the value you assign to it however is a Node that’s not available at compiletime.)

(1 edit) (+1)

Heya, thanks for the feedback - the discord server is the best place for support and feedback.

I think you're right and I can word that more helpfully, it is difficult to strike a balance between providing accurate information and not distracting beginners with stuff that isn't immediately relevant and this leans too far the wrong way (Especially me saying it is a Node which is straight up wrong) - I do like your recommendation though and will make the following change:

Using the @ symbol in this way is a new syntax specific to Godot 4. It is the first character for a specific kind of keyword called an annotation. The annotation @onready indicates that the variable is related to a Node in the scene tree. Just before the scripts _ready function is called the @onready variables are evaluated, as a result, we can use these variables in our _ready() function.

If you have any more thoughts please do chat with me on the server, I'm always happy to hear ways to improve the course for everyone 😃