Install Raid for Free ✅ IOS/ANDROID/PC: clcr.me/mbqaDe and get a special starter pack 💥 Available only for the next 30 days
@Sina_Qadri11 ай бұрын
i only use await for Loading gamefiles and it works pretty fine i have more than 90 3D scenes instances then loads into the game but when i tried to load them at the same time it crashed and almost really burned my GPU to prevent this i added await 0.5s timer for each load and now it doesnt crash like come on loading almost a 32km by 30km world in 3d with almost Godot 4 looking graphics on godot 3 is already hard by its own
@GeneralMattimo2 жыл бұрын
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()
@PlayWithFurcifer2 жыл бұрын
Now that you mention it, that is really weird. I got used to that by now
@GeneralMattimo2 жыл бұрын
@@PlayWithFurcifer I didn't think I had but then tried to learn a little GDnative C++ and bugged up the other way around because C++ doesn't pass them as references unless u tell it to.
@sheepcommander_7 ай бұрын
Ah didn't realize that C++ doesn't pass as reference, huh
@GeneralMattimo7 ай бұрын
@@sheepcommander_ moving from gdscript to c++ is an experience.
@Theraot2 жыл бұрын
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.
@coreyaruecker Жыл бұрын
Just started using Godot and this little tip is something most blender users will intuit. That’s so far, one of my favourite things about Godot. I hated navigation and that in Unity. But Godot is identical in terms of viewport controls and little things like this which I love to see
@ItsMeAndru5 ай бұрын
This is a very good tip. Thank you!
@Gdquest2 жыл бұрын
These tips videos are really nice! Would you like to do a KZbin 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!
@PlayWithFurcifer2 жыл бұрын
Sounds great! :) Let's talk on discord?
@Gdquest2 жыл бұрын
@@PlayWithFurcifer Sure! I'll email you my Discord ID through your KZbin email.
@robertonome24482 жыл бұрын
top 10 most awaited crossovers
@luisces2 жыл бұрын
My favorite godot KZbinrs together, sign me up
@Nero-hi3zf2 жыл бұрын
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.
@shinjite06 Жыл бұрын
Tried this but now the ColorRect will stretch the pixels if you don't have a 1:1 ratio sized window.
@krzysztofswierzy42262 жыл бұрын
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 :)
@beidero2 жыл бұрын
That one has gotten me countless times in the past, after about the 20th time I think I finally learned to check for it but it can still be tricky to track down in dynamic UIs.
@graydwarf222 жыл бұрын
@@beidero Just dealing with that today actually. Working on a card game framework and mouse events for overlaying cards is harder than expected. I played around with visual click tracking (everything is pure Area2D) or control based click tracking (treenode traversal with dead-ends) . The latter of the two took a bit to figure out.
@Theraot2 жыл бұрын
That is a very common one, yes. Although it is usually something easy to spot (like a background element), for those cases where it is really hard to find, here is an extra tip: With the game running, open the debugger panel on the bottom, and then go to the Misc tab, it will show you the last control you clicked. You can then start clicking around and see there what is intercepting the clicks. You can double check with the Remote tab of the scene panel, also while the game is running.
@krzysztofswierzy42262 жыл бұрын
@@Theraot A lot of people, me included, expand control nodes to fullscreen, while making visual changes only at the small part of it. That is why this problem is so hard to spot :)
@graydwarf222 жыл бұрын
@@Theraot WHAT!?!?! I never knew about that. That one is huge! Wish we had a tool/plugin/panel that would dump out all mouse input events.
@bengtstrand44762 жыл бұрын
"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.
@Portponky2 жыл бұрын
You're a real youtuber now that you're sponsored by Raid: Shadow Legends.
@PlayWithFurcifer2 жыл бұрын
Finally :D
@ReleeSquirrel2 жыл бұрын
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.
@PlayWithFurcifer2 жыл бұрын
Thanks :D
@2kReels2 жыл бұрын
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 ;)
@PlayWithFurcifer2 жыл бұрын
Thank you very much :) And have fun with the shaders! They are a bit weird at first, but not that hard
@pyryzer53242 жыл бұрын
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)
@PlayWithFurcifer2 жыл бұрын
Try calling the function restart() on the particle system!
@unfa002 жыл бұрын
Thanks for explaining the execution flow with await. It's indeed quite mind-melting.
@kunai9809 Жыл бұрын
8:47 I thought it does NOT support mp3? As it's also not listed on the image you show
@keithwinget65212 жыл бұрын
"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.
@GDScriptDude2 жыл бұрын
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.
@JosephCatrambone2 жыл бұрын
`is_instance_valid()` is something I wish I knew about when I was first starting. Solid advice.
@CoreFlux2 жыл бұрын
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!
@Smaxx2 жыл бұрын
Wait, does this make taking a Raid Shadow Legends sponsorship a mistake, too? Are we even the target audience for that game?😉
@a98k2 жыл бұрын
one more godot channel i enjoy, subscribing and excited for future content
@WIZUWIZUvik Жыл бұрын
hello, i have a problem my game keeps crashing with "all memory pool allocations are in use" error. How can I fix this?
@Roleplay782 жыл бұрын
Nice! I am surprised about the yield/await call used in such a way.
@DustinTjäder Жыл бұрын
I loved the .ogg tip. Thanks 🙏
@bubblemage2 жыл бұрын
I wonder if there's an easier way to make a "player limited vision" without having to use light2d and lightoccluder2d? Like, the player not being able to see through walls and instead just see darkness on the other side.
@PlayWithFurcifer2 жыл бұрын
Pretty much sounds like the main application for light 2d. Maybe you can build the occluders programmatically from collision shapes? Someone might have solved this already
@bubblemage2 жыл бұрын
@@PlayWithFurcifer I've checked and tried with light2D on the player and the occluder on the wall tile in my top view 2d game, but the "darkness" gets rendered on top of the tile so I can't see the wall's sprite, meaning I can't make 1 tile walls for example, because they'll just be completely black and it looks bad :(
@faeandmagicka2 жыл бұрын
just beca a subscriber keep up the good work Sir.
@tonymorgan6022 жыл бұрын
Love you gorgeous people! These types of videos are worth their weight in uranium. When you just can't fix that error, this video is like a bar of chocolate, delivered by a cute bunny, on a sunny day, whilst wearing new shoes, smelling freshly baked doughnuts, with all your loved ones cheering you, and you find out that Furcifer's Fungeon gets a release date :)
@PlayWithFurcifer2 жыл бұрын
Awwww
@Theraot2 жыл бұрын
So that is what physical keys are for!
@PlayWithFurcifer2 жыл бұрын
I was wondering for a while before we found out :D
@AussieBazzo2 жыл бұрын
The 3d framebuffer allocation will slow down a 2d game on mobile significantly, but on newer devices it is still unnoticeable, also, can I ask what software you fella's use for video editing,? Thanks.☺
@WindBendsSteel2 жыл бұрын
You must know how and when to use yield(). Although, you can't tell people not to use it just because you haven't found a good use for it.
@PlayWithFurcifer2 жыл бұрын
But who will stop me?
@WindBendsSteel2 жыл бұрын
@@PlayWithFurcifer no one
@graydwarf222 жыл бұрын
Good tips. Yield is a monster in the closet. Glad to see you guys working on something new.
@asthalis2 жыл бұрын
A reeeaally useful video for cases every Godot developer has already had !
@PlayWithFurcifer2 жыл бұрын
Thank you very much :)
@Galomortalbr2 жыл бұрын
be careful with yields with objects outside of the main tree
@Theraot2 жыл бұрын
I had slow load times with mp3 and even crashes (my guess is that something odd with the encoder caused an edge case in Godot), in particular in web exports. Ogg is much better. Although my experience is that Ogg is slightly larger (you say it is smaller?), it loads faster (it seems that with mp3 Godot takes a little longer to fill audio buffers).
@PlayWithFurcifer2 жыл бұрын
OGG is a bit larger with same bitrate, but with a slightly lower bitrate it is both smaller and better quality (as far is my research goes, i dont have the ears to confirm that)
@asthalis2 жыл бұрын
I started my own game with MP3 files and I quickly changed them into OGG files. By lowering the quality setting a bit (I use audacity to convert them), they're really smaller in my project and I could not notice any audio quality loss even with a headset.
@Niknokinater Жыл бұрын
'Await' is so backward coming from gsc where every called function must return before proceeding. It's nice using actual results & not function states. If one needs to run a function simultaneously for whatever reason, just gotta specify it with a single keyword without the need to inherently proof any other relevant script. It's irritating at times calling functions in Godot with seemingly no absolute guarantee of a timely return & having to proof stuff when I just want to expect a result first.
@ShakyDawn2 жыл бұрын
Well guys, I owe you a tank of *well.. something to drink that the algorithm dont like me to post*... That "is instance valid" literally took me out of a month long suffering spiral... Thanx a ton!!!!!! (And awesome video as always!!)
@PlayWithFurcifer2 жыл бұрын
Glad it was helpfull! :D Thanks
@intrusivethoughts3601 Жыл бұрын
Spent 3 hours trying to fix a problem godot engine made up, yes, made up, since the issue doesn't exist. The only solution for it would be to clean missing files, does godot have this cleaning option? The issue is missing index h frames times v frames, on animation player
@taoliu73122 жыл бұрын
1:19 Is that an @? What does @onready mean? 👀
@Theraot2 жыл бұрын
That is an annotation. Which are part of GDScript 2.0 new syntax, which Godot 4 uses. @onready is what onready was for Godot 3.x.
@taoliu73122 жыл бұрын
@@Theraot 👍
@lawgyan27292 жыл бұрын
Everything works, especially free, use until it is too late!Cool! Downloaded))
@saulnores34772 жыл бұрын
So. If my code in Godot 3.xx said yield, it means it won't work in Godot 4? That's dissapointing.
@PlayWithFurcifer2 жыл бұрын
Yup it was renamed. You can find more info about GDScript 2.0 here: github.com/godotengine/godot/pull/39093 There are quite a few converters in the works. The Godot 4 Beta comes with a converter integrated. Haven't tested it yet though.
@saulnores34772 жыл бұрын
@@PlayWithFurcifer Thank you. I don't like this change. The word yield is used hundreds of times in my projects. I hate this change. Now I'll have to change this word hundreds of times. Just nonsense. By the way, your video is great and very informative.
@Theraot2 жыл бұрын
@@saulnores3477 Godot 4 will convert those for you the first time you open a project made with Godot 3.x - There will still be things to change, but yield and a lot of the API renames won't be among those. Except when you yield on something Godot can't figure out. --- I have notes on what you will have to look for: - Now there are two typed version of min, max, clamp, sign and abs. One works with int and the other with float. You might need to figure out which you need on a case by case basis. - Some APIs now use StringName when they used String before. Godot will convert between them with no problem, but some things you may have to change some declaration from String to StringName to match what Godot uses. - There is no subarray, now it is slice, and be careful with the upper bound. - Tweens are no longer nodes. Which also means you should not add_child them, but you still need to keep a reference… It is better to migrate to the new API. - You need to copy the bodies of getters and setters manually. - Warning suppression are not migrated. Also Godot 4 defaults are more strict than Godot 3.x defaults. Plus there is an open issue on the suppression of the unused_parameter warning. - As I said, if Godot can't figure out what you are yielding on, you will have to write the await yourself. - Remember to Configure Blender and FBX2gltf - Some EditorPlugin API changes still need to be done manually, in particular renamed virtual functions. - Pay attention to the changes to the button pressed state and signal names. - You need to update exported variables that have an enumeration manually - It is now _get_configuration_warnings and returns a PackedStringArray, Godot won't upgrade this for you. - You need to specify class icons with @icon
@Theraot2 жыл бұрын
@@saulnores3477 To clarify, on yield, Godot expect the signal name to be a string literal, or a variable identifier. If you have there something more complex (e.g. a ternary expression, or you do some string concatenation) then Godot won't be able to convert it to the new syntax.
@saulnores34772 жыл бұрын
@@Theraot Hi Alfonso. Thank you for your detailed explanation. You have been very polite. I learned many things with your answer. Thank you very much.
@maxg51962 жыл бұрын
I'm curious, how much did Raid Shadow Legends pay you?
@leo_mars2 жыл бұрын
It is based on downloads. So probably $0 so far, some if they get downloads. kzbin.info/www/bejne/rYTQaaOgeLCigKs
@ArabGameDev2 жыл бұрын
glow on android has low fps :(
@holleey2 жыл бұрын
huh. OGG smaller than MP3? that's news to me. I went from OGG to MP3 because of size. quality is generally fine.
@Kenneth_Lo2 жыл бұрын
ogg is better quality in same bitrate compare to mp3, so you can use lower bitrate (size) in same quality of mp3.
@soran22902 жыл бұрын
Tutorials for godot 4 please
@pipeliner89692 жыл бұрын
Please bring your videos to Odysee as well!
@PlayWithFurcifer2 жыл бұрын
I have no experience with that platform, what is it for?
@pipeliner89692 жыл бұрын
@@PlayWithFurcifer it's a great video platform and you can sync automatically to Odysee from KZbin. The amount of ads is getting annoying on KZbin unfortunately
@ltecheroffical Жыл бұрын
Raid shadow legends 💀
@neilwalker42772 жыл бұрын
Wav is better for sfx as it's less resource hungry and easier to stream. Great video as usual, but you've pretty much ruined it with a two minute advert. I've literally never seen an ad this long before, ever. I've think they have taken advantage of you . All it will do is result it lost viewers and every single viewer will skip the entire section so for this advertiser I've no idea what they were thinking, they have a zero result.
@PlayWithFurcifer2 жыл бұрын
I really don't think the (90s) advert ruined the video, people can skip it and it performs well. You simply have no insight into the deal we made, so I do not understand how you can judge if it was a good one...
@neilwalker42772 жыл бұрын
@@PlayWithFurcifer I'm glad you have sponsors, really am, and anything is better than being forced two unstoppable 20 second ads at the star 😉 Just commenting on the extent of it, feel free to ignore me. But yes, I skipped it all, that was my point.
@GDScriptDude2 жыл бұрын
I'm not a fan of Ads but I watched this one since it was fun.