An FPS engine from scratch, using OpenGL