Did you use a short variable name !?
3:14
Naming things is hard
1:31
2 жыл бұрын
Godot Engine Versioning
6:01
3 жыл бұрын
Don't wait for Godot!
3:12
3 жыл бұрын
Don't use Shortened Variable Names!
11:42
Setget in Godot Engine
5:49
7 жыл бұрын
Signals with Godot Engine
7:16
7 жыл бұрын
Tween ► Nodes in Godot Engine
9:23
Пікірлер
@drawtheword7590
@drawtheword7590 2 күн бұрын
7 years old but it is more clear and still relevant on what get and set is
@IvanSkodje
@IvanSkodje Күн бұрын
Sweet, thanks for sharing!
@MrBrigadierArchived
@MrBrigadierArchived 20 күн бұрын
is there a way to remove the radio/check icon from the options?
@adigiurgi
@adigiurgi 4 ай бұрын
Great video! Easy to follow and understand! Only thing missing is a github repo link to this example app
@adanhBurg
@adanhBurg 3 ай бұрын
Same here coudn't find it
@JohnTriantafillakis
@JohnTriantafillakis 4 ай бұрын
Really nice explanation, simple and useful example! I'm coming back with a question about how you can set clear boundaries between application, adapter, infrastructure, and domain layers. For example, how can we prevent developers from importing any code from the adapter layer to the domain layer, etc.? I have considered a multi-module project, but I'm not sure if it's enough due to the increased complexity. Thanks!
@c4r4dd1ct6
@c4r4dd1ct6 4 ай бұрын
If the connect method doesn't work for you, try replacing it with this line: timer.connect("timeout", Callable(self, "on_timeout_complete")) The connect method seems to have been changed to require a Callable for the second parameter, which would make the original timer.connect() line not work. Fortunately we have ChatGPT to help us now. It could also be the context I used this tutorial in (creating an Invoke method similar to the one used in Unity allowing for the user to hold down the jump button to jump repeatedly and consistently).
@JosephRamosstufff
@JosephRamosstufff 3 ай бұрын
Epic gamer Ty
@gonzalo3k
@gonzalo3k 2 ай бұрын
Thank you, this solved my problem!
@QqQq-bf8bd
@QqQq-bf8bd 5 ай бұрын
I’m using a VisibilityNotifier for my 3D project. It seems to be able to see through walls, but I want objects show in front of camera, I don't want objects show in behind the walls, what I will do?
@TheSemenFarada
@TheSemenFarada 5 ай бұрын
I got it - sounds good. The only issue I see in practice is an amount of mappings. From dto1, dto2... dton to domain (input), then from domain1, domain2.. to infra1, infra2 ... If i were a developer who does this i would got very bored in a week or less - but maybe ide automaton tools or AI assistance would solve the issue
@wxrld1
@wxrld1 5 ай бұрын
mapstruct
@Trendsthismonth
@Trendsthismonth 5 ай бұрын
Bro you sound like you sucked helium out of a balloon
@notclay7532
@notclay7532 6 ай бұрын
this actually saved my life, been struggling with one thing for ages and this helped incredibly, thank you!!!
@benjaminrichard1979
@benjaminrichard1979 6 ай бұрын
Man I wish this video was 2 hours long. I have so many questions! Also I would love to be able to go into this repo to try understanding things
@AndyDillbeck
@AndyDillbeck 8 ай бұрын
I want to make a Polygon2D, or packedVector2Array with marching squares. Is there a way to make something like that happen? I haven't found any good tutorials yet
@MarcoDuong-SoftwareEngineer
@MarcoDuong-SoftwareEngineer 8 ай бұрын
This is the best video I have seen on the hexagonal architecture implementation. But i have a question , i has logic like subscribe and handle event (use Spring event) but i don't know where will implement this logic. And can you share your project for me ?
@jedsada2575
@jedsada2575 5 ай бұрын
You should implement it on Adapter layer. More specifically driving part.
@ClintGameDev
@ClintGameDev 9 ай бұрын
Thank you so much for this tutorial, i have searched for a long time for videos to understand godot timer but understood none.. but this video really helped me a lot to understand both custom and built in timers.. thanks
@q404
@q404 10 ай бұрын
Nice video can u sing the gummy bear song
@touqui8659
@touqui8659 10 ай бұрын
take my children
@AgriasOaks99
@AgriasOaks99 10 ай бұрын
Can we custom set the dropdown panel somehow to a certain location?
@brianayate6312
@brianayate6312 10 ай бұрын
Question if you want to have yo make another timer is there a way to make a timer with out making it again like for shooting and throwing grenade
@bradexoff7584
@bradexoff7584 10 ай бұрын
Wow, I don't even know which version of Godot is that :0
@jonathansilva3364
@jonathansilva3364 11 ай бұрын
Hey Ivan, great video showing how you use the hexagonal architecture. The way I feel watching and learning from it is that, as usual, it takes a little bit more effort to make things in a way that would help us easily work on it later. One could think it's a big deal of effort to set all this up until there's a problem that needs fixing/change and they don't have a clue where to change. I have seen a lot of times cases in which we fix 1 thing and have a lot of regression bugs, which can easily be solved by this strict rule of having separate use cases and dtos. Thanks for this content.
@JohnnyDamenies
@JohnnyDamenies Жыл бұрын
Hi Ivan, can you share link to the code?
@Muchtar51
@Muchtar51 Жыл бұрын
Amazing short intro, would like to have more such kind of learning videos or an udemy course would be nice. Is the code published on github or at least the structure? Would be very nice to play around with it.
@samuelevander9823
@samuelevander9823 Жыл бұрын
Can someone explain to me this whole timer = Timer.new() -business? I have trouble understanding that syntax. What is it & what does it do? What part of Python fundamentals does it cover?
@IvanSkodje
@IvanSkodje Жыл бұрын
GDScript is Python. Essentially Object.new() in GDScript means you are creating and initiating a new object. The new() function also runs the object's "_init()" function. So if you create a custom object, you could use the same MyObject.new() to initiate it.
@blackobemamatters4418
@blackobemamatters4418 Жыл бұрын
Very interesting video, can you share this project on GH?
@joyoussuccess
@joyoussuccess Жыл бұрын
lols iam trying to do this in Godot 4,1 ... gooood luuck.. i dunno anything about shaders.. and whatever little i know about shaders is for unity, and its very little.. and they mustve changes soo much in godot 4.1 since whenever this was made lol
@joyoussuccess
@joyoussuccess Жыл бұрын
i got here b4 iam giving up lol shader_type canvas_item; //colors we use uniform vec4 color_1 : source_color = vec4(0.78, 0.78, 0.26, 1); uniform vec4 color_2 : source_color = vec4(0.490196078, 0.521568627, 0.152941176, 1); uniform vec4 color_3 : source_color = vec4(0, 0.415686275, 0, 1); uniform vec4 color_4 : source_color = vec4(0.015686275, 0.243137255, 0, 1); //color offset - changes threshold for color adjustments uniform float offset = 0.5; void fragment() { COLOR = textureLod(screen_texture, SCREEN_UV, 0.0); (????) is wrong iam just guessing }
@omegapirat8623
@omegapirat8623 Жыл бұрын
Why didn't you put the adapters folder into the infrastructure folder? Aren't adapters not part of the infrastructure?
@IvanSkodje
@IvanSkodje Жыл бұрын
A great question! You're spot on; there are specific reasons we distinguish between the database classes in the Adapters folder and those we’d typically place in the Infrastructure folder.. ! Adapters are all about converting data between different formats. Since we’re using Spring Boot in this project, much of the heavy lifting and details we’d usually find in the Infrastructure folder are hidden within the annotations we use, thus eliminating the need for explicit database code within the infrastructure folder. In this setup, our Adapters are dealing with the business layer logic, while the specifics of database interaction are managed by the annotations we’re using. This way, we maintain clarity and ensure every part of our architecture has its distinct role, while removing the need to write our own infrastructure logic for the database.
@MrOcelot92
@MrOcelot92 Жыл бұрын
A tua lla, the fact that i have an api problem is a flaw in the pattern right? Business knows there is an api outside
@MaxKronus
@MaxKronus Жыл бұрын
What are the RegisterNewAccountJpaService and UpdateAccountJpaService?
@IvanSkodje
@IvanSkodje Жыл бұрын
Good catch. The naming may not be good enough, but it essentially implements the desired functionality that we expose via the AccountJpaRepositoryAdapter. The Services within the adapter.out.jpa are details we do not care about (in business). How you choose to implement "registerNewAccount(Account account) {}" is up to you, as long as it is coherent with the other methods, such as "findAccountByEmail", and so on (within reason).
@HandledToaster2
@HandledToaster2 7 ай бұрын
I don't get it.. why aren't all these CRUD methods in the same AccountJpaRepo class? Extending crudRepo means you have it all in one place anyways ​@@IvanSkodje
@poggarzz
@poggarzz Жыл бұрын
I tried finding solution all over the internet but have no clue at all. When i try to get the property value of a child node it always throws an error: "invalid call. Nonexistent function 'get' in base'Nil'".... the part that's causing the problem: var color = $Label.get("theme_override_colors/font_color") edit: fixed! i saw one reply down in the comments. when i moved the code above into the _ready() function, it solved the issue. I still don't why it is caused.
@alexandrutanasescu7678
@alexandrutanasescu7678 Жыл бұрын
great video! @IvanSkodje curios what plugin you use for code highlight in different colours
@IvanSkodje
@IvanSkodje Жыл бұрын
Download and use the "Dracula Theme" plugin: plugins.jetbrains.com/plugin/12275-dracula-theme
@alexandrutanasescu7678
@alexandrutanasescu7678 Жыл бұрын
@@IvanSkodje awesome, thought you had some custom color schemes going on. think I just need to upgrade my IntelliJ IDEA a bit ^^
@alexdorand
@alexdorand Жыл бұрын
This is the best video I have seen on the hexagonal architecture implementation. Direct to the point, no eeemmm or huuummms. No superfluous stuff. Brilliant work.
@owenlloyd2528
@owenlloyd2528 Жыл бұрын
Thank you for this.
@mr_sauce_cooks
@mr_sauce_cooks Жыл бұрын
Literally the only video that actually teaches you what you need and it 5 years ago
@malithirm8711
@malithirm8711 Жыл бұрын
Helped me a lot, even in Godot4
@IvanSkodje
@IvanSkodje Жыл бұрын
Praise Godot
@AdrianKodja-m3f
@AdrianKodja-m3f Жыл бұрын
Really awesome video Ivan! Thank you! Btw what type of font are you using , looks neat!!
@michaelovie5582
@michaelovie5582 Жыл бұрын
thanks @Ivan, I really enjoyed watching your video. The concepts were well laid out and it all makes better sense now, thanks to your video.
@azeemmohammed6284
@azeemmohammed6284 Жыл бұрын
Hey thanks for the video, is it possible to share the project in github
@dnbc177
@dnbc177 Жыл бұрын
I dont have it when i search it it says not found do i have to download it or something? Can u help?
@codyac5580
@codyac5580 10 ай бұрын
Having this same problem it seems they may have changed it somewhere. Still have not found anything about it.
@erikdong
@erikdong Жыл бұрын
good break down. thank you!
@youkaba97
@youkaba97 Жыл бұрын
Thanks for this awesome teaching. Do you have github repo for this? Can you share please. Thanks again 🙂
@СергейБакин-ф7р
@СергейБакин-ф7р Жыл бұрын
ok, how i can get multiselect behavior? )
@PolygonSquad
@PolygonSquad Жыл бұрын
Great Tutorial, Thank You..
@dantheman52420
@dantheman52420 Жыл бұрын
Why did you chipmunkify your voice for this? It's a distracting sound
@IvanSkodje
@IvanSkodje Жыл бұрын
Thank you for sharing, I don't disagree with you. My original thoughts on this were: Faster videos can be more engaging and hold the viewer's attention better. By speeding up the video, you can cover more content in a shorter amount of time, which can make the tutorial more interesting and engaging. Faster videos can be more efficient for the viewer. By speeding up the video, the viewer can learn the same amount of information in less time, which can be especially useful for viewers who are short on time or have a lot of other things on their plate. Faster videos can be more concise and to the point. By speeding up the video, you can eliminate any unnecessary information or filler content, which can make the tutorial more focused and easier to understand. Faster videos can be more accessible for viewers with hearing impairments. By speeding up the video, you can make the audio more clear and easier to understand for viewers who have difficulty hearing. In my latest and future videos I wont be doing so (once I get into it again) :)
@That_One_Gamer211
@That_One_Gamer211 Жыл бұрын
very cool
@thanhkien5905
@thanhkien5905 2 жыл бұрын
Really enjoyed your video. It helped me a lot. Btw can you share the project? Many thanks
@IvanSkodje
@IvanSkodje Жыл бұрын
Happy you liked it, but I have not made the project public. If/when I get back to it I can see if I am able to create a template project similar to this. Is there anything in particular that peeked your interest?
@archimax08
@archimax08 2 жыл бұрын
Exactly what I was looking for, worked for 3D too. Thanks!
@rinomorin3287
@rinomorin3287 2 жыл бұрын
Simple, Straigth forward. and clear. Thanks. Finaly a example I did not require copying the author code. nor use exact same version they us in order for examples to work. Just a simple straigth forward example and explanation. Good Job.
@user-zi8wd3ov8m
@user-zi8wd3ov8m 2 жыл бұрын
If i want to make a raycast gun system class, how it is approached for a TPS controller? There will be a use of intersecting a ray from the weapon's muzzle point to the collision point of the camera raycast, but how is that achieved correctly? Each weapon will a different muzzle position, but how is that achieved from the weapon parent script, do i then need to mention it in the character's code, because I want to have all that specific vars and functionality in the weapon class, and not in the character class, i only want it to call the script from the character (if that makes sense?) , Thanks for this video, it helped me alot to understand it better, sorry for the long text I'm really searching for an answer for weeks, no one seems to cover TPS topics in godot :-(
@sebastiankargl
@sebastiankargl 2 жыл бұрын
I appreciate you talking about this topic! I would love if your voice volume would be a bit louder :D
@IvanSkodje
@IvanSkodje Жыл бұрын
Thank you for your feedback, I will make an effort to work more with the volume to make it better next time
@IThePrototype
@IThePrototype 2 жыл бұрын
Change the titel to “how versioning works” and this video will explode. Your story telling, knowledge and brilliant editing makes this a 10/10 video. Superb 🎉