No, esta es la forma incorrecta de hacerlo.
¿Cómo vas a hacer la detección de trampas? ¿Qué pasa cuando el jugador llega a los bordes de las paredes? ¿Su sistema de visualización funcionará para mazmorras o tendrá que volver a escribir una parte significativa del código?
El mundo es geometría. El jugador es geometría. El mundo no se mueve. El jugador lo hace. Establezca la posición de la cámara para centrarse en el reproductor. Siempre . Y eso es todo lo que hay que hacer.
No tratar de conseguir la suposición con "oh si me deslice el mundo, entonces se dará la apariencia de que el jugador se está moviendo". Simplemente complicará las matemáticas con sistemas de coordenadas extraños al final del día.
Es cierto que el renderizado de OpenGL en realidad funciona "arreglando la cámara para apuntar hacia abajo - z, y transformando y girando toda la geometría del mundo para que se ajuste al volumen de la vista canónica", pero no debes pensar de esa manera al programar . gluLookAt
tiene parámetros nombrados eye
, look
y up
por una razón, por lo que puede pensar en términos de un sistema de coordenadas sensible.