game system event loop with glfw