And finally a 3D version, with manual and enemy radar.
I haven’t programmed anything in 3D in years. I used Processing to make this system, which I thought would be simple enough given its utility in prototyping artistic works using OpenGL. However Processing’s 3D coordinate system is very different to what I’m used too (having learned a long time ago during my degree from the Nehe OpenGL tutorial site). The origin point in Processing is situated in the upper left hand corner of the screen. Normally the origin is in the centre of the screen. Subsequently the camera (or eyes of the viewer) are not the same as the origin and so when creating first person movement in Processing every object must first be translated to the viewers position, rotated (if required) and then put back to the origin point before it can be placed appropriately in the environment. This takes some getting use too and took the best part of a day to get my head around and correct for.