Procedual World Generation

Hi, I am going to develop a survival/simulation game.
There I have a Universe which contains Galaxies and Planets. As a player you should be able to travel between different planets, but this is an other topic.
At the beginning you will live at one of this planets. So, one planet would be one Map, one Level. This level should be different when It get’s generated new. An example for this would be Minecraft.
At the moment I haven’t any C++ experience, but the blueprint scripting is no option for me because in my eyes there is no really structure in there, so I would prefere to programm it.
I’ve found a tutorial on youtube from UnrealEngine, but they didn’t explain anything why they are doing there stuff like they do (e.g. They don’t explain the ground why I need to integers called MaxX and MaxY and what the tilesize will do) - So i have no idea where to start.
My first ambition is to generate a plain with a maxSize is set. I’ve uploaded a little image where you can see what the world-size should be.
The first step should be to generate a simple plain, so I would do this first… How can I do this with C++? In the Tutorial of Blueprint-Scripting they say something from integer values called maxX, maxY and TileSize.
But actual I have no plan how to realize it. I’ve created a new C++ class in Unreal Editor, called It WorldGenerater.
Now I would add some variables to the class. Therefor I’ve written in worldgenerater.h:

class UNIVERSEEVOLUTION_API Aworldgenerater : public AActor

    // Sets default values for this actor's properties

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

    // Called every frame
    virtual void Tick(float DeltaTime) override;
    int maxX;
    int maxY;

The variables maxX and maxY should be 12.000 by default, or? The code to generate a world have to be written into the file worldgenerater.cpp into the method

void Aworldgenerater::BeginPlay()

In the tutorial they have used a instanced static mesh. Like in Java I would create a new instance of this:

InstancedStaticMesh floor = new InstancedStaticMesh(parameters)

But C++ isn’t Java - I don’t find the correct name of the class, which I have to use. But because I haven’t really much experience: Is this the right way to generate a procedual generated world?