10 Godot Engine Mistakes You Might Make (Godot 4 / Godot 3)

preview_player
Показать описание


Wishlist Furcifer's Fungeon:

Follow us on twitter to stay updated on Furcifer news and tutorials:

--
0:00 Mistakes!
1:56 Sponsoring!
3:33 Mistakes again!
Рекомендации по теме
Комментарии
Автор

Forgetting that arrays and dictionaries are passed as references:

A = [1, 2, 3]
B = A
B[0] = "hello"
Print(A)

Output
["hello", 2, 3]

The cause of so so many of my bugs by forgetting
B = A.duplicate()

GeneralMattimo
Автор

These tips videos are really nice! Would you like to do a YouTube collab with us on some Godot 4 tut or tips or something?
For tweens, I'd expect remove_all() to work moving forward because it deletes the registered tween animations, so it shouldn't be able to continue the animation once the data got deleted. But that's definitely been a little confusing, and I've made the mistake of calling stop_all() over remove_all().
Thanks for the video!

Gdquest
Автор

If you are still collecting GODOT tips, I have one more for you: You know there are numeric values that have an slider in the inspector and other don't? Well, even they don't have an slider you can click and drag the number left and right to smoothly change it. But that is not all: hold SHIFT to make change slower, which is useful when you need more precision, and hold CTRL to snap the value to an integer. I did know I can drag the numbers, but not that SHIFT and CTRL had an effect while doing it, until very recently.

Theraot
Автор

Here are some mistakes I used to make:
1. Signals + Multi-Threading = no no
2. Forgetting to free a Thread with 'wait_to_finish()'
3. Setting materials on a mesh resource instead on the MeshInstance.
4. Setting velocities (or even worse positions) directly on rigid physics bodies.
5. Using bodies instead of areas for bullet hit detection.
6. Removing a node from scene tree without calling queue_free()
7. Statically typing arrays as function parameters can cause funny lines like 'Cannot convert argument from Array to Array'.
8. Not understanding that 'await' is in NO way or form multi-threaded but a coroutine instead!
9. Setting values of locals within a lambda which have the same name as a variable in an outside (global) scope has no impact on the values of the variables within the outside (global) scope! (Note: 'global' means something different here than member)
10. Placing a GIProbe (it was Godot 3) not into the geometry 3d-node-based part of the scene tree, which causes the probe to have no effect at all.

Nero-hizf
Автор

There is one other error I see at least once per every page on Godots Q & A Forums : forgetting about mouse filter set to stop of overlaying control nodes :)

krzysztofswierzy
Автор

"Make unique" has a cousin in "Local To Scene", a property (found under Resource in the inspector) that makes the resource unique when you instance scenes dynamically.

bengtstrand
Автор

You're a real youtuber now that you're sponsored by Raid: Shadow Legends.

Portponky
Автор

For some reason, if make an one-shot animation with 100% explosiveness, it has a massive delay before it can emit again. Meaning, if you want to make these kinds of particle effects often from a single source, like a cloud of particles when you jump, you should spawn a new particle object each time instead. (and delete it afterwards of course)

pyryzer
Автор

You have easily become my favorite godot channel after only watching 3 videos of you. Looking forward to go through the shader tutorials. Up until now, I never got into it ;)

kReels
Автор

That was great! Also that's the only Raid Shadow Legends ad I've ever seen that tells the story of that game. And you told it in a funny way! Way to go.

ReleeSquirrel
Автор

"Not making stuff unique". This has given me such a headache that I now frequently make any node's script a tool script and include a setter for resource exports that uses duplicate() to set the resource variable to a new unique instance of the resource automatically. This has been saving me the headache of making them unique every time, AND I can filter from the setter function and include whatever other conditions I need/want.

keithwinget
Автор

Thanks for explaining the execution flow with await. It's indeed quite mind-melting.

unfa
Автор

`is_instance_valid()` is something I wish I knew about when I was first starting. Solid advice.

JosephCatrambone
Автор

Nice!
I am surprised about the yield/await call used in such a way.

Roleplay
Автор

Holy S. I'm implementing this is_instance_valid() throughout my code immediately. I had some edge case problems with checking for null and didn't know why that was. THANKS!

CoreFlux
Автор

I recently had fun debugging material shaders (Godot v3.5) that should be unique since they would have different input parameters. Looking at the tscn file code shows the ids for them in the scene tree to see that they are not made unique. In my case I was setting the next_pass property of a material to the shader. Another debugging trick is to print the name of the material or shader instance, this prints its reference id to check if the same ones are being used. To make them unique I ended up duplicating a master version of my material in code.

GDScriptDude
Автор

one more godot channel i enjoy, subscribing and excited for future content

ak
Автор

So that is what physical keys are for!

Theraot
Автор

just beca a subscriber keep up the good work Sir.

faeandmagicka
Автор

Everything works, especially free, use until it is too late!Cool! Downloaded))

lawgyan