Unreal Engine 4 C++ Tutorial Series For Beginners

Beginner C++ with Unreal Engine 4](null - YouTube)The series has been completely redone, I was not satisfied with the audio quality nor the picture quality.

I will be uploading consistently as I can from now on.
I will be going over the entire C++ language as well as a second series going over a built from scratch real world example going over the why and how.

Beginning C++ with Unreal Engine 4 - Community Videos Wiki Page

Entire Playlist
Video One : Entry Point
Video Two : Directives
Video Three : Basic Classes and Object Oriented Programming
Video Four : Naming Conventions and Common Data Types
Video Five : Basic Methods and Functions
Video Six : Parameters and Proper Function/Method Comments
Video Seven : Output Log
Video Eight : Pointers
Video Nine : Structures, Multiple Returns, and Passing by Reference
Video Ten : Recursive Functions

Enjoy <3

Awesome! Thanks for the tutorial. This will really help people out. I’m liking the UE4 community. :cool:

Love it, look forward to more.

This is great! Looking forward to this!

Looking forward to this series I’ve followed your iron projects and really appreciate you taking the time to build this content for the community.

Side note…I googled iron corgi to find your forum post and found lots of pictures of corgi’s in iron man’s armor. I’m hoping this was the inspiration behind your project name.

I just wanted to update anyone following the thread or my channel. My brother was killed yesterday in a trucking accident on the Ohio turnpike. I’m not sure when ill be mentally able to handle creating the content. I will try my damnedest to get a few done when i can. I know my brother would have wanted me to continue creating these tutorials, as he himself was looking forward to them, but i am devastated.

I hope you all understand my situation and i promise these tutorials will be created in a somewhat timely manner.

Much love. Be safe, and be awesome.
~rob

I don’t think any sane individual would begrudge you for it. I’m so incredibly sorry to hear about your loss. Take as much time as you need to recover physically and mentally. We’ll still be here when you get back.

My thoughts and condolences are with you and your family.

My deepest condolences for you and your family, also from the rest of the community! I know how you feel so please step back and do everything that is needed to feel better.

We all can wait for such unimportant things like a tutorial. Don’t think about others now. Take your time and if you really feel better you can still go on with all that stuff.

Don’t be down in the mouth! Keep moving ahead. I guess your brother would want that to!

Gonna quote you and Chance here: Stay awesome! Our heart goes out to you.

I’m so sorry for your loss. May he rest in peace.

My condolences to you and your family. Take time with yourself and your family. When you are ready to return, you’ll know it and we will still be here.

Thats to bad, sorry to hear. If this was the accident in Streetsboro I seen it on the news. Im about 25 minutes away. Time heals. Take care.

Saxon,

I’m not going to lie I’m thoroughly looking forward to these.

But more importantly, take all the time you need. Our thoughts are with you and your family.

hey Saxon, sorry for the loss man i lost my older sister a a couple of years ago all i can say is take your time and the the community and i will keep you and the family in our thoughts and prayers!

I love the direction you’re taking with these tutorials. This is exactly what I need to really get the hang of C++ and break away from dependency on feature-specific tutorials.

I will patiently await the continuation. My best to you and your family.

Please accept my deepest condolences.
Please get better.

HI , Noticed that you uploaded the Part2 on your youtube page. Thank you for the videos and my best to you and your family.

https://www.youtube.com/watch?v=FvejecktyvE

So sorry to hear that!

You’re doing a great thing for the community! It’s much appreciated!

Oh my, such kind people and words! Thank you all for everything <3 These past days have been rough but I’m feeling up to make some content! Thank you again for everything all. I feel really blessed to have such amazing people around me.

:slight_smile: I started uploading some of the videos I had laying around. They might not be the best produced but im trying to figure out what works for the community and what works for me and trying to get a good mix. Currently I’m just recording a straight shot without writing anything and it works for the most part but i am noticing how unprofessional they feel. Although it feels much more natural for me to do it this way, I might need to actually write and produce a script before hand. Please let me know how these are turning out and if you have any ideas, question, comments please feel free to tell me. <3 I’m always open to change.

I’m sorry for your loss!

Thank you making these videos. I only noticed two issues:

  1. Why is your recording lagging? Are your computer specs bad or is it the recording software?

  2. In your “Video # 3 : Variables Functions Parameters Returns” video you assigned default values to your variables in the .h file. Why not do that in the constructor? What’s the idea behind that?

You’re welcome :slight_smile: <3

  1. I’m fairly certain its the shortcomings of CamStudio. If you know a better screen recording software that is completely free, i’d love to use it. My PC specs are quite good, especially for what i do at my day job. Although probably not as good as most of the people’s pc specs in the community.

  2. Hey great catch :slight_smile: ! This is the kind of feedback I like allot ! Also you may have noticed that i did not compile that code. It would have complied just fine and worked, and I actually for me personally i really like to see variables initialized in the header, because you know for sure they are initialized … but it is indeed bad practice to go against the coding standard of Epic Games. In general it is good practice to try and keep our definition separate from the deceleration. This is something I will try and cover in future videos. thanks allot, feedback like this is super helpful :slight_smile: <3

MyActor.h



#pragma once

#include "GameFramework/Actor.h"
#include "MyActor.generated.h"

DECLARE_LOG_CATEGORY_EXTERN(MyLog, Log, All);

UCLASS()
class DEFDEC_API AMyActor : public AActor
{
    GENERATED_BODY()
    
public:    
    AMyActor();

    virtual void BeginPlay() override;
    
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Default")
        int32 MyInt32 = 1;

    UFUNCTION(BlueprintCallable, Category = "Default")
        void MyFunction(int32 MyParam);
};


MyActor.cpp



#include "DefDec.h"
#include "MyActor.h"

DEFINE_LOG_CATEGORY(MyLog);

AMyActor::AMyActor()
{
    PrimaryActorTick.bCanEverTick = false;
}

void AMyActor::BeginPlay()
{
    Super::BeginPlay();
    
    MyFunction(MyInt32);
}

void AMyActor::MyFunction(int32 MyParam)
{
    UE_LOG(MyLog, Warning, TEXT("MyInt32 is %d"), MyParam);
}


That code above works exactly the same as below

MyActor2.h


#pragma once

#include "GameFramework/Actor.h"
#include "MyActor2.generated.h"

DECLARE_LOG_CATEGORY_EXTERN(MyLog2, Log, All);

UCLASS()
class DEFDEC_API AMyActor2 : public AActor
{
    GENERATED_BODY()

public:
    // Sets default values for this actor's properties
    AMyActor2();

    // Called when the game starts or when spawned
    virtual void BeginPlay() override;

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Default")
        int32 MyInt32;

    UFUNCTION(BlueprintCallable, Category = "Default")
        void MyFunction(int32 MyParam);
};


MyActor2.cpp



#include "DefDec.h"
#include "MyActor2.h"

DEFINE_LOG_CATEGORY(MyLog2);

AMyActor2::AMyActor2()
    : MyInt32(1)
{
    PrimaryActorTick.bCanEverTick = false;
}

void AMyActor2::BeginPlay()
{
    Super::BeginPlay();
    MyFunction(MyInt32);
}

void AMyActor2::MyFunction(int32 MyParam)
{
    UE_LOG(MyLog2, Warning, TEXT("MyInt32 is %d"), MyParam);
}


There is no difference as far as i can tell from the compiled assembly. Who knows maybe there is ? I couldn’t find anything saying either is better than the other outside of personal preference.