Wow - that was longer than I thought it was going to be! If you have _any_ questions, drop a comment and I'll reply to you ASAP. Assets by Kenney: kenney.nl/assets/animated-characters-3 Code Gist here: gist.github.com/DannyJustAPixel/3c4bf51eafa02578d09ba3fd0059c5b8
This is RUclips Gold! Excellent introduction. I just love the high-pace and it's clear that it's coming from a place of experience. I look forward to consume all your videos to come.
as someone with 10 years experience in Unity, and currently using that professionally, i can say it never have been a better time to start learning Unreal. Thanks a lot for this!!
@@DanGoodayleUnreal one thing that concerns me a a lot is the "project architecture" side of things, I am a senior programmer and I wish any unity developer will stop watching the "easy scripting" tutorials on youtube after the first year. because beyond that point, these tutorials are meaningless, nobody cares if you can make a character jump spawn a random object in a radius without having them interlap together and with pre-existing objects. these are "day-to-day" problems that nobody ever, will have an answer to 100% of them, googling stuff during your daily job, even as a senior is more than normal, what is normal is "Singleton for everything" and not understanding which folder structures and code architecture will work correctly for your project. PS: A prototype/game jam type of project also has its own rule which is "everything is a draft and hacks are allowed". Sorry for the long comment :p
@@alaslipknot I couldn't agree more, I'll be going into that in the future videos, this engine can get unruly if you don't have a solid foundation to build on
First of good video, but maybe a bit quick with the code parts. But i am a bit confused on one part: Why are you implementing the input in the Character Class? Isn't that what a Controller Class is supposed to handle? Or am i mistaken in that? As far as i can see that is what the Top-Down-Example Project does. Is there any reason for either version?
Hey there! It's a pattern that I've previously followed (I think it was from 4.1??) - SetupPlayerInputComponent was called on the pawn which you would then bind your inputs on the pawn for things like movement and then you'd bind some other things on the controller itself. Taking a look at the Lyra example (github.com/EpicGames/UnrealEngine/blob/072300df18a94f18077ca20a14224b5d99fee872/Samples/Games/Lyra/Source/LyraGame/Character/LyraHeroComponent.cpp#L375) They've gone a third route, adding a component `ULyraHeroComponent` onto the pawn and then setting up the inputs on that. For the sake of brevity I went with adding the movement inputs directly onto the Pawn vs adding them onto the controller and then routing them down to the pawn. I hope that helps?
@DanGoodayle Thanks for the explanation. So i guess it comes down to more of a personal preference (as in the Starter Project for TopDown Games the movement input is handled in the Controller)? I was just a little confused as to if it actually matters where inputs are handled.
@@joborens9050 you can handle it wherever you think is best. I personally do it on the character. The idea being if there are multiple things to possess, they all implement their own handling of inputs that are activated on possess (and deactivated on unpossession, which I don’t show). Instead of having all the different characters input logics on the controller and then having to check what pawn I’ve possessed at the time.
Personal preference - any core systems to a project I tend to build out in C++, then the more experimental game specific features I’ll prototype out in BP before migrating building blocks to C++ when things solidify
The code errors for me with `#include "InputMappingContext.h"` missing. From a quick google I found that you need to add the "EnchancedInput" to the project's .Build.cs file: PublicDependencyModuleNames.AddRange(new string[] { "EnhancedInput" }); I'd love more of a step by step walkthrough for C++ code in future videos as this is a first exposure for many of us! Thanks for the great video.
@@DanGoodayleUnreal Ah, even after this: The new binding parameters are missing. After reloading the project, Unreal tells me that BP_Character derives from an invalid class. EDIT: I think I clearly just messed up Unreal without having a good understanding of how to rebuild or debug C++ code. After closing the project, deleting the Binaries and Intermediate folders, it successfully compiled and recognised the new character class. Nooo clue how this got messed up! Chalk it down to poor understanding.
@@ianmaclure5902It's possible the live reload of the code caused a new type of class to be created (Usually something prefixed with LIVE_CODING_), then the actor was set to that class, which was then invalidated when you closed the editor so it broke the serialization.. That's pretty rare, but I've certainly seen it before.
You might want to mention how C++ in Unreal will show all kinds of errors and issues if you don't use rider or visual assist or resharper. Unless Visual Studio somehow this got better over the last couple years?
It's gotten significantly better, but I'll touch on that in a later video. I'm trying hard to avoid overwhelming people with all the info right away, but it's important to address 👍
@@DanGoodayleUnreal Most people will come to unreal with visual studio by default. Might want to use it. Last time I tried, it was red squiggles everywhere and I was so confused
@@DanGoodayleUnreal I worked 3 years full time on my unity game. I already put a lot of money in it and unity destroyed it with one decision. I am in the moment of migration to unreal now. I hope i will be able to understand c++ and I hope I will not have to deal with blueprints. Thank you for the tutorial!
Hey Dan, I'm only 14 seconds in but I have some feedback already: Invest in a better audio input setup. Doesn't have to be more than a good microphone, check reviews online. The canny voice filter and fan noise is easily avoidable with little monetary investment. Anyway, I'll watch some more of the video, thank you for making it :) Best regards.
Thanks for the support! Right now I'm in a good place so I'm very happy to do these in my own time, just let me know if there's anything you'd like to see in the future 👍
Wow - that was longer than I thought it was going to be!
If you have _any_ questions, drop a comment and I'll reply to you ASAP.
Assets by Kenney: kenney.nl/assets/animated-characters-3
Code Gist here: gist.github.com/DannyJustAPixel/3c4bf51eafa02578d09ba3fd0059c5b8
This is RUclips Gold! Excellent introduction. I just love the high-pace and it's clear that it's coming from a place of experience. I look forward to consume all your videos to come.
Glad you enjoy it!
as someone with 10 years experience in Unity, and currently using that professionally, i can say it never have been a better time to start learning Unreal.
Thanks a lot for this!!
I hope I can help ease the transition over 🙏
@@DanGoodayleUnreal one thing that concerns me a a lot is the "project architecture" side of things, I am a senior programmer and I wish any unity developer will stop watching the "easy scripting" tutorials on youtube after the first year. because beyond that point, these tutorials are meaningless, nobody cares if you can make a character jump spawn a random object in a radius without having them interlap together and with pre-existing objects. these are "day-to-day" problems that nobody ever, will have an answer to 100% of them, googling stuff during your daily job, even as a senior is more than normal, what is normal is "Singleton for everything" and not understanding which folder structures and code architecture will work correctly for your project.
PS:
A prototype/game jam type of project also has its own rule which is "everything is a draft and hacks are allowed".
Sorry for the long comment :p
@@alaslipknot I couldn't agree more, I'll be going into that in the future videos, this engine can get unruly if you don't have a solid foundation to build on
I will Challange myself to learn Unreal for a year from zero. I think your Tuts will help a lot, thx man.
Super useful! Looking forward to the rest. Thanks!
Thanks!
First of good video, but maybe a bit quick with the code parts.
But i am a bit confused on one part: Why are you implementing the input in the Character Class? Isn't that what a Controller Class is supposed to handle?
Or am i mistaken in that? As far as i can see that is what the Top-Down-Example Project does. Is there any reason for either version?
Hey there!
It's a pattern that I've previously followed (I think it was from 4.1??) - SetupPlayerInputComponent was called on the pawn which you would then bind your inputs on the pawn for things like movement and then you'd bind some other things on the controller itself.
Taking a look at the Lyra example (github.com/EpicGames/UnrealEngine/blob/072300df18a94f18077ca20a14224b5d99fee872/Samples/Games/Lyra/Source/LyraGame/Character/LyraHeroComponent.cpp#L375) They've gone a third route, adding a component `ULyraHeroComponent` onto the pawn and then setting up the inputs on that.
For the sake of brevity I went with adding the movement inputs directly onto the Pawn vs adding them onto the controller and then routing them down to the pawn.
I hope that helps?
@DanGoodayle Thanks for the explanation.
So i guess it comes down to more of a personal preference (as in the Starter Project for TopDown Games the movement input is handled in the Controller)?
I was just a little confused as to if it actually matters where inputs are handled.
@@joborens9050 you can handle it wherever you think is best. I personally do it on the character. The idea being if there are multiple things to possess, they all implement their own handling of inputs that are activated on possess (and deactivated on unpossession, which I don’t show). Instead of having all the different characters input logics on the controller and then having to check what pawn I’ve possessed at the time.
This is really useful, thank you.
One question, why create a custom C++ class over directly using blueprints?
Personal preference - any core systems to a project I tend to build out in C++, then the more experimental game specific features I’ll prototype out in BP before migrating building blocks to C++ when things solidify
Thank you for the answer, @@DanGoodayleUnreal
Thanks so much! Looking forward to more videos!
More to come! Hope it helps 👍
The code errors for me with `#include "InputMappingContext.h"` missing. From a quick google I found that you need to add the "EnchancedInput" to the project's .Build.cs file:
PublicDependencyModuleNames.AddRange(new string[] { "EnhancedInput" });
I'd love more of a step by step walkthrough for C++ code in future videos as this is a first exposure for many of us! Thanks for the great video.
Great shout! I'll add that to the gist, I'll be digging more into the code next video
@@DanGoodayleUnreal Ah, even after this: The new binding parameters are missing. After reloading the project, Unreal tells me that BP_Character derives from an invalid class.
EDIT: I think I clearly just messed up Unreal without having a good understanding of how to rebuild or debug C++ code. After closing the project, deleting the Binaries and Intermediate folders, it successfully compiled and recognised the new character class. Nooo clue how this got messed up! Chalk it down to poor understanding.
Ping me the errors and I'll help 👍 you're also getting a shout out in the next video 😄
@@ianmaclure5902It's possible the live reload of the code caused a new type of class to be created (Usually something prefixed with LIVE_CODING_), then the actor was set to that class, which was then invalidated when you closed the editor so it broke the serialization..
That's pretty rare, but I've certainly seen it before.
You might want to mention how C++ in Unreal will show all kinds of errors and issues if you don't use rider or visual assist or resharper. Unless Visual Studio somehow this got better over the last couple years?
It's gotten significantly better, but I'll touch on that in a later video.
I'm trying hard to avoid overwhelming people with all the info right away, but it's important to address 👍
@@DanGoodayleUnreal Most people will come to unreal with visual studio by default. Might want to use it. Last time I tried, it was red squiggles everywhere and I was so confused
We need ASAP tons of tutorials for the flood of unity c# developers that are migrating from unity to unreal.
I gotcha covered! Been a Unity dev for 10 years before switching almost 4 years ago, I know the struggle :D
@@DanGoodayleUnreal I worked 3 years full time on my unity game. I already put a lot of money in it and unity destroyed it with one decision. I am in the moment of migration to unreal now. I hope i will be able to understand c++ and I hope I will not have to deal with blueprints. Thank you for the tutorial!
Thanks for the tutorial. What Wallpaper do you use ?
www.jpl.nasa.gov/infographics/an-orbit-map-of-the-solar-system
Solar System map!
Thx @@DanGoodayleUnreal
Hey Dan, I'm only 14 seconds in but I have some feedback already: Invest in a better audio input setup. Doesn't have to be more than a good microphone, check reviews online. The canny voice filter and fan noise is easily avoidable with little monetary investment.
Anyway, I'll watch some more of the video, thank you for making it :) Best regards.
I thought the same! So I've actually just ordered some in, thanks for the confirmation it was the right idea though 👍
@@DanGoodayleUnreal I'm sure you will be happy for it!
@@NoHighHighlight the newest video I ended up using a lapel microphone I had from a while ago, removed a lot of that echo and computer noise 👍
Thank you so much for doing this!
No problem 😊
I would like to support you for making these videoes.
Thanks for the support! Right now I'm in a good place so I'm very happy to do these in my own time, just let me know if there's anything you'd like to see in the future 👍