This turned into a line trace tutorial. We did not come for that. Why spend all that time F ing up a line trace tutorial to teach me how to do C++ interfaces? I just don't get this style of teaching. Just show me intefaces. Thats it thats all. If you want me to watch other videos on how to do line traces I would be happy to do so but not if you are then going to show me how to solve quadratic equations using C++ before you show me how to do line traces.
What's an easy way to interact with something in a generic way that is very common in games? Hint hint, a trace. You can skip from 5:55 to 8:13, about two minutes of setting up boilerplate stuff to be able to perform an interaction to be able to utilize said interface which is the important part. Really as long as you know the language, part 1 and 3 are the only ones id say are needed as part 1 explains everything behind them and the reasoning, part 3 shows unreal specific stuff people are more likely to not be familiar with which is only really useful if you intend to call said interface from blueprint, part 4 is probably completely irrelevant for you as its only blueprint, more so just to complete the series.
@@SneakyKittyGameDev Your response is as complicated as your video for folks who came to get a clear understanding this stuff since the Unreal documentation refuses to do it in over multiple versions. Here is a clue. If I am teaching you how to drive a stick shift in a car and how to drive a car overall for the first time, I am going to FIRST deal with the basics of how to use the pedals. I am going to ease you into learning by just touching the gas, then I am going to let the car roll and show you how ot brake easily. Then I am going to show you how to use a clutch, then shifting while slowly inching the car foward. I am not going to show all that to you at once then at the same time teach you the physics required to speed into a corner with the most momentum, heel toe braking skill and acceleration techniques out of the corner and expect you to comprehend, much less, live after that lesson. Stay on subject with the basic process to show only what is needed to get to the next step and very limited noise combining other topics you yourself are not sharp enough on to complete without mistakes. Clearly, in this video, you yourself made numerous mistakes while trying to teach something already complicated enough that even Unreal can't get it right or clear in their documents after years of time to do so. NEWSFLASH, that's why this video is so popular Einstein. The lack of comments (18) including mine should tell you that over 2000 people came then 99.9% lost interest or did not feel the need to compliment you on it. Why? You layered additioanl complexity that you even failed to demonstrate well in this video. Imagine if you were teaching me to drive where I placed my life in your hands to know the right things to do while driving. Meanwhile, you began to wax philosophically about how to solve world hunger in some complex blathering where you got lost in your own coversation. Meanwhile, I am fumbling away trying to grasp and understand the basics what you are saying while driving a car I have no clue how to operate. OBVIOUSLY, I HAVE to hang on to your every word so I can try to get the basic understanding of what I should be doing to learn instead of your BS ranting. Sounds easy to decipher for the person who already has the knowledge right? Those who don't, do NOT need the extra advanced lesson on top of the basic understanding they came to learn from you. If you read this far then congrats. There is hope for you. I did this on purpose so you could see my point. I rambled on and on about BS driving lesson topics on purpose so you could see my point. You are probably as frustrated as I am right now after reading all that dribble when all I could have said is this. You could have set up a basic 1+1 = 2 method/function within a very basic looking class to romove the noise for those who either haven't or not in the mood to be retought (incorrectly and with many mistakes) how to program line traces. Afterwards, you could have showed the basic means of how one seperate class or module could benefit from using that basic function in the originating class using interfaces. You could have ACTUALLY showed us an alternative means of using class inheritance using interfaces vs. setting up an interface and overriding the function only to launch the call for that same class overrride within the same originating class that houses the overrride function. Kind of defeats the purpose dont you think? You could have done another follow up vdieo where you showed us an alternative to multiple inheritance using interfaces instead of the normal subclass options. Maybe you did show that. Problem is, me and possibly 2000+ other people minus the 18 or so that got it, didnt get it.
Wouldnt be a bad idea if I came through and redid some of these. You have a good point in your initial post, just have boiler plate stuff already done. My fear was given my tutorials are beginner focused that they might not be able to follow along since a lot require hand holding
@@SneakyKittyGameDev Precisely my point. If your target is focused on beginners then they do not need any additional noise in the form of other subjects while they are already here to learn one THEY think is already complicated. They just want to learn how do do that thing without you adding other things. Keep it as simple as you can. If you have to tell me that 1+1 = 2 on the way to showing me how to do calculus then fine. Add that simplicty in to make your larger point. But don't start in teaching me derivatives then start solving a trigonometry problem in the middle of all that because it feels or looks cool. That SH only impresses the folks who dont need your video in the first place. Matter of fact, no matter how advanced you teach a problem, STICK to that problem space and keep everyting else rudimentary. 1+1 = 2 should be the go to for all your vids where a larger more complex problem is being taught to newbies.
These are great. I think you've done a great job breaking it into reasonable steps instead of just showcasing "the solution". Gives a much better sense of what the benefits of a proper solution is. And as so often happens during production where you can do quicker hacks to test concepts quick.
Im stuck. I Don't need to use a line trace, I just want to call all functions that use this interface no matter where they are, how do I do that? Im not using a line trace. HELP
You still need to cast to the type to be able to call the virtual function in the vtable. C++ casting is different from blueprint casting, drastically faster
@@SneakyKittyGameDev yeah I have..I am unity developer and begining with ue and its a lot of things witch i dont know how to do in ue ..I can write if you want..Would be great for other unity dev also
Great video! I'm such a pedantic nerd, so apologies, but really you are "implementing" and Interface, not "inheriting", even though it does seem like it. If an interface is on a class, you are basically telling the developer that you don't care what they do, but they have to implement it because the game will expect it. Interaction is a _great_ example to chose, because it's possible to have lots of different behaviors based on the object you interact with. The best part about using Interfaces (beyond making things easier to test) is it greatly reduces spaghetti code because you don't need to design base classes that need lots of conditional logic to account for anything that derives from it, instead shifting that responsibility to the concrete classes. Another added benefit is it can make you classes blissfully ignorant to how other classes work. Again, your example is perfect, your Third Party Actor doesn't really give a crap about how Box That Goes Up implements it's the interface, it just casts the entire class to the interface and calls the function/method and if it does something, great, if it doesn't, who cares, but what matters is nothing breaks because your TP Actor is ignorant to the implementation. So Developer A can code the TP Actor while Developers B, C and D can code up all sorts of items in the world and not step on each other's toes.
You can go pretty far without intensive math depending on what your doing. I struggle with math and probably am at a freshman highschool level with it lol. It is important as I do often get stuck where math would be a great thing to know especially with shaders
Hey Gow, although you don't really NEED any math it will make your life much MUCH easier while learning to develop 3d games. I would suggest Algebra, Geometry, and Trigonometry as a base. Let me know if you would like my advice on how to go about learning.
@@Gren17 So far I've seen only Geometry, and trigonometry in game development. I do know in 3D rendering you would have to know how linear algebra works to understand matrices.
@@gow9476 Correct LA will definitely help, but I would recommend basic algebra before tackling linear algebra. If you learn basic algebra, geo, and trig (assuming you haven't) then you'll have a great foundation. If you are consistent in studying these three you'll be surprised how quickly you become proficient (I was), and will have a much easier time jumping into more complex areas like Linear Algebra, Calculus, Discrete Math etc. depending on where you would like to go with gamedev.
This turned into a line trace tutorial. We did not come for that. Why spend all that time F ing up a line trace tutorial to teach me how to do C++ interfaces? I just don't get this style of teaching. Just show me intefaces. Thats it thats all. If you want me to watch other videos on how to do line traces I would be happy to do so but not if you are then going to show me how to solve quadratic equations using C++ before you show me how to do line traces.
What's an easy way to interact with something in a generic way that is very common in games? Hint hint, a trace. You can skip from 5:55 to 8:13, about two minutes of setting up boilerplate stuff to be able to perform an interaction to be able to utilize said interface which is the important part. Really as long as you know the language, part 1 and 3 are the only ones id say are needed as part 1 explains everything behind them and the reasoning, part 3 shows unreal specific stuff people are more likely to not be familiar with which is only really useful if you intend to call said interface from blueprint, part 4 is probably completely irrelevant for you as its only blueprint, more so just to complete the series.
@@SneakyKittyGameDev Your response is as complicated as your video for folks who came to get a clear understanding this stuff since the Unreal documentation refuses to do it in over multiple versions. Here is a clue. If I am teaching you how to drive a stick shift in a car and how to drive a car overall for the first time, I am going to FIRST deal with the basics of how to use the pedals. I am going to ease you into learning by just touching the gas, then I am going to let the car roll and show you how ot brake easily. Then I am going to show you how to use a clutch, then shifting while slowly inching the car foward. I am not going to show all that to you at once then at the same time teach you the physics required to speed into a corner with the most momentum, heel toe braking skill and acceleration techniques out of the corner and expect you to comprehend, much less, live after that lesson.
Stay on subject with the basic process to show only what is needed to get to the next step and very limited noise combining other topics you yourself are not sharp enough on to complete without mistakes. Clearly, in this video, you yourself made numerous mistakes while trying to teach something already complicated enough that even Unreal can't get it right or clear in their documents after years of time to do so. NEWSFLASH, that's why this video is so popular Einstein. The lack of comments (18) including mine should tell you that over 2000 people came then 99.9% lost interest or did not feel the need to compliment you on it. Why? You layered additioanl complexity that you even failed to demonstrate well in this video. Imagine if you were teaching me to drive where I placed my life in your hands to know the right things to do while driving. Meanwhile, you began to wax philosophically about how to solve world hunger in some complex blathering where you got lost in your own coversation. Meanwhile, I am fumbling away trying to grasp and understand the basics what you are saying while driving a car I have no clue how to operate. OBVIOUSLY, I HAVE to hang on to your every word so I can try to get the basic understanding of what I should be doing to learn instead of your BS ranting. Sounds easy to decipher for the person who already has the knowledge right? Those who don't, do NOT need the extra advanced lesson on top of the basic understanding they came to learn from you.
If you read this far then congrats. There is hope for you. I did this on purpose so you could see my point. I rambled on and on about BS driving lesson topics on purpose so you could see my point. You are probably as frustrated as I am right now after reading all that dribble when all I could have said is this. You could have set up a basic 1+1 = 2 method/function within a very basic looking class to romove the noise for those who either haven't or not in the mood to be retought (incorrectly and with many mistakes) how to program line traces. Afterwards, you could have showed the basic means of how one seperate class or module could benefit from using that basic function in the originating class using interfaces. You could have ACTUALLY showed us an alternative means of using class inheritance using interfaces vs. setting up an interface and overriding the function only to launch the call for that same class overrride within the same originating class that houses the overrride function. Kind of defeats the purpose dont you think? You could have done another follow up vdieo where you showed us an alternative to multiple inheritance using interfaces instead of the normal subclass options.
Maybe you did show that. Problem is, me and possibly 2000+ other people minus the 18 or so that got it, didnt get it.
Wouldnt be a bad idea if I came through and redid some of these. You have a good point in your initial post, just have boiler plate stuff already done. My fear was given my tutorials are beginner focused that they might not be able to follow along since a lot require hand holding
@@SneakyKittyGameDev example -> watch?v=18yoUybI0TU&t=342s Look at the entire part 1 - 3. Very good. Learning from it now and very very basic.
@@SneakyKittyGameDev Precisely my point. If your target is focused on beginners then they do not need any additional noise in the form of other subjects while they are already here to learn one THEY think is already complicated. They just want to learn how do do that thing without you adding other things. Keep it as simple as you can. If you have to tell me that 1+1 = 2 on the way to showing me how to do calculus then fine. Add that simplicty in to make your larger point. But don't start in teaching me derivatives then start solving a trigonometry problem in the middle of all that because it feels or looks cool. That SH only impresses the folks who dont need your video in the first place. Matter of fact, no matter how advanced you teach a problem, STICK to that problem space and keep everyting else rudimentary. 1+1 = 2 should be the go to for all your vids where a larger more complex problem is being taught to newbies.
These are great. I think you've done a great job breaking it into reasonable steps instead of just showcasing "the solution". Gives a much better sense of what the benefits of a proper solution is. And as so often happens during production where you can do quicker hacks to test concepts quick.
You saved me with: "...and I'm just gonna wrap the end with brackets so that way it will compile." Awesome job, keep it up!
Im stuck. I Don't need to use a line trace, I just want to call all functions that use this interface no matter where they are, how do I do that? Im not using a line trace. HELP
Why is the need to still Cast while using the interface. I thought because we are using interface is why we should not have a need to Cast?
You still need to cast to the type to be able to call the virtual function in the vtable. C++ casting is different from blueprint casting, drastically faster
As Nas said: You're da Man
Yummy ! Hey ya man !
Outro message, "Meow."
great video style..short and very usefull..would be great make a gist for this types
Got any suggestions for future topics?
@@SneakyKittyGameDev yeah I have..I am unity developer and begining with ue and its a lot of things witch i dont know how to do in ue ..I can write if you want..Would be great for other unity dev also
@@quadriproduction Go for it
@@SneakyKittyGameDev Ok thank you. I make a list of topic which I think would be great (and not are on net) for people which migrate to ue
Great video! I'm such a pedantic nerd, so apologies, but really you are "implementing" and Interface, not "inheriting", even though it does seem like it. If an interface is on a class, you are basically telling the developer that you don't care what they do, but they have to implement it because the game will expect it.
Interaction is a _great_ example to chose, because it's possible to have lots of different behaviors based on the object you interact with. The best part about using Interfaces (beyond making things easier to test) is it greatly reduces spaghetti code because you don't need to design base classes that need lots of conditional logic to account for anything that derives from it, instead shifting that responsibility to the concrete classes.
Another added benefit is it can make you classes blissfully ignorant to how other classes work. Again, your example is perfect, your Third Party Actor doesn't really give a crap about how Box That Goes Up implements it's the interface, it just casts the entire class to the interface and calls the function/method and if it does something, great, if it doesn't, who cares, but what matters is nothing breaks because your TP Actor is ignorant to the implementation. So Developer A can code the TP Actor while Developers B, C and D can code up all sorts of items in the world and not step on each other's toes.
So im trying to learn game dev. May I ask for your opinion on what math do I "really" need for making 3D games.
You can go pretty far without intensive math depending on what your doing. I struggle with math and probably am at a freshman highschool level with it lol. It is important as I do often get stuck where math would be a great thing to know especially with shaders
Hey Gow, although you don't really NEED any math it will make your life much MUCH easier while learning to develop 3d games. I would suggest Algebra, Geometry, and Trigonometry as a base. Let me know if you would like my advice on how to go about learning.
@@Gren17 So far I've seen only Geometry, and trigonometry in game development. I do know in 3D rendering you would have to know how linear algebra works to understand matrices.
@@gow9476 Correct LA will definitely help, but I would recommend basic algebra before tackling linear algebra. If you learn basic algebra, geo, and trig (assuming you haven't) then you'll have a great foundation. If you are consistent in studying these three you'll be surprised how quickly you become proficient (I was), and will have a much easier time jumping into more complex areas like Linear Algebra, Calculus, Discrete Math etc. depending on where you would like to go with gamedev.