• Tutorials
  • Improve Godot Docs > Getting Started > Step by Step > Listening...

Glossing over details can be extremely frustrating to new learners, like myself, while following along with stuff like this. I'm only this far into the documentation and I'm really hoping this doesn't happen a lot.

https://docs.godotengine.org/en/stable/getting_started/step_by_step/scripting_player_input.html

On the page linked above, it says the following:

For turning, we should use a new variable: direction. Update the top of the _process() function like so, up to the line where we increment the sprite's rotation.

func _process(delta):
var direction = 0
	if Input.is_action_pressed("ui_left"):
		direction = -1
	if Input.is_action_pressed("ui_right"):
		direction = 1

	rotation += angular_speed * direction * delta

However, those instructions result in the following code, which you quickly learn is a problem.

extends Sprite
    var speed = 400
    var angular_speed = PI
    func _process(delta):
    	var direction = 0
    	if Input.is_action_pressed("ui_left"):
    		direction = -1
    	if Input.is_action_pressed("ui_right"):
    		direction = 1
    
    	rotation += angular_speed * direction * delta
    	var velocity = Vector2.UP.rotated(rotation) * speed
    	position += velocity * delta

If you're going to specify only updating the top of the function instead of all of it, there should be a reason you're saying it. And this next part is nitpicky, but technically (because of how English works), the final code looks like this while following along (which still works, sorta, but is also wrong):

Replace the line starting with var velocity with the code below.

extends Sprite
var speed = 400
var angular_speed = PI
func _process(delta):
	var direction = 0
	if Input.is_action_pressed("ui_left"):
		direction = -1
	if Input.is_action_pressed("ui_right"):
		direction = 1

	rotation += angular_speed * direction * delta
	var velocity = Vector2.ZERO
	if Input.is_action_pressed("ui_up"):
		velocity = Vector2.UP.rotated(rotation) * speed

	position += velocity * delta
	position += velocity * delta

I think quality tutorials are really important, and kinda rare. It's easy to make assumptions when you understand the material, which is never the user. I'll be pointing out issues as I find them, but I'm not sure if this is the best place to identify them.

https://docs.godotengine.org/en/stable/getting_started/step_by_step/signals.html#custom-signals

We're going step by step, right? Suddenly, I'm following along and:

error(21,1): "extends" can only be present once per script.

Maybe let the user know we're done following steps in this step by step? It's the little things, but they add up. Like little tiny needles poking you, over and over and over again, sucking the joy out of your soul.

I did that tutorial a long time ago, but I just skimmed through it, and it seems correct. I'm not sure I understand what the problem is. The point of a tutorial (or the docs themselves) is to teach you how to learn for yourself, not to give you code you copy and paste without understanding it. So if you want to learn you have to read between the lines and actually understand the meaning of the code, not just typing it in with no insight.

I just followed the tutorial up to the points mentioned and had no trouble with the instructions. I'm not an English major, but it seems straight-forward enough.

However, I typed in the code. I've been told by experts to never cut/paste information when you're trying to learn.

The instructions didn't state every key press or mouse click. They didn't tell you to close your running project window after you'd seen the results, for example. They didn't tell you to select the current scene after running it with F5 for the first time. But I think those are fairly easy to figure out.

They did specifically tell you to watch your indentation (in "moving forward"), which is important in gdscript. I suspect they assume you know to do so from then on.

However, if you want to change the tutorial, you are welcome to submit a request. There's a complete guide to contributing at: https://github.com/godotengine/godot-docs

This is free (as in freedom) software. If there's a problem, everyone is encouraged to try to fix it.

Edit: I do notice that the summary at the bottom of "listening to the player" seems to be cut off.

@cybereality said: I did that tutorial a long time ago, but I just skimmed through it, and it seems correct. I'm not sure I understand what the problem is. The point of a tutorial (or the docs themselves) is to teach you how to learn for yourself, not to give you code you copy and paste without understanding it. So if you want to learn you have to read between the lines and actually understand the meaning of the code, not just typing it in with no insight.

