Como se poderia implementar uma câmera FPS?

Então, atualmente estou trabalhando em alguns programas de jogos FPS em OpenGL (JOGL, mais especificamente) apenas por diversão e eu queria saber qual seria a maneira recomendada de criar uma câmera tipo FPS?

No momento, eu basicamente tenho um vetor para a direção que o jogador está enfrentando, que será adicionado à posição atual do jogador ao pressionar a tecla "w" ou para frente. O negativo desse vetor é, obviamente, usado para a tecla "s" ou para trás. Para "a", esquerda e "d", certo eu uso o normal do vetor de direção. (Estou ciente de que isso deixaria o jogador voar, mas isso não é um problema no momento)

Ao mover o mouse, o vetor de direção será girado usando trigonometria e matrizes. Todos os vetores são, naturalmente, normalizados para fácil controle de velocidade.

É este o caminho comum e / ou bom ou existe uma maneira mais fácil / melhor?

questionAnswers(3)

yourAnswerToTheQuestion