# Strange 3D game engine camera with X,Y,Zoom instead of X,Y,Z

I'm using a 3D game engine, that uses a 4x4 matrix to modify the camera projection, in this format:

 r r r  x
r r r  y
r r r  z
- - -  zoom


Strangely though, the camera does not respond to the Z translation parameter, and so you're forced to use X, Y, Zoom to move the camera around. Technically this is plausible for isometric-style games such as Age Of Empires III. But this is a 3D engine, and so why would they have designed the camera to ignore Z and respond only to zoom? Am I missing something here? I've tried every method of setting the camera and it really seems to ignore Z.

So currently I have to resort to moving the main object in the scene graph instead of moving the camera in relation to the objects.

My question: Do you have any idea why the engine would use such a scheme? Is it common? Why? Or does it seem like I'm missing something and the SetProjection(Matrix) function is broken and somehow ignores the Z translation in the matrix? (unlikely, but possible) Anyhow, what are the workarounds? Is moving objects around the only way?

Edit: I'm sorry I cannot reveal much about the engine because we're in a binding contract. It's a locally developed engine (Australia) written in managed C# used for data visualizations.

Edit: The default mode of the engine is orthographic, although I've switched it into perspective mode. Its probably more effective to use X, Y, Zoom in orthographic mode, but I need to use perspective mode to render everyday objects as well.

• Are you sure you're using a perspective viewport instead of a orthogonal one? – Gustavo Maciel Jan 16 '12 at 9:08
• What game engine is it, and what is your question, exactly? – Trevor Powell Jan 16 '12 at 10:05
• I'm sorry I cannot reveal much about the engine because we're in a binding contract. If you have a contract with the creators/suppliers of that engine, go ask them. – Bobby Jan 16 '12 at 11:23
• I don't know anything about your business/employer, but that sounds like it should go to someone who can make decisions, something along the lines "we've problem with the engine and \$contractor refuses to help, what are we supposed to do?". Also, without knowing anything about the engine, we'll hardly able to help...after all this could also be bug of some sort. – Bobby Jan 16 '12 at 11:41
• If that's what you wanted then you should have asked that. No it's not common but that is a false dichotomy; just because something isn't common doesn't make it a fault. – jhocking Jan 16 '12 at 16:50