Hi guys. No doubt you’re pretty busy at the moment with 4.7 and GDC coming up, but I thought I’d put this out there.
I can’t help but feel the C++ support side of UE4 needs some love. Clearly the documentation is a major issue that needs addressing, but I understand this is in the works and fingers crossed a big update isn’t too far away. But the vast majority of training streams and tutorials are also aimed at blueprints, animation, content creation and a host of other things.
Of course we have the forums and answer hub, but the fact is at the moment (on the programming side in particular) there are just a huge number of people with questions and very few with enough experience and time to be able to help. While it’s awesome that Epic are continually expanding the engine with cool new features, there is obviously a point at which the focus needs to shift to educating the community on how to use what we’ve already got (which is a lot). I think a concerted push in this respect could help bring a number of developers up to a level of understanding where they’re more confident in being able to give answers to others’ questions, and so would feed back into the community making the forum and answer hub even more effective support tools.
So anyway, my suggestion/request for now would be a twitch support stream or two on UE4 C++. Of course that’s a pretty vague subject (which is perhaps one reason why it hasn’t received much attention) so I was thinking a Q&A session would be ideal. People could post up some general topics they’d like covered in advance, and then ask any specific questions during the stream.
Any chance of this or something similar? Thanks for reading.
I second this!
Would be cool to have some actual explanations on the whens and whys of c++ explicit terminology for UE4. I mean the differences with plain c++. Some streamings or video tutorials on the proper usage of this, instead of just copy/pasting some already written code without explanation of what does what, to unleash the full potential of UE4 would be extremely cool and useful
There no diffrence between UE4 C++ and C++, it’s still normal C++, there few thigns that makes it look diffrent thru:
-UE4 have it’s own standard libraries to ensure portability, you not using any C++ stabdard libraries, but you can use them if you find it needed (but should be avoided if possible) or when you use external libraries. Using UE4 standard libraries guaranties that will work everywhere UE4 works (by that i mean “if not it needs to be fixed”)
-UE4 use it’s own build system called UnrealBuildTool, which manage what and how files are compiled, it ignores VS settings complitly (only VS compiler is needed, you don’t even need VS project files) and use it’s own build scripts (wrttien in C#), thats why it little harder to include external libraries, or else linker throws errors
-The macros UFUNCTION, UPROPETIES etc. are just dummy macros, if you search in header files they add nothing to the code. They function as a markers for other tool called UnrealHeaderTool (UHT) which generates extra header files (ones that you have included with “.generated” in name), they generated for reflection system. Reflection system is system that makes engine aware of properties and functions existence, because machine code that C++ is compiled to does not know concept of functions or variables, for it just addresses in memoery. UHT gether code structure information about classes, functions and varables add it to the code, which later can be used in variurs advance engine features, like garbage collection, blueprint system etc.
-Talking about garbage collection, UE4 has it own ofcorse, thats why you never use “new” or “delete” and care about memory management because UE4 does that for you
Wow, thank you very much for your complete explanation Shadowriver ^^
And that’s the kind of things i was reffering to when talking about more video-tuts on c++. There’s no explanation to his (like the one you did) in the epic’s video tutorials on c++.
So i still think this would be a cool theme to cover in streamins or video tutorials.
Ps. Shadowriver i noticed about you signature link and i think that tutorial will help me get the concepts right am i right? thanks for that
Michael, unfortunately I missed your Extending the Editor live stream and so the chance to ask questions, however it was excellent. I hope you get chance to do another stream before too long.
Just to clarify, my suggestion was not so much relating to the C++ language, but understanding and using the engine framework and classes. A few examples of areas that could do with some explanation, off the top of my head (all UE4 specific): Interfaces, Smart Pointers, Garbage Collection, Actor and Component initialization procedure. These are the kind of things I’d love some discussion of in a stream.
That tutorial is mainly for newbie blueprint only users that usally not aware that blueprint are classes considering you already using C++ (i think) you should know most things i pointed there, or else you never incorporated blueprint usage in your C++ code then you might find tutorial interesting
All streams you can find on UnrealEngine YouTube chanell or in Twitch archive of UnrealEngine stream
Thanks Shadowriver. Yep I know I can watch previous streams, I have watched this one and it was extremely well done.
However, if you miss the live stream, you also miss the chance to ask specific questions, and it is that opportunity that I think we need more of. Unfortunately there is simply not a high chance of getting questions seen and satisfactorily answered on forums or answer hub at the present time.
@Shadowriver Yeah, i’m already using c++ but still am a newbie in terms of using it completely and for ue4. I’ll watch it :). There are things i can’t understand yet maybe am i too new to this? i don’t know.
But the latest article i read that i couldn’t understand is one i find extremely useful: - Data Driven Gameplay Elements - In the doc page you can read:
But where do i have to create that code? In a normal empty c++ class? an actor one? Or maybe this can’t be done through the “Add code to project…” option?
Ps. Sorry for this kind of off-topic / hijacking the thread @Kamrann. I keep thinking we need those streamings.
Looks like i’m far from knowing c++ in the correct way
I tried what you said @Shadowriver but all i get is:
error C2504: 'FTableRowBase' : base class undefined
I tried a blank .h and .cpp made with notepad++ and saved them in the source folder on my project (public and private respectively). And got that error.
Tried also “Add code to project” with it pointing to “source” folder instead of “intermediate” and same result…
I already tried that before, but looks like my code/project was messed up or something. I made a clean new project, added a new empty class code to the project through the editor and this time everyting worked as expected: No errors, imported the data table csv and retrieved data from it without a problem
Thank you very much @Shadowriver!