Best Way to make a character move

hi im 14 and im making a game not only for making game because its fun but im also teaching a few friends at school so we could make a game together but i want to know is what would be the best way to move a character for example i could ass a rigid body and use

rigidbody.AddForce(transform.forward * speed);

or i could do

transform.Translate( transform.forward * speed);

what i want to know is what is the best way, any of these or is there another way i have not used that is better way to do this

Rigidbodies are realistic. They use physics calculations.

Most first person shooters dont want that. They want you to be able to jump or run in ways that dont comform with physics and they don’t want to deal with physics.

Most flight simulators want you to be bounded by physics.

If your using a generic person you probably want to add a CharacterController component and use

playerobject.CharacterController.move or CharacterController.simplemove

to move.

if you want a plane you want a rigidbody most likely