Não, este é o caminho errado para fazer isso.
Como você vai fazer a detecção de armadilhas? E quando o jogador atinge as bordas das paredes? Seu sistema de visualização funcionará para masmorras ou você terá que reescrever uma parte significativa do código?
O mundo é geometria. O jogador é geometria. O mundo não se move. O jogador faz. Defina a posição da câmera para centralizar no player. Sempre . E é só isso.
Não tente ser extravagante com "ah, se eu deslizar pelo mundo, ele dará a aparência que o jogador está movendo". Você só vai complicar a matemática com sistemas de coordenadas estranhos no final do dia.
É verdade que a renderização do OpenGL realmente funciona "fixando a câmera para apontar para baixo - z e transformando e girando toda a geometria do mundo para que ela caiba no volume de visualização canônico", mas você não deve pensar dessa maneira ao programar . gluLookAt
tem parâmetros nomeados eye
, look
e up
por uma razão - para que você possa pensar em termos de um sistema de coordenadas sensata.