I knew I'd get at least one useless, defensive fanboy-esque response, but for some reason I didn't expect it to be the first one.

You "skimmed" through a tutorial a "long time ago" and it "seemed correct". LOL, already a solid indication this will be a helpful response. You don't understand the "problem" I clearly explained with examples, so you can't really help there, either. Why bother responding if this isn't relevant to you? Then you declare the "point of a tutorial" is something that it's not. Tutorials are not meant to teach people "how to learn", unless maybe the title of your tutorial is... "How to Learn". They're meant to provide knowledge and instruction. All I've done is explained where this one is falling short for me.

@duane said: I just followed the tutorial up to the points mentioned and had no trouble with the instructions. I'm not an English major, but it seems straight-forward enough.

However, I typed in the code. I've been told by experts to never cut/paste information when you're trying to learn.

The instructions didn't state every key press or mouse click. They didn't tell you to close your running project window after you'd seen the results, for example. They didn't tell you to select the current scene after running it with F5 for the first time. But I think those are fairly easy to figure out.

They did specifically tell you to watch your indentation (in "moving forward"), which is important in gdscript. I suspect they assume you know to do so from then on.

However, if you want to change the tutorial, you are welcome to submit a request. There's a complete guide to contributing at: https://github.com/godotengine/godot-docs

This is free (as in freedom) software. If there's a problem, everyone is encouraged to try to fix it.

Edit: I do notice that the summary at the bottom of "listening to the player" seems to be cut off.

It's sort of odd both responses mention copy/cut and paste. Not sure what's prompting that. However, thank you for including some helpful info at the bottom of your post. It looks like that github link is where I need to be.

I did the tutorial, in full, about 2 years ago, and it doesn't look like it has changed. But I did skim it just now and read all the code, and it is correct, AFAIK, and does not contain errors. I am trying to help you, but I can't help you if you don't want to help yourself. Maybe if you can explain clearly, like in 1 or 2 sentences, exactly what you think is wrong with the tutorial, then I can offer a solution. I would be even willing to update the tutorial myself, provided there is an actual problem (which I don't think there is). But I still don't see where the issue is, or why you are so angry about it.

NobleValerian:

You first post here is a complaint about the documentation. Did you expect responses such as "You're right! The documentation is terrible. We'll rewrite all of it immediately." ?

@cybereality said: I did the tutorial, in full, about 2 years ago, and it doesn't look like it has changed. But I did skim it just now and read all the code, and it is correct, AFAIK, and does not contain errors. I am trying to help you, but I can't help you if you don't want to help yourself. Maybe if you can explain clearly, like in 1 or 2 sentences, exactly what you think is wrong with the tutorial, then I can offer a solution. I would be even willing to update the tutorial myself, provided there is an actual problem (which I don't think there is). But I still don't see where the issue is, or why you are so angry about it.

I don't need your help. It's clear the last thing you should be doing is reviewing or editing any part of the documentation.

Well I'm probably the foremost expert on Godot, aside from the developers that created it. But I'm sure you don't need any help, do whatever you like. It's your life.

@DaveTheCoder said: NobleValerian:

You first post here is a complaint about the documentation. Did you expect responses such as "You're right! The documentation is terrible. We'll rewrite all of it immediately." ?

I expected mostly worthless nonsense. Responses that would be unnecessarily defensive, off-topic, meaningless, or generally unhelpful. Except for a helpful link from @duane, that's exactly what I got. Of course, what I expected wasn't what I was hoping for.

@cybereality said: Well I'm probably the foremost expert on Godot, aside from the developers that created it. But I'm sure you don't need any help, do whatever you like. It's your life.

