¿Cómo se implementaría una cámara FPS?

Entonces, actualmente estoy trabajando en alguna programación de juegos FPS en OpenGL (JOGL, más específicamente) solo por diversión y quería saber cuál sería la forma recomendada de crear una cámara como la de un FPS.

En este momento, básicamente tengo un vector para la dirección hacia la que se enfrenta el jugador, que se agregará a la posición actual del jugador al presionar la tecla "w" o la tecla de avance. El negativo de ese vector se usa, por supuesto, para la "s" o la tecla de retroceso. Para "a", a la izquierda y "d", a la derecha, uso la normal del vector de dirección. (Soy consciente de que esto dejaría volar al jugador, pero eso no es un problema en este momento)

Al mover el mouse, el vector de dirección se rotará utilizando trigonometría y matrices. Todos los vectores están, por supuesto, normalizados para un fácil control de la velocidad.

¿Es esta la manera común y / o buena o hay una manera más fácil / mejor?

Respuestas a la pregunta(3)

Su respuesta a la pregunta