I won’t get into the other things, but I can explain the Tick(float DeltaTime)…
In setups like Unreal, Unity, etc, most code does not run “continuously”. In the BullCowGame, you’ll recall that the code ran in a loop, over and over again. Nothing interrupted that code, it just ran and ran. For a small console program, this is not a problem, but for a game, it’s a huge problem. If one method just sits and runs over and over and over again like BullCowGame, nothing else would happen in the game.
So the solution is that execution is divided up amongst all the objects in the game. Everybody gets a turn, round robin, to do their thing. If you look at your World Object tree, imagine that each object in that list gets a “Tick”… Like a bowling game… every player gets a turn, one after another. Once every object has had a turn, this is a Frame (just like Bowling). Then we give every player a turn again.
That’s where Tick(float DeltaTime) comes in. Every frame, Tick is called. If you have some action you want to happen over time (you might, want to adjust your course, move that chair you’re holding, aim that turret, etc), Tick is the opportunity to do it, but you don’t want to make the whole move, you just want to do as much of that action as you would do in the amount of time since the last time Tick was called.
That’s what DeltaTime is for. DeltaTime says “Since the last Tick, DeltaTime seconds have occurred.” You can use DeltaTime to adjust how far something moves this frame… if, for some reason the code ran very slowly last frame, you can move the barrel faster this frame to keep it looking like it ran smoothly… if the frame was particularly short, you move the barrel less.
Usually, you’ll see something like myMoveVector * DeltaTime… if you calculate myMoveVector to be how far an object should move in a second, then multiplying it by DeltaTime will be exactly equal to how far it should have moved since the last Tick.
Then, as quickly as possible, your Tick returns, giving the next object in the chain a turn, till the next frame when the cycle starts again.