LOL, that's some claim. Either way, I'm just pointing out issues with the documentation. It's fine that you don't see it. You're not a beginner and it's not relevant to you. So, it's not that I don't need help. I just don't need your help. @duane was helpful in providing me with a link. That tells me how these issues get addressed, and tells me I'll have to address them myself instead of pointing them out to the community. So, now that I have your permission, I can go do whatever I like.

Well, you could have a point. The documentation is definitely written on an intermediate to advanced level. I have no problem reading it, but I can understand if there is confusion (and I was a beginner once too).

In general, I would recommend, when starting out, to read books or tutorials on independent websites. I find that these people tailor their writing toward starting developers, so that may be easier for you. After a few months of doing this, you may be ready to read the docs.

This, IMO, is the best book for Godot, and maybe the best book for game development in general: https://www.amazon.com/Godot-Engine-Game-Development-Projects-ebook/dp/B079HZD1S7

And this is the best website to learn from for Godot: https://www.gdquest.com/

However, feel free to submit an improvement to the documentation. Just know that the developers are strict, and that they may give you a similar response as what I initially said.

Thank you @duane . Those Github requests do look reasonable, and I'm happy to see they've been fixed. However, that was not mentioned anywhere in the OP, and I've read the OP several times and I still don't understand the ask. But whatever, I said what I wanted to say.

@duane said: Obviously, the developers agreed that there was a problem, which shows what my opinion is worth. :)

https://github.com/godotengine/godot-docs/issues/1496 https://github.com/godotengine/godot-docs/issues/5649

Actually, @duane, issue 5649 is the issue you pointed out. The rest of the copy exists, it's just not showing up on the page. And issue 1496 is from 2018, reminding me that I did try to learn Godot years ago, and ran into similar problems.

@cybereality said: Thank you @duane . Those Github requests do look reasonable, and I'm happy to see they've been fixed. However, that was not mentioned anywhere in the OP, and I've read the OP several times and I still don't understand the ask. But whatever, I said what I wanted to say.

Actually, neither of those fixes are related to my OP. However, the issues I raised above have been submitted.

I don't know if I wasn't able to tag them, forgot to tag them, or tagged them as bugs, but looks like they will be merged, patched, or added as "enhancements" at some future point. Not familiar with all the lingo yet. I didn't even know I had a GitHub account until I tried making one yesterday.

@NobleValerian said: I expected mostly worthless nonsense. Responses that would be unnecessarily defensive, off-topic, meaningless, or generally unhelpful. Except for a helpful link from @duane, that's exactly what I got. Of course, what I expected wasn't what I was hoping for.

@NobleValerian - I understand being frustrated and having strong feelings on the documentation and how it affects beginners, but please remember we trying to help and are just normal Godot users like you. Anyone can contribute to the documentation, so if you feel there is something wrong, please either make an issue on the GitHub documentation repository, or make a PR yourself with the changes you want to see (if you have the time/desire).

That said, please be respectful in how you address other forum members. That doesn’t mean you have to agree with users. On the other hand, your responses to those trying to help that you deem “worthless nonsense” is unnecessarily hostile. People are trying to help you, spending time and energy to write responses.

Consider this a warning.

@TwistedTwigleg

Respectfully, and in the interest of transparency, I have flagged and reported your response.

I believe whatever personal relationship you have with @cybereality (in your friends list) has led you to inappropriately use your influence in this thread.

You deliberately ignore the disrespectful and "unnecessarily hostile" comments from other users.

You ask that I make an issue on the GitHub, which I make it clear I've already done. Leading me to believe you didn't read the thread, or simply don't care what it says. You either didn't bother to collect enough data to justify a thoughtful and appropriate response, or you came here with a separate agenda.

And you finish your response with a deliberately provoking and unnecessary passive-aggressive threat.

The only person you shouldn't have tagged in your response is @duane. The most logical action is simply to close this thread.

LOL! Should have browsed around the site more. It's not like you're going to hold yourself accountable for your own inappropriate behavior. Just another day on the internet.