How You Can Easily Make Your Code Simpler in Godot 4

Ғылым және технология

In this video we look at Inheritance vs Composition and a scenario where Composition is preferable in Godot 4.
Both Inheritance and Composition have their pros and cons, but Inheritance is for more often taught, despite Composition being very important in Game Development. I recently ran into Composition in my own projects and felt that it was vastly underrated and deserved to be taught.
Discord - / discord
Sprout Lands by Cup Nooble (The art I'm using):cupnooble.itch.io/sprout-land...
Music in the outro: • The 25th Hour - Schlat...
Chapters:
00:00 Intro
00:27 Inheritance Approach
01:57 Composition Approach
03:06 Setting up the Components
04:53 Using the Components
06:01 Creating Example Objects
06:44 Outro

Пікірлер: 464

  • @rohanflanagan5701
    @rohanflanagan570118 күн бұрын

    came here from Brackeys and so glad i did, GREAT video. loving where the game Dev world is going, feels like a new era that is far more enclusive than ever before

  • @heavyboy9616

    @heavyboy9616

    16 күн бұрын

    same

  • @yazgaroth

    @yazgaroth

    16 күн бұрын

    same!

  • @pietricele
    @pietricele Жыл бұрын

    I love that you managed to explain a fairly confusing and complicated topic with examples showing both the problem and the solution by using this approach and also the tradeoff for using the inheritance over composition ( at least for this kind of scenario ). I think those are the kind of educational videos that are hard to come by, especially with an easy to follow visual representation, which are really appreciated by the community. We know it's not easy and it takes time to find examples and then explain them in a simpler manner, as you did, but we really appreciate each one of them and we thank you for that!

  • @fishybusiness1149

    @fishybusiness1149

    Жыл бұрын

    This man really spoke for all of us and nailed it

  • @HoovyMcBoovy

    @HoovyMcBoovy

    Жыл бұрын

    I agree, thank you for going into examples that are very applicable. Here and there I'll watch some coding videos that give useful advice, but they don't provide any examples and I have no idea what to do with their advice because I have to spend extra time figuring out what it means and how to apply it.

  • @HisBelovedSon70x7

    @HisBelovedSon70x7

    8 ай бұрын

    Amen! As I was watching I thought to myself I need to compliment this man's fantastic teaching ability. Then I scrolled down and found you've done it better than I could have. Well said. Bitlytic thank you for such a clear and simple explanation of the different concepts and providing an example, you made it very easy to understand and follow.

  • @pepsipwns666

    @pepsipwns666

    7 ай бұрын

    Agree, really well made vid, to the point but also very informational!

  • @YammoYammamoto

    @YammoYammamoto

    6 ай бұрын

    Has a... Is a... Uses a...

  • @the_kryllic
    @the_kryllic Жыл бұрын

    This really clicked for me, the animations were super helpful to visualize abstract ideas and I really appreciate the walkthrough in the end

  • @dv_interval42
    @dv_interval4218 күн бұрын

    Brackeys gang

  • @SamuTheFrog

    @SamuTheFrog

    3 күн бұрын

    You know this dude knows his stuff when the OG sends you to him.

  • @fkeyzuwu
    @fkeyzuwu Жыл бұрын

    cool video! if you are already trying to decouple code using composition over inheritence, i would probably create a signal on the hitbox that the parent object would connect to. then whenever the hitbox gets hit, it emits the signal, the parent can then decide what to do with it. in this case propogate the attack info onto the health component. this way the hitbox component does not need to know anything about the health component.

  • @Bitlytic

    @Bitlytic

    Жыл бұрын

    Very much agree, signals and composition work so well together but I figured I had already given enough fundamental info in the video or I would've included that. Specifically I would've replaced the queue_free in HealthComponent with a signal emission that the player can choose to use or not

  • @BrochetteBoeufFromage

    @BrochetteBoeufFromage

    Жыл бұрын

    How can i emit a signal, is it get_parent().die() for example or am i missing the point?

  • @BrochetteBoeufFromage

    @BrochetteBoeufFromage

    Жыл бұрын

    Because if it's what i wrote, you have to declare a die() function for every object

  • @cyberneticsquid

    @cyberneticsquid

    Жыл бұрын

    @@BrochetteBoeufFromage I'm not really sure how to explain the signal system just in a KZread comment, but I recommend checking the Godot documentation, it explains signals really well

  • @catcactus1234

    @catcactus1234

    Жыл бұрын

    @@BrochetteBoeufFromageYou don’t need to use a parent for signal emissions. You just need an acccessuble entity to connect to. Many godot tutorials use a “global” or “manager” script that contains their most common functions / signals which they can emit to from any script or object.

  • @computersciencestudentriverbat
    @computersciencestudentriverbat Жыл бұрын

    Composition as a design pattern I think is uniquely equipped for solving problems and making more robust (and easier to maintain) code. There aren't a lot of videos on programming patterns in Godot and seeing this is great. Talking about general/generic problem solving I think helps beginners out a lot by helping us step outside of "How to do X" to thinking about breakdown solutions to fit their own needs/program. Tutorials have their place and purpose of course, but I think Godot (programming in general to be honest) is in great need of this sort of problem solving/design thinking sort of information. Great video!

  • @poleve5409

    @poleve5409

    13 күн бұрын

    as much as I love making pretty and readable code… we have to admit it honestly doesn’t matter for 99% of godot games

  • @lunaticwyrm4675
    @lunaticwyrm467510 ай бұрын

    When I develop in Godot, I often use a mixture between inheritance and composition, and oftentimes, I use resources instead of nodes for composition since it is easier to modify through an export statement. For example, I have a slew of statemachine resources that I can plug in to my Actor class (which is basically an entity class), which makes it easier to trade behaviors depending on the entity type and whether there is currently a cutscene or battle.

  • @da_roachdogjr

    @da_roachdogjr

    10 ай бұрын

    I kind of got deeper into godot recently and I'm using custom resources unaware of this video's specific subject. I find it very weird that custom resources aren't being heavily promoted by tutorials. Need the same enemy to have different types of stats or damage, just drag and drop. It's like secret godot magic because there's only like 3 decent videos about it. What going on? I ctrl+F and this is the only comment talking about resources O.O

  • @lunaticwyrm4675

    @lunaticwyrm4675

    10 ай бұрын

    @Pulse_Skeleton Yeah Ik, weird right? You'd expect this miracle solution to be talked about more. It's so useful for, say, making multiple unique character objects in game from the same Actor scene without having to make seperate actor-inherited scenes for each character.

  • @capsey_
    @capsey_ Жыл бұрын

    This has to be one of the most (if not the most) approachable explanation of inheritance vs. composition. Very easy, straight forward and clear. I had to learn it the hard way and for the longest time couldn't understand the advantage. I wish I had this video back then. Love it!

  • @YammoYammamoto

    @YammoYammamoto

    6 ай бұрын

    inheritance - "x is a..." composition - "x has a..." aggregation - "x uses/knows a..."

  • @PotassiumLover33

    @PotassiumLover33

    2 ай бұрын

    ​@@YammoYammamoto idk man for me these kind of explanations just confuse things more. Its such an abstract explanation to the point its hard to visualise how it would work in code.

  • @travotravo6190
    @travotravo61908 ай бұрын

    Coming from Unity where you can throw multiple scripts on things without thinking or use multiple inheritance, this kind of helps me get my head around how Godot is 'meant' to be used! Good tutorial.

  • @Bloody_River

    @Bloody_River

    7 ай бұрын

    Now I see one more reason why unity games are so laggy and taking a tons of space.

  • @kurushimee

    @kurushimee

    7 ай бұрын

    @@Bloody_River scripts don't take up much space at all, it's all assets

  • @Bloody_River

    @Bloody_River

    7 ай бұрын

    Ye, I didn't mean scripts takes much space. I said in general. But scripts making laggy btw. So yeah, unity sks anyway.@@kurushimee

  • @PamellaCardoso-pp5tr

    @PamellaCardoso-pp5tr

    6 ай бұрын

    @@kurushimee they actually do. Spaghetti code leans into massive super classes bloated with a lot of functions and huge objects that aren't properly managed in the memory by the program. So, even tho they aren't automatically making your code laggy or bloated, the usage of inharitance leans into this kind of problem really easily and it gets really hard to manage the memory usage of such objects.

  • @patek2385

    @patek2385

    Ай бұрын

    If you would use scriptable objects you would be golden

  • @SamuTheFrog
    @SamuTheFrog3 күн бұрын

    You clearly put a lot of effort into this mini-series thing, and I must say... Fucking EXCELLENT job, man.

  • @ASTROBOXSD
    @ASTROBOXSD Жыл бұрын

    this helped me alot, i've started using godot about less than a week ago, so far did not make my first game yet and this already gave me a good direction, thank you! however i noticed that when you got to this point in the video 3:29 you said "from the last video" without providing a card to click on(or a comment), as a youtuber myself i know that by time goes on it will be harder to search for the video manually, especially if you kept uploading videos, lastly i would really love to see a video talking about when and how inheritance is more preferred. thank you once again!

  • @Bitlytic

    @Bitlytic

    Жыл бұрын

    Good call, I've added that. Thanks a ton for the suggestion!

  • @GhostbitStudios
    @GhostbitStudios Жыл бұрын

    This clicked for me. Was trying to learn this topic and you explained it so well in such a quick but well paced manner, never stop teaching, this was amazing

  • @cm16533
    @cm1653310 күн бұрын

    Man you are easily the most clear and efficient teacher I've found for game dev / Godot on KZread. Hope to see more videos. Thanks for the help.

  • @cesarlemos1337
    @cesarlemos1337Ай бұрын

    For someone whho works with Java, I had my fair share of complaining about the abuse of inheritance and lack of real composition. You managed to explain it in a way that I can just replicate eithout sounding too technical. Thanks!

  • @scollll
    @scollll Жыл бұрын

    Bro, you need to continue this type of videos. I'm really learning from this.

  • @maywakeTV
    @maywakeTVАй бұрын

    I fell into the exact trap you gave as an example. Looking forward to refactor my game to use more composition and less inheritance!

  • @WilliamShinal
    @WilliamShinalАй бұрын

    You're a lifesaver! I had to give up on my shmup project in Godot 3 before I saw this.

  • @psyboyo
    @psyboyo18 күн бұрын

    Brackeys sent us!

  • @KlausbergerYT
    @KlausbergerYTАй бұрын

    Saw this in my Timeline and although I knew about both concepts, I still watched the full video as it was really spot on.

  • @MrMelonMonkey
    @MrMelonMonkey Жыл бұрын

    Hey, so glad I found this channel. I love how you visualize these concepts and make it easy to understand. looking forward to see more of these videos. Keep it up!

  • @sonny5497
    @sonny54978 ай бұрын

    I loved your animated explanation. Simple and to the point! Thanks for this awesome video man

  • @AndrewWooldridge
    @AndrewWooldridge Жыл бұрын

    I really like how clearly and concisely you described the two strategies and how composition can be a preferable way of organizing your code. I look forward to more videos from you!

  • @tiloksaha7961
    @tiloksaha7961 Жыл бұрын

    Amazing! love the way you explain such an useful concept, thanks for making and sharing it with us. Keep them coming.

  • @nislaav6712
    @nislaav67128 ай бұрын

    Absolutely loved you used presentation style animations as well as gave real life examples, 10/10 video

  • @6Uriann9
    @6Uriann95 ай бұрын

    Loved the simplicity that you found to explain an not so simple subject with easy to follow examples. Thanks for bringing this one!!!

  • @Yamartim
    @Yamartim18 күн бұрын

    i watched this video already but im watching it again because brackeys mentioned it 🙏🙏

  • @LostOnceMore
    @LostOnceMore7 ай бұрын

    Great tutorial, breaks the components down so simply. Well done

  • @EvelynIsBased
    @EvelynIsBased10 ай бұрын

    one of the best godot tutorials I've seen love it, very simple and easy to understand, thank you so much :)

  • @richbuilds_com
    @richbuilds_comАй бұрын

    Great tutorial. In your Entity example at the start. Entity should extend Node and then it can be attached to anything. Create your player as a CharacterBody and attach the entity script. Your Mobs are RigidBodies and your Trees are StaticBodies. You can have Entity extend PhysicsBody3D to be even more type safe. That way you can only make an entity out of something that must have a hitbox

  • @Kantrul
    @Kantrul11 ай бұрын

    Damn, just found out about your channel and you do a very good job explaining these kind of topics (classes, inheritance vs composition). The Godot community needs more content creators like you

  • @tatarus33
    @tatarus3316 күн бұрын

    I just started with Godot. This is a really great tutorial. I was just trying to reformat my code and see what other people are doing and this is exactly what I was searching for. Your videos are very valueable to me :) Keep up the good work.

  • @qingxian3870

    @qingxian3870

    15 күн бұрын

    did you have programer background?

  • @sillygoose8037
    @sillygoose803718 күн бұрын

    really solid video, started with theory, showed a fun example, really made it concrete. clear, informative, love it.

  • @Haxses.
    @Haxses.10 ай бұрын

    Your tutorials are so good. There's plenty of beginner tutorials for Godot at this point, but we are seriously lacking in simple guides on how to architecture games. Tutorials like these are incredibly valuable and many budding game devs wont even know that they need to be looking for this kind of stuff. Please keep making tutorials!

  • @alectriciti
    @alectriciti9 ай бұрын

    Hey, you did excellent explaining the difference between Inheritance and Composition. Not a lot of videos take the time to utilize simple illustrations (and color coding elements such as Attack, Health, and Hitbox). Very helpful for visual learners. You're on the right track, and I hope you keep making videos. That said, I'll be sending this video to my aspiring game-dev friends when I see them inevitably copy/paste code. Also, that sprite animation at the end is super cute!

  • @DavidAV00068
    @DavidAV0006820 күн бұрын

    Love all your videos, keep making them!

  • @YouTubsel
    @YouTubsel4 ай бұрын

    This was pretty much exactly what I was currently struggling with. And it was absolute clear and concise. Thank you so much. :)

  • @perfectminutegames
    @perfectminutegames4 ай бұрын

    Great video. Short, concise, and informative. Thank you!

  • @snuck7926
    @snuck7926 Жыл бұрын

    Amazing vid! This was exactly what i needed. Can't wait for more vids like this!

  • @thargelion
    @thargelion6 ай бұрын

    This is a mind blowing way of explaining inheritance vs composition in just 7 minutes. Great job!

  • @Emefak
    @Emefak17 күн бұрын

    I came from the Brackeys video too, great job explaining composition. I have one question, though: how can you call that super cute cow THE ENEMY???

  • @Bitlytic

    @Bitlytic

    17 күн бұрын

    You don't know his sins like I do

  • @Emefak

    @Emefak

    17 күн бұрын

    @@Bitlytic 😂😂😂

  • @ghc_dias
    @ghc_dias Жыл бұрын

    Loved the way you explained and put it into practice. This helps a lot people like me that struggles with massive teory! thank you!!

  • @heatblayze
    @heatblayze16 күн бұрын

    I always love seeing how other developers perceive and approach different problems, even if we both come to the same solution. It definitely helps when you make a video that's as well presented as this one! Great work

  • @noise_dev
    @noise_dev2 ай бұрын

    thanks for this man! I am using inheritance for my inventory system and now composition will greatly help while implementing enemy nodes

  • @flunk009
    @flunk0095 ай бұрын

    The first video I found on this topic was the epitome of the "Every programming tutorial" meme video, but your video made everything click in my head immediately! Thank you so much for explaining composition in a quick and easy-to-understand way!

  • @joshhoffman7811
    @joshhoffman78116 ай бұрын

    This is really fantastic work. You definitely changed my perspective on this and saved me from going off the deep end with inheritance as I'm learning gamedev :)

  • @Xiimo_
    @Xiimo_ Жыл бұрын

    nah im halfway in, and i already know this deserves at least ten times the views that it has just for the quality and the amount of work behind. great video!

  • @Squilllo34
    @Squilllo342 ай бұрын

    okay i found out how. btw thank you for making these. there arent that many tutorials that guide in coding in general instead of just specific coding structures

  • @plebbitgeld
    @plebbitgeld Жыл бұрын

    Hey man, thanks for the video it's really comprehensive and intelligently made! It follows most if not all proper design patterns and I just fell in love with the way you edit your videos. I highly suggest tackling the Finite State Machine problem next using this component style! That would be amazing!

  • @somedude8392
    @somedude83927 ай бұрын

    I have to say, this is a really good and easy to understand tutorial for a really useful function

  • @juansnyders7323
    @juansnyders7323 Жыл бұрын

    Amazing and informative video, visualising and explaining complex programming patters in easy to understand ways and how to implement them as well truly a gem on the platform.

  • @SilentRaven77
    @SilentRaven7710 ай бұрын

    Thank you so much for explaining a somewhat complex topic in such a simple manner!

  • @tuftypompom
    @tuftypompom4 ай бұрын

    I've been using Godot for a good few years now and I have never thought of this for some reason?? This was such a fun and informing video!! I'm excited to put these concepts to use.

  • @Frank_G_Finster
    @Frank_G_Finster8 ай бұрын

    I salute you for giving me this inside. I have learnt a lot in those 7 minutes and the wisdom will be put to use a lot. Thank you very much.

  • @itsdalion6612
    @itsdalion66127 ай бұрын

    Thanks! Will def start using composition in my games and see how it turns out I am surprised I was able to understand this since I am not that good at programming yet you did a really good job in explaining the concepts in a pretty short time, good job!

  • @morneerasmus1789
    @morneerasmus17898 ай бұрын

    Really well put together, thank you so much!

  • @aussiescorner3954
    @aussiescorner395414 күн бұрын

    came here due to Brackeys video and though I'm not completely comfortable with this yet it seems like a very good thing to know. Very much enjoyed the video thank you.

  • @denizk0461
    @denizk0461Ай бұрын

    Thank you!! I was meaning to use a more component-oriented approach in my game, but I've struggled with finding out how to implement that properly. This video really helped me understand it better - the code examples were especially helpful!

  • @covenautadev7260
    @covenautadev7260 Жыл бұрын

    A time ago I made a similar sistem that mix both inheritance and composition, but it had the same soul, I found it so cool, now I notice that other people are dicovering and making it in many ways, it is amazing.

  • @darth0sasha
    @darth0sasha6 ай бұрын

    Wow, actually went through 10 videos about OOP, trying to find a way to fix the issue of inheritance. And you were the one to explain so clearly and neatly. Thank you a lot.

  • @gladiusso
    @gladiusso Жыл бұрын

    Great video! I agree with others on how you described a more advanced programming technique in a very detailed, yet concise and clear way

  • @mingmingtv8403
    @mingmingtv84034 ай бұрын

    hoping for your channel to grow even more in the future. Thank you for this and have a nice day.

  • @omaryahia
    @omaryahia6 ай бұрын

    really clear explanation, happy to have found your channel🌟👍🏻

  • @HonestGameDev
    @HonestGameDev8 ай бұрын

    Great video, not only displays composition trumps inheritance in a lot of cases (inheritance has it's use cases) but also ties into how the workflow in Godot is awesome with it's Nodes system.

  • @Akab
    @Akab Жыл бұрын

    Thank you, this really gave me visual pointers as to how such a system works. I am used to build similar systems from scratch but am still not used to the visual approach in contrast to doing it solely programmatically

  • @Visstnok
    @Visstnok5 ай бұрын

    Amazing! Wish I had this video way back when, but it's also damn good to get confirmation I've learned a whole lot from trying and failing.

  • @biglootums5243
    @biglootums52435 ай бұрын

    Thank you for this. I keep hearing about how great composition vs inheritance is but really needed a super simple demonstration of it actually being done to really get it. Videos about the theory are great but some of us just need to see it done a couple times! Thank you!

  • @endermaster08
    @endermaster088 ай бұрын

    Easily the best godot tutorial on this entire website. It's so clear and to the point. Who knew that you could teach me how to clean up my code in 7 fucking minutes?

  • @delqyrus2619
    @delqyrus2619 Жыл бұрын

    I already knew about composition and inheritance but i never knew how to implement it properly in Godot. I never actually tried it and simply stumbled over this video. But it explains it actually great and i can't wait to experiment with it! I hope to see more of such content soon.

  • @SethTooQuick
    @SethTooQuick6 ай бұрын

    Yoo this is crazy. I had watched this video ages ago for fun, then recently found interest in SM64 rom hacking and found your tutorials. Small world.

  • @Xero_Wolf
    @Xero_Wolf Жыл бұрын

    Great video. As you concluded I use a combination of both.

  • @victorgarces3379
    @victorgarces33798 ай бұрын

    I've been working as a software engineer for more than half a decade and this is by far the best explanation I've seen for Composition. Nice video, keep it up!

  • @alexwilkinsgames
    @alexwilkinsgames23 күн бұрын

    This video is the equivalent of an ice cold glass of water at 2 am! Thank you for the visuals at the beginning! I get hard concepts for visuals and now my brain is firing off so many ideas!!! 🎉

  • @grzegorzpedrycz2630
    @grzegorzpedrycz26302 ай бұрын

    I just re watch that video over and over again ;) sucha a wonderful piece of knowledge !

  • @tapio355
    @tapio35510 ай бұрын

    Thank you so much for this tutorial! I only started my project and immediately got into inheritance hell when tried to change its order. Now rewriting what I have with this new technic. Your classes tutorial is useful too.

  • @MokarromHossain
    @MokarromHossain Жыл бұрын

    Loved the way you explained it. Nice video bro ❤️

  • @rungeon83
    @rungeon83 Жыл бұрын

    This was beautfully explained and excuted! Thank you for an awesome video!

  • @RainwareSoftworks
    @RainwareSoftworks4 ай бұрын

    This one is massive, really good tutorial helps a lot

  • @92LucAC
    @92LucAC22 күн бұрын

    Man, what a great video! Thank you very much!

  • @_JPkun
    @_JPkun Жыл бұрын

    Hey, this is really cool! I've saw this kind of design pattern in college, and I noticed it on Godot, but I never though of creating our own custom nodes. This seems really powerful and consistent with the engine's design, together with inheritance this can be insanely powerful tool! Thanks!

  • @uththtytyththrdh
    @uththtytyththrdh Жыл бұрын

    Excellent video my compatriot! Look forward to seeing more from you! You earned a sub!

  • @stevemcwin
    @stevemcwin Жыл бұрын

    This is a really nice tutorial, I hope you make more content of this quality!

  • @hoteny
    @hoteny4 ай бұрын

    This made me understand why i should ever use composition. Thank you, i had this problem with inheritance for too long.

  • @filipkuzmicz8127
    @filipkuzmicz81276 ай бұрын

    Thx, I'm currently switching from unity to godot, so explanations for design patterns in godot are really helpful. Great vid, had everything i needed for now

  • @fourlionnn
    @fourlionnn2 ай бұрын

    I've watched like five videos from different people about composition, and this one is, by far, the most demonstrative one about why exactly composition is better than inheritance. Many congrats and thanks and praises for such a good work of topic telling 🙏

  • @igorrodriguez9942
    @igorrodriguez99422 ай бұрын

    Great stuff, thanks a bunch! Added a signal to hitbox component with the attack position and knockback, now everything can be knocked back if needed :D

  • @Tegyukfel
    @Tegyukfel4 ай бұрын

    This is really really good advice. This pattern just feels right, like how the named classes, exports, nodes and scenes are meant to be used together to create an efficient and simple architecture which corresponds to programming best practices, but in Godot

  • @fryd42
    @fryd42 Жыл бұрын

    THANK YOU ive been so confused about a simple aproach to giving simple stats to my characters. thank you so much

  • @Spar3Tim3r
    @Spar3Tim3r11 ай бұрын

    I've watched TWO videos and I'mma just say this is an extremely underrated channel. Wishing all the success to you. Thanks for the help.

  • @CoreyDWillis
    @CoreyDWillis10 ай бұрын

    Great tutorial! Very clear and precise!

  • @LeniconDev
    @LeniconDev2 ай бұрын

    Best video ever, and this is not just for Godot 4, this works well for Godot 3 and mainly other types of programming if you get the logic behind it. Perfectly explained and simple. Absolutely brilliant

  • @per-axelskogsberg3861
    @per-axelskogsberg3861 Жыл бұрын

    This was really good. Great work!

  • @docmars
    @docmars4 ай бұрын

    Very helpful, this is the way. I've never really been a fan of Inheritance patterns for the same reasons you stated where base classes often do too much, and moving that functionality somewhere else is a huge pain. Refactors end up eating all your time. It's awesome to see good Composition patterns applied directly in Godot here to see first-hand how useful it is. Thanks for putting this together!

  • @ericspeak6110
    @ericspeak611011 ай бұрын

    There needs to be more content like this on Godot better coding practices and templates that can be used for any game taught in this fashion. Friggin great.

  • @AlexanderPrussak
    @AlexanderPrussak3 ай бұрын

    wow, so concise. you have a gift

  • @Burak-ls5yd
    @Burak-ls5yd8 ай бұрын

    Great solution! I was currently implementing this approach and it's already working great. I was coming from an OOP background and when I was working with Godot for the first time, I was trying to inherit everything. Lol, it was too messy to deal with, and the inherited classes were not efficient. I have one suggestion though: Maybe instead of using get_parent().bla_bla(), you can emit signal like emit_signal("somebody_touched_this_hitbox", Area), and take context from Area if Area is a particular extended class of Area (Maybe it's an Area of Enemy, etc.). This approach would easier to manage I think. Edit: Yeah, exporting the Node2D and attaching it as a variable is also a better solution. You don't need to work with signals. Good job.

  • @gonzo191
    @gonzo191 Жыл бұрын

    Your inheritance example was kinda 'flawed' as you dumped every behaviour in Entity, however, I do get your point. Inheritance requires a fair bit of thought and design considerations before properly implementing. And as you stated, sometimes inheritance is better as with composition. I tend to use scene inheritance and composition approach these days.

  • @RivalKnightSoul
    @RivalKnightSoul18 күн бұрын

    Definitely saving this for later

  • @megalukes
    @megalukes Жыл бұрын

    Very good content. This is useful specially if you're trying to apply Single Responsibility Principle in your own projects. Thanks a lot for that!

  • @madmanwithaplan1826
    @madmanwithaplan18266 ай бұрын

    my man do you understand how hard it is to break down code theory to such an understandable and digestible format? you got a real talent for educating people.

  • @simomine7
    @simomine72 ай бұрын

    Keep it up! I really loved this video!

Келесі