First, glOrtho and glFrustum are core OpenGl calls. gluPerspective is a GL-Utility function generating a glFrustum call from a simpler description of field-of-view and aspect ratio values.
In a first person shooter you won’t use glOrtho for the player’s view. That would look totally unreal. But it’s used for maps and onscreen head-up displays
For the perspective, you’ll set this up for two cases only:
Once for the basic view of the player (field-of-view setting and screen aspect ratio) and whenever you would zoom-in to something like with a sniper scope.
Everything else needs to be done with the modelview matrix!
OpenGL has no notion of a “camera matrix” or world coordinate system.
The transformation after the modelview (i.e. model-to-view) coordinate transformation has been applied your eye is in the origin of that coordinate system (alas that’s called eye-coordinate system).
To move your player forward you just transform the whole world in the opposite direction. Same for rotation of your player rotates to the left, just rotate the whole world to the right.
The only thing you need to consider for that is that the model- and eye-coordinates are right handed in OpenGL Moving the player forward means moving the world in +z-axis direction and so on…