Over my career, I've worked at Blizzard, EA, Microsoft, and other studios and I can say with confidence you would be a rockstar on any team I've been a part of. Your ability to not just clearly explain information, but also code cleanly and efficiently while taking the initiative is what all AAA studios look for. Kudos.
You are the best, most comprehensive, most useful, most humble UE5 channel bar none! You teach the best practices, most efficient methods and unlike many others you actually know what you are doing. thank you so much for making these videos for free,. please don't stop making them If you do I will get depressed.
the best thing is that he teaches you the best way to implement something instead of just showing you the easiest way, which is usually not scalable and only leads to problems in the end.
Thank you so much for your kind words! I really appreciate your support and I'm glad you're finding the videos helpful. I'll definitely keep making them 🙏 and thank you all for the replies and the encouragement! You are all reason why I do this 🙏
I fully agree, hes probably in the top 5 people in the unreal youtube tutorial scene that actually know how things work and when to use something. I always thought the other people never explained it because its uncesserary or should be done like they show, but in reality its because they don't know it themself better. Its behind my mind how 7 different Component videos were not able to explain it properly. It just takes ONE proper done, and this just confirms that i wasnt the problem understanding but the people not even teaching this stuff here. Its literally so simple just giving a concrete example when everyone else is talking in abstract concept bullshit thinking you would understand without years of C++ experience. Theres zero reason to teach concepts without giving a real world example. You can't tell someone how to make a proper Bolognese without him seeing how it should look and taste like.
Probably the only UE channel teaching the right architecture practices and decision making when building a game. Most of the channels focus on WHAT and HOW but ignore the WHY. The only way I know to consistent progress is grasping the WHY part. As someone with a background in software engineering I wish more channels would focus on tutorials of this type but I guess you come to value them only when you understand the problem with "How to do X" types of tutorials. Best of luck in the future! Looking forward to more exciting videos.
I've said it before and I say it again: if somebody told me all this earlier I could be major game developer in some AAA company today. It's just amazing to have somebody who can make all this methods and tricks so easy to understand. Thank you very much, Ali!
I just want to echo what everyone else is saying.. You're hands down the best at explaining blueprints in a way that everyone can understand. I can't stress enough how lucky we are to have you!
Your tutorials are the best Because of your combat system video i was able to figure out how to make a healing items you can pick up and each gonna heal differently This was a huge milestone because i’m new to unreal and before your tutorials i was just copying blueprints not knowing what I’m doing Now things finally started to click Thank you 🙏
Hey! I'm really glad to hear that my tutorials are helping you understand Unreal better. It's awesome to see you reaching milestones like creating healing items! Keep up the great work, and thank you for sharing your progress 🙏
Thank you so much for your kind words! I really appreciate the comparison to Brackeys 🙏. I'm glad you're enjoying the content, and I'll definitely keep it coming!
It's amazing how important this seems yet I've never come across it until your video. Even reading the supplement you linked, I'm now amazed that inheritance hasn't come under more scrutiny. Most ue5 tuts just focus on inheritance but never caution how knotted it can become. Thanks, Ali, for the potent content!
Hey! Thank you for the thoughtful comment. Though inheritance itself is not something to avoid. All the patterns that I teach should be used together, it's just about knowing what to use when. So if you have a character class, then you enemy and player should both inherit from that, but you shouldn't add health and damage functionality to the character class if you plan on having it shared by other classes that are not of type character. All design patterns have their pros and cons, they are made to solve specific problems that everyone will encounter when writing software, so knowing as many design patterns as possible is the best way to ensure you are writing clean code.
Like others who also seem to be in the industry have mentioned in your comment section, I've also been working with multiple AAA studios over the years and believe that your tutorials are incredibly high quality, straight to the point, and very easy to follow along with and understand. If you ever make a course going over blueprints in Unreal Engine 5, I have no doubt in my mind that it will be an amazing success. Keep up the awesome work! I'm really looking forward to watching each new video that comes out on your channel.
Thank you so much for your kind words and support! I’m really glad you find the tutorials helpful. I appreciate your confidence in a potential course, and I’ll definitely keep it in mind for the future! Stay tuned for more content 🙏
More people should get to watch this fantastic video! Some of the larger UE5 creators tend to only explain how something works in isolation, which sometimes makes it difficult to understand how to use what I take away from those videos. Really love how you add so much value to what you are teaching here by showing and explaining where it all fits into a system! Thanks! 😊
Thank you so much for your kind words! I really appreciate your feedback, and I'm glad to hear that you find my explanations helpful. Your support means a lot 🙏
The greatest thing about your videos is that even though I felt like I knew about components in unreal, I knew I'd still find value from your video on them. Boy was I right!
Often I make something, then refactor with considerations to public API, dependencies, etc. This takes mental effort. Then i watch one of your videos and realize that's how it should be done everytime, without thought. Keep making these videos! I want to see more architectural videos.
Hey! I really appreciate your feedback, thank you! I’m glad to hear the videos are helping you refine your approach. I'll definitely keep your suggestion for more architectural content in mind 😉🙏
As a software engineer who is new to UE, this is exactly what I’ve been looking for-how to efficiently and elegantly structure and re-use logic in UE. You just answered several questions I’ve been struggling with in one short video. Thank you!!
For the algorithm... You are a fantastic, top notch, best of the best educator, you explain what is necessary, clearly, concisely with no added bull. For that I cannot thank you enough for the hard work and effort you put into these. I've shared you with people who have experience and people who are fresh to unreal and both have come back and told me how helpful your videos are.
Thank you so much for your kind words! I'm really glad to hear that both experienced users and beginners are finding my videos helpful. Your support means a lot! 🙏
another lovely video demystifying common confusions. I especially loved how you show actually how to communicate with owning actors too and pass things back and forth. Great stuff.
Really enjoy the way you explain everything as you go threw it. You really have a good way to communicate to your fellow listeners. I'm really learning from your teaching method. Thank you
These design pattern explanations are the best I've seen for UE thus far, if not the best overall. This channel is rapidly becoming my favorite UE channel, thank you!
i am watching unreal engine tutorials and Course since 2 year but i never enjoy soo much while watching your video you are going by fav. youtube for unreal engine Tutorials
Awesome like always! Will say it again: it was awesome, mega informative and cosy to follow your tutorials mate! 30k subs already, and you deserve more! Good luck!
I never tried doing a damage and health system using actor components, as I always used GAS for handling attributes so far. It does give a lot of advantages, especially for multiplayer games, but I see how this could also work for simpler structures. Well explained
Thanks for sharing your thoughts! It's true that both methods have their advantages, and it's great to find approaches that suit different needs. I'm glad you found the explanation helpful! 🙏
Man, I can't stress it enough when I say, Superb. Whenever I see something from your channel, I get motivated and happy. Top Tier Unreal Instructor, I'd say.
This might be the best channel with Unreal Engine tutorials on youtube. Very clear and comprehensive. I was not at all familiar with some of these concepts, as I am still very much a beginner, but this video was a very exciting watch with lots of notes to take. Thank you!
Thank you so much for your kind words! I'm really happy to hear that you found the video helpful and exciting. Keep up the great work as you continue learning! 🙏
It's so funny I've spent the last week researching ways to structure my player, equipment, and vehicles which all have overlapping aspects but can't share a parent class. I thought about components, but was less familiar with how to implement them. I looked for a good tutorial and here it is! Posted exactly when I needed it.
Thank you for your comment! I'm glad to hear you found the tutorial exactly when you needed it 🙏 If you have any questions while implementing, feel free to ask!
Amazing tutorial, perfect explanation, great usecases and you didnt waste any time with unrelated stuff. I dont think theres a better way of showcasing the use of components and the editing is just top level. I really appreciate the time you spend for bringing this gem of a video to us! Keep it up, your the best!
Thank you for your kind words! I'm really glad you found the tutorial helpful and appreciate the feedback on the editing, it definitely takes a looong time to get to this state. Your support means a lot 🙏
Thank you so much for all your time Ali. I've been a software engineer for the last 40 years and now that I'm retired, I'd like to finally learn game design. Coming from a multi computer language background, I wanted to learn things correctly. I thought Components would be a nice topic but now I can relate to Event Dispatchers too. On the health bar, wouldn't your event dispatcher instead of die, maybe sens a health zero event? What if your character is some kind of machine or robot that runs out of fuel or charge? Or better yet, have 2 separate Components, one for Charge and one for Health? (I think I have this - ah-ha moments are the best)!
Hey! Thank you for your thoughtful comment. I'm glad to hear you're diving into game design! Your suggestions on using event dispatchers to dispatch a health zero event is definitely valid, but like I said in this part; this is just a very basic demo to showcase the design pattern, and is in no way meant to be a video on how to build a damage system :D
You're so good at explaining. I'm not good at English, so it's hard for me to understand it if it's fast, but I think I'll understand it completely if I watch it a few more times. Thank you😎
Thank you for your kind words! I'm glad you're finding the content helpful. Take your time watching, and feel free to ask if you have any questions. Happy learning! 🙏
Personally, I would make another actor component called "humanoid death" that gets data from the health component, and you can add animations to play on 0 hp.
im too late. already worked on my project for a year on inherited player and enemies and NPCs. love your series bro. not a lot of videos on UE design on YT........
Hey there, thanks for watching and commenting. Just to make sure there is no confusion, using inheritance to share functionality between a player and an enemy is completely fine. As long as you're sharing logic that won't be needed outside that parent class. But for sharing something like health or attacks, that are potentially going to be used in many other places that aren't necessarily inherited from a character class, then inheritance is a bad solutions
Best! I was trying to create such a system for days on my own. Now i learned Real potential of components also how to use event dispatchers! Great video! Thanks!
You're very welcome! I'm glad you found it helpful and learned something new about components and event dispatchers. Thank you for watching and commenting 🙏
Hey, welcome to the Unreal Engine community! I'm glad you found my channel. I hope you enjoy the videos and find them helpful as you learn. Thanks for stopping by! 😊
This is amazing. Explained the concept of components very well. Correct me if im wrong, but it sounds like you can set all of your player attributes up with this method and make the different components communicate. (Ie. Attribute affects health, but the value varies between characters) You would just have to make your health component check if you have that particular stat component and modify the max health based on that value. Or ignore it completely if you don't have the component. If any of that made sense.
Hey! Thank you for your thoughtful comment. You're absolutely right! By using components, you can manage player attributes efficiently and enable communication between them. Your explanation makes perfect sense 🙏 Keep up the awesome work!
You can even get the event "any damage" in to the component, binding It on begin play of you want to avoid direct comunication and using Unreal Engine function
To avoid hard references, I would recommend using interfaces, as I mentioned in my full tutorial on the damage system, but the built in damage function of unreal engine is very basic, and would not be useful for a real game. Even Epic games doesn't use it in their games
Great video! Very well explained, very well edited, with details accompanied by different situations and supporting images. Thank you very much! great work! If you are ever looking for themes that always interest beginners like me with Unreal: - How to use the Abstract blueprint (complementary to the Actor Component?) - How does the World Partition work - How to create a Replication Subsystem - How does audio work and what are the different audio blueprints - What is the use of a Travel map - How to import a character only modeled in Unreal and how to add a rig (with the face included), how to add the new animation samples of Unreal - How to create a day-night cycle and a weather system Thank you =D
Hey, thank you for your kind words and for the great suggestions! I appreciate the list, and I’ll definitely consider these topics for future videos. Glad you're enjoying the content! 🙏
This is amazing, thank you for the useful graphs and the clear explanations of why and why not. So many other tutorials just drop into it and you can easily end up with a mess!
You're very welcome! I'm glad you found the explanations helpful. I definitely spend a huge amount of time making those graphics, so I'm happy to see that they have the intended effect 🙏
Thank you so much for saying that! I definitely spend the bulk of the editing time on making these visuals, so I'm really happy to hear they are helpful 🙏 Thanks for watching and commenting
Best Channel Ever! Can you please do a video for Buff/Debuff? like burning, curse, stun debuff, boosting speed, boosting health, boosting attack power buff etc. PLEASE PLEASE PLEASE!!
Hey! Thank you for the kind words and suggestion! I'll definitely consider making a video on buffs and debuffs in the future 🙏 If you have a specific game in mind that does this mechanic well, let me know
@@AliElZoheiry Hi Ali, Thanks so much for your reply. I'm testing the Buff/Debuff in my game (I'm quite new, so I'm learning as I go), the system is like what we have in the World of Warcraft, that a mage is shooting fireball, then when projectile (fireball) hit the target, it will cause a burn debuff, and if Mage casts a frost ball, then it will cause a slow debuff etc. I can achieve the same effect in specific attack, but struggling to create a flexible system that I can apply buff/debuffs in any type of attack. I've watched your Damage System video many times, I just want to know if there's any way that I can create a buff/debuff system using Actor Component or (other features of the Blueprint) that can communicate with the Health/Damage System Actor Component. I heard about the GAS system, but can't seem to find an easy to follow tutorial, any recommendations? I wish all UE5 youtubers can explain things like you can, but so far your channel is the only place that I can really learn something, will follow your channel to death.
be flexible, I mean fire ball attach a damage tick debuff, frost ball attach to target a slow debuff, and maybe a poison attack will attach both damage tick and slow debuff, and widget/damage indicator should show different vfx or text in different colors etc. right now, I have to write logic for different attack separately, it's very repetitive and easy to make mistakes. apologize that if this is a dumb question, I'm still very new to UE5 and programming. Thanks again!
Great video! I was just getting into actor components as I start to build different ideas out and reuse a lot of the same mechanics. This is super helpful
This came at a good time, I followed a tutorial series adding melee combat, and the presenter had all of the functionality on the player. Now my challenge is to figure out move much of that functionality to an Actor component. I moved light and heavy attacks, but due to my lack of knowledge I may be casting too often as I tried get owner a few times with not much success. I needed to cast to get certain functions from the player, I need to look into event dispatchers, I may be able to eliminate the cast. The ultimate goal is to add the third person controls to the player controller, because currently 9 playable characters are slated, and I know that I'll need things to be modular when I add more.
Hey! It sounds like you're making some great progress! Using Actor components is definitely a good approach for modularity. Event dispatchers can help you reduce casting and keep things clean. If you encounter specific issues or have questions, feel free to ask! Good luck with your project 🙏
I was doing the second method of inheritance for a while now but I had a nagging suspicion it may still not be the best strategy. So this video's pretty helpful.
You are an excellent teacher. And so it's such a shame that you are using blueprints instead of c++, but l totally understand you, with c++ you will have to move from VS to UE back and forth all the time compiling a minute change and reopening the engine just to see them refresh.. alas!
Thank you for the kind words! I mainly use blueprints as they are better for explaining concepts visually, but I always recommend to people to use both blueprints and C++ in their actual projects, because you would be limiting yourself otherwise. You can of course make an entire game in blueprints, but it won't be as performant and you will have to do a lot of workarounds. You can also make a game purely in C++, but then you're iterations will be incredibly slow, and you lose out on all the tools epic games' is building for us in blueprints. So definitely a mix of both is the right way to go
Thank you for your kind words! I'm glad you found the material easy to follow. A course on the League of Legends universe sounds like an interesting idea! I'll definitely keep that in mind for future content 🙏
Thank you for your support! I'm glad you find my content valuable 🙏 It’s something I’ve considered, so I appreciate the encouragement! What kind of course would you like to see?
@@AliElZoheiry a course that teaches concepts is a good idea since most of the courses are focusing on making small simple games. I mean you can have project files for the students to download and you teach us how to build over it. Every lesson focuses in one thing and it has its own files. And project files can be completely different from each other. Your design patterns are a good example. In the end of the course we don't need to have a full game but a reference for some topics about game dev. Lets say one video for struts and arrays. Other one for communication. Third one for online setup.... etc. . Also FPS course is something I will buy since I am interested in the genre.
Nice video! I have implented my health bar slightly different. Instead of the widget BP binding to the “damage taken” the health component sets the percent value by using the widget ref when the health is updated. I think i might like your approach better
I have a question, what if i also want to have ArmorComponent so, both ArmorComponent and HealthComponent, in that example I don't think Attack component would work, should in that case exist DamageComponent which checks which components exist on the actor and apply first damage to armor and to health later? Or maybe in that case there should also be an interface so we can identify actors that can take damage?
My personal approach is having an interface for damagable actors, and these actors use the actor component to implement the interface functions. That's the approach I took in my video on how to create a damage system, check it out if you're interested
Is there any limit to the number of attached components and would it be a good idea to make each attack/spell a separate component instead of storing all of them inside one? Also, what are your thoughts on GAS? I'm still torn between using my own components/tags and relying fully on GAS which seems to be becoming an industry standard. Thanks for amazing video!
Hey, great questions! There isn't a strict limit to the number of attached components, but it's generally a good practice to keep things organized. Meaning things that are related to eachother should be in the same component, so having a single component for each spell won't be a great idea because they will have a lot in common that they'd want to share, so better to keep them close Regarding GAS, it definitely has its benefits and can provide a robust framework for managing complex systems. If you find it suits your needs, it might be worth exploring further. Thanks for watching and sharing your thoughts! 🙏
Thank you for your comment! I'm glad you enjoyed the video. I'll definitely consider making a tutorial on multiplayer efficiency and patterns in the future 🙏
Any plan for GAS ? it is very complex, learning curve is steep, but it looks super cool. I'm confident that with your skills, anyone would be able to understand and use GAS :)
Hey! Thanks for your comment and suggestion. GAS does have a steep learning curve, I am personally using it in my projects, and discovering new things every day, so once I have a good grasp on it, I'll definitely make tutorials
So how would one spawn/add a component from within an other component? (Something that is easily done with spawning normal actors) > also event dispatchers aren’t mandatory or a go to > you can still use everything as you normally do (custom events etc). Besides that what’s the real difference-benefit apart from “modularity” (something that you can also do with actors without problems) between using actors (spawning and attaching an actor to an actor) compared to actor components? What’s the overhead difference? And how does this benefit when dealing with replication? To be more clear, let’s say you spawn a normal hud (main widget) that should be in your Controller > you want it to interact with your health (should be on your character) > you spawn a component in your controller for the hud, but you decide you want that component to spawn your health component and want to attach/add it to your character from there (as far as I know it can’t be done, while with normal actors it wouldn’t be a problem). So you end up with all these components you need to add manually to each actor you want to use them on…….
Hey! Great questions. Spawn components from within other components is a bit different than spawning actors, but you can still do it using the "Add Component" node in blueprints. As for the differences, actor components are generally more lightweight and can lead to better organization of your code into reusable modules. They're designed for specific behaviors and can be replicated more easily, which is beneficial in many scenarios. However, if you're finding you're just attaching components to actors without needing their specific benefits, sticking with actors might be simpler for your case. Hope this helps clarify a bit! 🙏
Amazing video! I am confused on one thing though. How useful is it to have the player and enemies share an Attacks Component? In your example, the player and enemy were both using the same attacks, but that would almost never happen in a game.
Hey! Thank you for your comment. Sharing an Attacks Component can be useful for maintaining consistent attack logic across different characters, the animations can be very different, but the logic is the same, for example a sword swing is the same whether an enemy or player is doing it
Great tutorial though I am curious that you chose to use Event Dispatchers over interfaces. ED's seem like they are better fit if you have multiple components/actors that need to trigger off an event. But given that your ED's have only one to one triggers wouldnt it be a bit less heavy and less reliant on hard references to use a IFHealthActor and IFHealthWidget interface instead?
Hey, thanks for your comment! To clarify, Event Dispatchers and Interfaces aren't the same thing, and don't achieve the same result. Most importantly, calling interface functions is a simple "synchronous" call, while event dispatchers offer a way to react "asynchronously" to an event occurring. So they are fundementaly very different and serve different uses, and they can and should be used together. Checkout my full video on creating a damage system where I use both interfaces and event dispatchers together
Great tutorial, I have a few questions: Is this example better implemented in single player projects or multiplayer? What if we have multiple different characters to choose from in a multiplayer game, do these components work across all characters if they have different health or damage types / values? Will multiple widgets need to be made for each character?
Hey! Thanks for your questions. This pattern is general way to structure your code, it makes no assumption on single player or multiplayer. As long as replication is handled correctly.
Před 28 dny
you are amazing man I love to watching your videos but ı beg you can you make c++ videos ?
Over my career, I've worked at Blizzard, EA, Microsoft, and other studios and I can say with confidence you would be a rockstar on any team I've been a part of. Your ability to not just clearly explain information, but also code cleanly and efficiently while taking the initiative is what all AAA studios look for. Kudos.
Thank you so much for your kind words and encouragement! It means a lot to hear such praise from someone with your experience in the industry 🙏
You are the best, most comprehensive, most useful, most humble UE5 channel bar none! You teach the best practices, most efficient methods and unlike many others you actually know what you are doing. thank you so much for making these videos for free,. please don't stop making them If you do I will get depressed.
the best thing is that he teaches you the best way to implement something instead of just showing you the easiest way, which is usually not scalable and only leads to problems in the end.
@@larsh.1154 Thats exactly it! most tutorials out there are pretty much useless if you are trying to make an actual game.
Pretty much what I wanted to say.
Thank you so much for your kind words! I really appreciate your support and I'm glad you're finding the videos helpful. I'll definitely keep making them 🙏
and thank you all for the replies and the encouragement! You are all reason why I do this 🙏
I fully agree, hes probably in the top 5 people in the unreal youtube tutorial scene that actually know how things work and when to use something. I always thought the other people never explained it because its uncesserary or should be done like they show, but in reality its because they don't know it themself better. Its behind my mind how 7 different Component videos were not able to explain it properly. It just takes ONE proper done, and this just confirms that i wasnt the problem understanding but the people not even teaching this stuff here. Its literally so simple just giving a concrete example when everyone else is talking in abstract concept bullshit thinking you would understand without years of C++ experience. Theres zero reason to teach concepts without giving a real world example. You can't tell someone how to make a proper Bolognese without him seeing how it should look and taste like.
Probably the only UE channel teaching the right architecture practices and decision making when building a game. Most of the channels focus on WHAT and HOW but ignore the WHY. The only way I know to consistent progress is grasping the WHY part. As someone with a background in software engineering I wish more channels would focus on tutorials of this type but I guess you come to value them only when you understand the problem with "How to do X" types of tutorials.
Best of luck in the future! Looking forward to more exciting videos.
I've said it before and I say it again: if somebody told me all this earlier I could be major game developer in some AAA company today. It's just amazing to have somebody who can make all this methods and tricks so easy to understand. Thank you very much, Ali!
Thank you for your kind words! I'm really glad the content is resonating with you and making things easier to understand. I appreciate your support 🙏
I just want to echo what everyone else is saying.. You're hands down the best at explaining blueprints in a way that everyone can understand. I can't stress enough how lucky we are to have you!
Thank you so much for your kind words! I'm really glad to hear that my explanations are helpful. I appreciate your support 🙏
The fact that this video demonstrates not just what but why and why not is incredibly helpful
Thank you! I'm glad to hear that you found it helpful 🙏
Your tutorials are the best
Because of your combat system video i was able to figure out how to make a healing items you can pick up and each gonna heal differently
This was a huge milestone because i’m new to unreal and before your tutorials i was just copying blueprints not knowing what I’m doing
Now things finally started to click
Thank you 🙏
Hey! I'm really glad to hear that my tutorials are helping you understand Unreal better. It's awesome to see you reaching milestones like creating healing items! Keep up the great work, and thank you for sharing your progress 🙏
I feel like you have become the Brackeys of Unreal engine. Glad you're here and love all of your content. Keep it coming.
Thank you so much for your kind words! I really appreciate the comparison to Brackeys 🙏. I'm glad you're enjoying the content, and I'll definitely keep it coming!
It's amazing how important this seems yet I've never come across it until your video. Even reading the supplement you linked, I'm now amazed that inheritance hasn't come under more scrutiny. Most ue5 tuts just focus on inheritance but never caution how knotted it can become. Thanks, Ali, for the potent content!
Hey! Thank you for the thoughtful comment. Though inheritance itself is not something to avoid. All the patterns that I teach should be used together, it's just about knowing what to use when. So if you have a character class, then you enemy and player should both inherit from that, but you shouldn't add health and damage functionality to the character class if you plan on having it shared by other classes that are not of type character.
All design patterns have their pros and cons, they are made to solve specific problems that everyone will encounter when writing software, so knowing as many design patterns as possible is the best way to ensure you are writing clean code.
Like others who also seem to be in the industry have mentioned in your comment section, I've also been working with multiple AAA studios over the years and believe that your tutorials are incredibly high quality, straight to the point, and very easy to follow along with and understand.
If you ever make a course going over blueprints in Unreal Engine 5, I have no doubt in my mind that it will be an amazing success.
Keep up the awesome work! I'm really looking forward to watching each new video that comes out on your channel.
Thank you so much for your kind words and support! I’m really glad you find the tutorials helpful. I appreciate your confidence in a potential course, and I’ll definitely keep it in mind for the future! Stay tuned for more content 🙏
More people should get to watch this fantastic video!
Some of the larger UE5 creators tend to only explain how something works in isolation, which sometimes makes it difficult to understand how to use what I take away from those videos. Really love how you add so much value to what you are teaching here by showing and explaining where it all fits into a system! Thanks! 😊
Thank you so much for your kind words! I really appreciate your feedback, and I'm glad to hear that you find my explanations helpful. Your support means a lot 🙏
Ali, your skill of tutoring is increadible! You're a gift to the community, Thank you
Thank you so much for your kind words! I'm really glad you find it helpful 🙏
The greatest thing about your videos is that even though I felt like I knew about components in unreal, I knew I'd still find value from your video on them. Boy was I right!
Thank you so much for your kind words! I'm really glad to hear that you found value in the video, even with your prior knowledge 🙏
Often I make something, then refactor with considerations to public API, dependencies, etc. This takes mental effort. Then i watch one of your videos and realize that's how it should be done everytime, without thought. Keep making these videos! I want to see more architectural videos.
Hey! I really appreciate your feedback, thank you! I’m glad to hear the videos are helping you refine your approach. I'll definitely keep your suggestion for more architectural content in mind 😉🙏
As a software engineer who is new to UE, this is exactly what I’ve been looking for-how to efficiently and elegantly structure and re-use logic in UE. You just answered several questions I’ve been struggling with in one short video. Thank you!!
You're very welcome! I'm glad to hear that you found it helpful. Thanks for your comment and for checking out my videos 🙏
For the algorithm... You are a fantastic, top notch, best of the best educator, you explain what is necessary, clearly, concisely with no added bull. For that I cannot thank you enough for the hard work and effort you put into these. I've shared you with people who have experience and people who are fresh to unreal and both have come back and told me how helpful your videos are.
Thank you so much for your kind words! I'm really glad to hear that both experienced users and beginners are finding my videos helpful. Your support means a lot! 🙏
You are so chill and explain so well with real examples is very easy to follow. Thank you for that
Thank you for your kind words! I'm really glad to hear that you find it easy to follow. I appreciate you taking the time to comment 🙏
another lovely video demystifying common confusions. I especially loved how you show actually how to communicate with owning actors too and pass things back and forth. Great stuff.
Thank you so much for your kind words! I'm glad you found it helpful and enjoyed the explanations 🙏
Really enjoy the way you explain everything as you go threw it. You really have a good way to communicate to your fellow listeners. I'm really learning from your teaching method. Thank you
Thank you so much for your kind words! I'm glad to hear you find my teaching method helpful. I appreciate your feedback 🙏
These design pattern explanations are the best I've seen for UE thus far, if not the best overall. This channel is rapidly becoming my favorite UE channel, thank you!
Thank you so much for the kind words! I'm really glad you're enjoying the content and finding it helpful 🙏
i am watching unreal engine tutorials and Course since 2 year but i never enjoy soo much while watching your video you are going by fav. youtube for unreal engine Tutorials
Thank you so much for your kind words! I'm really glad to hear you're enjoying the videos. Your support means a lot to me 🙏
Aaaaand now I'm thinking differently. Really appreciate the effort you put into these, man. Cheers from Australia!
Hey! Thank you so much for your kind words. I'm really glad the videos are making you think differently. Cheers 🙏
Awesome like always! Will say it again: it was awesome, mega informative and cosy to follow your tutorials mate! 30k subs already, and you deserve more! Good luck!
Just give it some time watch that count grow 💯
Thank you for your kind words! I'm glad you're finding the tutorials informative and easy to follow. I appreciate your support and encouragement 🙏
I never tried doing a damage and health system using actor components, as I always used GAS for handling attributes so far. It does give a lot of advantages, especially for multiplayer games, but I see how this could also work for simpler structures. Well explained
Thanks for sharing your thoughts! It's true that both methods have their advantages, and it's great to find approaches that suit different needs. I'm glad you found the explanation helpful! 🙏
Man, I can't stress it enough when I say, Superb.
Whenever I see something from your channel, I get motivated and happy.
Top Tier Unreal Instructor, I'd say.
Thank you so much for the kind words! I'm really glad to hear that my content motivates you. I appreciate your support 🙏
This might be the best channel with Unreal Engine tutorials on youtube. Very clear and comprehensive. I was not at all familiar with some of these concepts, as I am still very much a beginner, but this video was a very exciting watch with lots of notes to take. Thank you!
Thank you so much for your kind words! I'm really happy to hear that you found the video helpful and exciting. Keep up the great work as you continue learning! 🙏
Wow after a year of following tutorials none covered creating actor components and it’s so simple and useful. 🙏
I'm glad to hear that you found it useful! Actor components can really enhance your project. Thank you for following along and your support! 🙏
by far the most clear and useful unreal engine youtuber along with unreal sensei - thank you for all your work - really helpful!
Thank you so much for your kind words! I'm really glad you find my content helpful 🙏
It's so funny I've spent the last week researching ways to structure my player, equipment, and vehicles which all have overlapping aspects but can't share a parent class. I thought about components, but was less familiar with how to implement them. I looked for a good tutorial and here it is! Posted exactly when I needed it.
Thank you for your comment! I'm glad to hear you found the tutorial exactly when you needed it 🙏 If you have any questions while implementing, feel free to ask!
Amazing tutorial, perfect explanation, great usecases and you didnt waste any time with unrelated stuff.
I dont think theres a better way of showcasing the use of components and the editing is just top level. I really appreciate the time you spend for bringing this gem of a video to us!
Keep it up, your the best!
Thank you for your kind words! I'm really glad you found the tutorial helpful and appreciate the feedback on the editing, it definitely takes a looong time to get to this state. Your support means a lot 🙏
Thank you so much for all your time Ali. I've been a software engineer for the last 40 years and now that I'm retired, I'd like to finally learn game design. Coming from a multi computer language background, I wanted to learn things correctly. I thought Components would be a nice topic but now I can relate to Event Dispatchers too.
On the health bar, wouldn't your event dispatcher instead of die, maybe sens a health zero event? What if your character is some kind of machine or robot that runs out of fuel or charge? Or better yet, have 2 separate Components, one for Charge and one for Health? (I think I have this - ah-ha moments are the best)!
Hey! Thank you for your thoughtful comment. I'm glad to hear you're diving into game design! Your suggestions on using event dispatchers to dispatch a health zero event is definitely valid, but like I said in this part; this is just a very basic demo to showcase the design pattern, and is in no way meant to be a video on how to build a damage system :D
You're so good at explaining.
I'm not good at English, so it's hard for me to understand it if it's fast,
but I think I'll understand it completely if I watch it a few more times. Thank you😎
Thank you for your kind words! I'm glad you're finding the content helpful. Take your time watching, and feel free to ask if you have any questions. Happy learning! 🙏
17:40 - this is exactly the part i was missing and made me avoid components in the past. :D Thanks.
I'm glad to hear that it was helpful! Thank you for watching and sharing your thoughts 🙏
Personally, I would make another actor component called "humanoid death" that gets data from the health component, and you can add animations to play on 0 hp.
Would it be advisable to do a Humanoid Death and one for creatures of 4 legs such as a wolf?
There are lots of ways to structure your game, it all depends on what you're trying to do. This is just a demo
im too late. already worked on my project for a year on inherited player and enemies and NPCs. love your series bro. not a lot of videos on UE design on YT........
Hey there, thanks for watching and commenting. Just to make sure there is no confusion, using inheritance to share functionality between a player and an enemy is completely fine. As long as you're sharing logic that won't be needed outside that parent class. But for sharing something like health or attacks, that are potentially going to be used in many other places that aren't necessarily inherited from a character class, then inheritance is a bad solutions
ما شاء الله جهودك جميلة اتمنى انك تشرح عن تصميم القائمة الرئيسية وكيفية عمل قائمة للمهارات وللحقيبة وشكراُ على هذا الشرح المفصل
مرحبًا! شكرًا لك على تعليقك اللطيف وسأضيف اقتراحك إلى قائمة الأفكار لمقاطع الفيديو القادمة 🙏
Best! I was trying to create such a system for days on my own. Now i learned Real potential of components also how to use event dispatchers! Great video! Thanks!
You're very welcome! I'm glad you found it helpful and learned something new about components and event dispatchers. Thank you for watching and commenting 🙏
Ali back at it again with another banger!
Thanks for the support! Glad you enjoyed it 🙏
I clicked on the video without knowing it was yours, dude, tysm for your work !
Hey! I'm glad you found it helpful! Thank you for watching and commenting 🙏
Perfect ! Composition Pattern. Love it. Thanks for the video.
You're welcome! I'm glad you enjoyed it and found the composition pattern helpful. Thanks for watching and commenting 🙏
Just getting into learning unreal engine! Just found your channel thanks for all these videos! Excited to learn all these new things :D
Hey, welcome to the Unreal Engine community! I'm glad you found my channel. I hope you enjoy the videos and find them helpful as you learn. Thanks for stopping by! 😊
This is amazing. Explained the concept of components very well.
Correct me if im wrong, but it sounds like you can set all of your player attributes up with this method and make the different components communicate. (Ie. Attribute affects health, but the value varies between characters) You would just have to make your health component check if you have that particular stat component and modify the max health based on that value. Or ignore it completely if you don't have the component.
If any of that made sense.
Hey! Thank you for your thoughtful comment. You're absolutely right! By using components, you can manage player attributes efficiently and enable communication between them. Your explanation makes perfect sense 🙏 Keep up the awesome work!
I'm one of those 'rarely ever comment' guys, but hell - this was super informative and clear. Keep it up Ali!
Hey! I really appreciate you taking the time to comment. I'm glad you found it informative 🙏 Thank you for your support!
Apparently i subbed to you a long time ago.. im realizing why while watching this video. GG sir.
Thank you! I'm glad to hear you're enjoying the content again 🙏
you are a true treasure amidst the bog of unreal content on this platform
Thank you so much for your kind words! I'm really glad you find my content valuable 🙏
You've got a good cadence, and I seem to have an easy time staying focused because you're so articulate. Keep it up!
Thank you for the kind words! I'm glad to hear my style helps you stay focused. I appreciate your support 🙏
This video is so good. Lots of Ah-Hah moments. Thank you for slowly breaking down concepts along the whole process.
You're very welcome! I'm glad you found it helpful and informative. Thank you for your kind words! 🙏
Very helpful video.
I think you are one of the best tutorial guys for unreal
With advanced knowledge and not just giving basic how to use
Thank you for your kind words! I'm glad you found the video helpful and that you appreciate the depth of the content 🙏
Such a master class. You are doing so great explaining concepts. You have a new subscriber !
Thank you so much! I appreciate your support and I'm glad you're finding the content helpful. Welcome to the channel! 🙏
You can even get the event "any damage" in to the component, binding It on begin play of you want to avoid direct comunication and using Unreal Engine function
To avoid hard references, I would recommend using interfaces, as I mentioned in my full tutorial on the damage system, but the built in damage function of unreal engine is very basic, and would not be useful for a real game. Even Epic games doesn't use it in their games
I use interfaces always to interact with the information. In this damage example I would use. More enhancement.
Hey! That's a good approach, using interfaces can really help with managing interactions efficiently. Thanks for sharing your thoughts! 🙏
Great video! Very well explained, very well edited, with details accompanied by different situations and supporting images. Thank you very much! great work!
If you are ever looking for themes that always interest beginners like me with Unreal:
- How to use the Abstract blueprint (complementary to the Actor Component?)
- How does the World Partition work
- How to create a Replication Subsystem
- How does audio work and what are the different audio blueprints
- What is the use of a Travel map
- How to import a character only modeled in Unreal and how to add a rig (with the face included), how to add the new animation samples of Unreal
- How to create a day-night cycle and a weather system
Thank you =D
Hey, thank you for your kind words and for the great suggestions! I appreciate the list, and I’ll definitely consider these topics for future videos. Glad you're enjoying the content! 🙏
This is amazing, thank you for the useful graphs and the clear explanations of why and why not. So many other tutorials just drop into it and you can easily end up with a mess!
You're very welcome! I'm glad you found the explanations helpful. I definitely spend a huge amount of time making those graphics, so I'm happy to see that they have the intended effect 🙏
The visuals are sooo helpful! Great explanations!
Thank you so much for saying that! I definitely spend the bulk of the editing time on making these visuals, so I'm really happy to hear they are helpful 🙏 Thanks for watching and commenting
Best Channel Ever! Can you please do a video for Buff/Debuff? like burning, curse, stun debuff, boosting speed, boosting health, boosting attack power buff etc. PLEASE PLEASE PLEASE!!
Hey! Thank you for the kind words and suggestion! I'll definitely consider making a video on buffs and debuffs in the future 🙏 If you have a specific game in mind that does this mechanic well, let me know
@@AliElZoheiry Hi Ali, Thanks so much for your reply. I'm testing the Buff/Debuff in my game (I'm quite new, so I'm learning as I go), the system is like what we have in the World of Warcraft, that a mage is shooting fireball, then when projectile (fireball) hit the target, it will cause a burn debuff, and if Mage casts a frost ball, then it will cause a slow debuff etc. I can achieve the same effect in specific attack, but struggling to create a flexible system that I can apply buff/debuffs in any type of attack. I've watched your Damage System video many times, I just want to know if there's any way that I can create a buff/debuff system using Actor Component or (other features of the Blueprint) that can communicate with the Health/Damage System Actor Component. I heard about the GAS system, but can't seem to find an easy to follow tutorial, any recommendations? I wish all UE5 youtubers can explain things like you can, but so far your channel is the only place that I can really learn something, will follow your channel to death.
be flexible, I mean fire ball attach a damage tick debuff, frost ball attach to target a slow debuff, and maybe a poison attack will attach both damage tick and slow debuff, and widget/damage indicator should show different vfx or text in different colors etc. right now, I have to write logic for different attack separately, it's very repetitive and easy to make mistakes. apologize that if this is a dumb question, I'm still very new to UE5 and programming. Thanks again!
Your videos are very well organized and explained, thank you! You're great 👍
You're very welcome! I really appreciate your kind words. Glad you find them helpful! 🙏
Love your vids bruh. Bind to event > OnDeath > Explode.
Mahk you be everywhere. Cool channel.
Thanks! Glad you enjoy the videos! If you have any questions about that setup, feel free to ask 🙏
Amazing content! Quality code! Clearly ecplained! Your doing an amazing job, keep up the fantastic work!
Thank you so much for your kind words! I'm really glad you found it helpful. I appreciate your support 🙏
Great video! I was just getting into actor components as I start to build different ideas out and reuse a lot of the same mechanics. This is super helpful
You're very welcome! I'm glad to hear that you found it helpful. Best of luck with your projects! 😊
the videos have gotten so good man ill learnt so much from you
Thank you! I really appreciate your kind words, and I'm glad to hear you're learning so much 🙏
ur good at making learning enjoyable
Thank you! I'm really glad to hear that you find the learning process enjoyable 🙏
This is masterpiece, Thank you! Now I finally fully understand this can not wait to try this.
You're very welcome! I'm glad to hear that it helped you understand. Enjoy trying it out! 🙏
This came at a good time, I followed a tutorial series adding melee combat, and the presenter had all of the functionality on the player. Now my challenge is to figure out move much of that functionality to an Actor component. I moved light and heavy attacks, but due to my lack of knowledge I may be casting too often as I tried get owner a few times with not much success. I needed to cast to get certain functions from the player, I need to look into event dispatchers, I may be able to eliminate the cast. The ultimate goal is to add the third person controls to the player controller, because currently 9 playable characters are slated, and I know that I'll need things to be modular when I add more.
Hey! It sounds like you're making some great progress! Using Actor components is definitely a good approach for modularity. Event dispatchers can help you reduce casting and keep things clean. If you encounter specific issues or have questions, feel free to ask! Good luck with your project 🙏
I was doing the second method of inheritance for a while now but I had a nagging suspicion it may still not be the best strategy. So this video's pretty helpful.
I'm glad to hear it was helpful! It's always good to explore different strategies in game development. Thanks for watching and sharing your thoughts 🙏
This is great. I have misused inheritance quite a bit, so it's nice to see a modular alternative
Glad to hear you found it helpful! Modular approaches can make a big difference. Thanks for watching and commenting! 🙏
Thanks again for another amazing video, you're awesome man
You're very welcome! I appreciate your kind words and thank you for watching and commenting 🙏
Amazing tutorial! Very clear instructions e useful information, thanks!
You're very welcome! I'm glad you found it clear and useful. Thank you for watching and commenting! 🙏
You are an excellent teacher. And so it's such a shame that you are using blueprints instead of c++, but l totally understand you, with c++ you will have to move from VS to UE back and forth all the time compiling a minute change and reopening the engine just to see them refresh.. alas!
Thank you for the kind words! I mainly use blueprints as they are better for explaining concepts visually, but I always recommend to people to use both blueprints and C++ in their actual projects, because you would be limiting yourself otherwise.
You can of course make an entire game in blueprints, but it won't be as performant and you will have to do a lot of workarounds.
You can also make a game purely in C++, but then you're iterations will be incredibly slow, and you lose out on all the tools epic games' is building for us in blueprints. So definitely a mix of both is the right way to go
a masterpiece! an incredibly informative video...
Thank you! I'm glad you found it informative. I appreciate your support 🙏
The material is so easy to understand that I would like to see a course on the league of legend universe from the author))
Thank you for your kind words! I'm glad you found the material easy to follow. A course on the League of Legends universe sounds like an interesting idea! I'll definitely keep that in mind for future content 🙏
thank you for the amazing tutorials! make inventory tutorials next please ))
You're very welcome! I'm glad you're finding the tutorials helpful. I'll definitely consider doing inventory tutorials in the future! 🙏
Awesome tutorial as always, thank you!
You're welcome! I'm glad you enjoyed it! Thanks for watching and commenting 🙏
You are the best at this
Thank you! I really appreciate your kind words 🙏
Great a video! That's i was looking for.
Thanks! I'm glad you found it useful 🙏
good video. Now I wanna see cube's function "fall to floor"
Thank you for your comment! The "fall to floor" is just a simple timeline that lerps the Z location from it's current value to that value minus 50 😅
Crystal clear 🎉🎉 thank you Ali
You're very welcome! I'm glad it was clear for you 🙏
Man you have to make a course. I will buy it day one.
Thank you for your support! I'm glad you find my content valuable 🙏 It’s something I’ve considered, so I appreciate the encouragement! What kind of course would you like to see?
@@AliElZoheiry a course that teaches concepts is a good idea since most of the courses are focusing on making small simple games. I mean you can have project files for the students to download and you teach us how to build over it. Every lesson focuses in one thing and it has its own files. And project files can be completely different from each other. Your design patterns are a good example.
In the end of the course we don't need to have a full game but a reference for some topics about game dev.
Lets say one video for struts and arrays.
Other one for communication.
Third one for online setup.... etc.
.
Also FPS course is something I will buy since I am interested in the genre.
Thanks for sharing @aloooonee
Thanks for making these - very informative
You're very welcome! I'm glad you found them informative. Thank you for watching and commenting 🙏
Perfect Video like always
Thank you! Glad you liked it 🙏
FINE INFORMATION FROM FRIST SEC
Thank you! I'm glad you found the information useful 🙏
Amazing and thorough tutorial!
You're very welcome! I'm glad you found it thorough and helpful 🙏
Wow ! Learned a ton ! ❤
You're very welcome! I'm glad to hear that you learned a lot. Thank you for watching and commenting! ❤️
Nice video! I have implented my health bar slightly different. Instead of the widget BP binding to the “damage taken” the health component sets the percent value by using the widget ref when the health is updated. I think i might like your approach better
Thank you for sharing your approach! It's always interesting to see different implementations. I'm glad you found the video helpful 🙏
Amazing work ❤
Thank you so much! I appreciate your kind words 🙏
Wonderful video, Ali!!
Thank you John! Always appreciate your support 🙏😊
This is very helpful thank you
You're very welcome! I'm glad you found it helpful 🙏
Thank you for the help
You're very welcome! Glad I could help 🙏
I have a question, what if i also want to have ArmorComponent so, both ArmorComponent and HealthComponent, in that example I don't think Attack component would work, should in that case exist DamageComponent which checks which components exist on the actor and apply first damage to armor and to health later? Or maybe in that case there should also be an interface so we can identify actors that can take damage?
My personal approach is having an interface for damagable actors, and these actors use the actor component to implement the interface functions. That's the approach I took in my video on how to create a damage system, check it out if you're interested
Superb video
Thank you! I'm glad you enjoyed it 🙏
Is there any limit to the number of attached components and would it be a good idea to make each attack/spell a separate component instead of storing all of them inside one?
Also, what are your thoughts on GAS? I'm still torn between using my own components/tags and relying fully on GAS which seems to be becoming an industry standard.
Thanks for amazing video!
Hey, great questions! There isn't a strict limit to the number of attached components, but it's generally a good practice to keep things organized. Meaning things that are related to eachother should be in the same component, so having a single component for each spell won't be a great idea because they will have a lot in common that they'd want to share, so better to keep them close
Regarding GAS, it definitely has its benefits and can provide a robust framework for managing complex systems. If you find it suits your needs, it might be worth exploring further. Thanks for watching and sharing your thoughts! 🙏
That was awesome
Glad you enjoyed it! Thank you for watching and commenting 🙏
Excellent
Thank you! Glad you enjoyed it 🙏
great video, can you make something about multiplayer, how to make it efficient (with good patterns)?
Thank you for your comment! I'm glad you enjoyed the video. I'll definitely consider making a tutorial on multiplayer efficiency and patterns in the future 🙏
The best chanel
Thank you! I appreciate your support 🙏
Any plan for GAS ? it is very complex, learning curve is steep, but it looks super cool. I'm confident that with your skills, anyone would be able to understand and use GAS :)
Hey! Thanks for your comment and suggestion. GAS does have a steep learning curve, I am personally using it in my projects, and discovering new things every day, so once I have a good grasp on it, I'll definitely make tutorials
So how would one spawn/add a component from within an other component? (Something that is easily done with spawning normal actors) > also event dispatchers aren’t mandatory or a go to > you can still use everything as you normally do (custom events etc).
Besides that what’s the real difference-benefit apart from “modularity” (something that you can also do with actors without problems) between using actors (spawning and attaching an actor to an actor) compared to actor components? What’s the overhead difference? And how does this benefit when dealing with replication?
To be more clear, let’s say you spawn a normal hud (main widget) that should be in your Controller > you want it to interact with your health (should be on your character) > you spawn a component in your controller for the hud, but you decide you want that component to spawn your health component and want to attach/add it to your character from there (as far as I know it can’t be done, while with normal actors it wouldn’t be a problem). So you end up with all these components you need to add manually to each actor you want to use them on…….
Hey! Great questions. Spawn components from within other components is a bit different than spawning actors, but you can still do it using the "Add Component" node in blueprints. As for the differences, actor components are generally more lightweight and can lead to better organization of your code into reusable modules. They're designed for specific behaviors and can be replicated more easily, which is beneficial in many scenarios. However, if you're finding you're just attaching components to actors without needing their specific benefits, sticking with actors might be simpler for your case. Hope this helps clarify a bit! 🙏
Amazing video! I am confused on one thing though. How useful is it to have the player and enemies share an Attacks Component? In your example, the player and enemy were both using the same attacks, but that would almost never happen in a game.
Hey! Thank you for your comment. Sharing an Attacks Component can be useful for maintaining consistent attack logic across different characters, the animations can be very different, but the logic is the same, for example a sword swing is the same whether an enemy or player is doing it
Great tutorial though I am curious that you chose to use Event Dispatchers over interfaces. ED's seem like they are better fit if you have multiple components/actors that need to trigger off an event. But given that your ED's have only one to one triggers wouldnt it be a bit less heavy and less reliant on hard references to use a IFHealthActor and IFHealthWidget interface instead?
Hey, thanks for your comment! To clarify, Event Dispatchers and Interfaces aren't the same thing, and don't achieve the same result.
Most importantly, calling interface functions is a simple "synchronous" call, while event dispatchers offer a way to react "asynchronously" to an event occurring.
So they are fundementaly very different and serve different uses, and they can and should be used together. Checkout my full video on creating a damage system where I use both interfaces and event dispatchers together
Great tutorial, I have a few questions:
Is this example better implemented in single player projects or multiplayer?
What if we have multiple different characters to choose from in a multiplayer game, do these components work across all characters if they have different health or damage types / values?
Will multiple widgets need to be made for each character?
Hey! Thanks for your questions. This pattern is general way to structure your code, it makes no assumption on single player or multiplayer. As long as replication is handled correctly.
you are amazing man I love to watching your videos but ı beg you can you make c++ videos ?
Thank you for your kind words! I appreciate your support 🙏 I’ll consider adding C++ videos in the future. Stay tuned!