Creating character on C++ from scratch

I did research for lots and lots of sources to find out how to program a character from scratch. Most tutorials just pull a character class, assign controls and use as it is giving no clue what’s inside of this class.
From my clueless perspective it looks like basic controls consists of collision check, input check, current state check and animation.
UE4 checks if spacebar is pressed(input check) and if it is, jump bool is set to true and actor increases it’s Z coodrinate with some velocity and at some desired point it’s decreased. When collision with ground happened (collision check), jump bool is set to false. If jump is true(current state check) jump can’t be performed. Also, after jump bool is set to true, jump animation should be played.
That is just how I see it, can someone describe or provide some material to learn how it actually works? I really want to make my own character class.

You don’t really make a character “from scrach”. What you want to do is make your own class and extend the ACharacter class. The ACharacter class already has, as you said, predefined functionality for movement, collision, etc. Within your new Character class you can now define custom functions, variables, etc.

Just to chime in a bit. You aren’t forced to only extend the ACharacter class. You may also extend from APawn if you want to make your character without the built in mesh, collision, and movement logic.

Check out the documentation for these classes to see how they work.There’s also documentation on learning what a Pawn is just to get you started.