Simplest file in the source code?

Hello everyone!

I started C++ programming in 2017 and I’ve been doing things in the engine for a lot of time. Not very big things, though. Anyway, after just compiling the source code, I decided to take a look at it and I see all files have a lot of included libraries and I don’t really know what’s what with all these.

My question is: Which file might be the simplest in the source code so I can take a look at it and move on to more complicated files?

It depends what is “complicated file” for you.

I started reading source code not based on some difficulty, but based on relevance.
there is a lot of code irrelevant for learning the engine or for building games, consisting of complicated files or not doesn’t matter, because it’s irrelevant…

Therefore what you want is to start study most commonly used classes, such as:

  1. UObject
  2. AActor
  3. UComponent

etc…

Step one is to study about these classes from online documentaion first, and also by completing online tutorials covering these classes.
then once you have an overview what these classes are, start reading source code line by line, try to understand out of the code as much as possible.
google out everything you do not understand in the code.

Second approach is to give yourself a topic on what you want to learn.
for example:

  1. How does UBT work? read documentation and source code related to UBT until you completely understand as much details.
  2. How does reflection works? read documentation and source code related to reflection until you completely understand as much details.

etc…

the third approach is useful if you do not have the capacity to “parse” the code into your head.
Watch online programming videos on youtube, there are plenty of videos for UE.
Google out some good sites for tutorials and start not just completing them, but also learning details of every symbol from tutorial you find.

that is the golden rule, don’ miss any details from anything you learn (tuts, videos, code, samples…). you want to know details, details, details… because overall or practical understanding is not the way to go details are.

of course it only applies to relevant code, (ie. not low level engine code which you will use in very extreme cases only)