I'm currently beginning to learn OpenGL at school, and I've started making a simple game the other day (on my own, not for school). I'm using freeglut, and am building it in C, so for my game loop I had really just been using a function I made passed to glutIdleFunc
to update all the drawing and physics in one pass. This was fine for simple animations that I didn't care too much about the frame rate, but since the game is mostly physics based, I really want to (need to) tie down how fast it's updating.
So my first attempt was to have my function I pass to glutIdleFunc
(myIdle()
) to keep track of how much time has passed since the previous call to it, and update the physics (and currently graphics) every so many milliseconds. I used timeGetTime()
to do this (by using <windows.h>
). And this got me to thinking, is using the idle function really a good way of going about the game loop?
My question is, what is a better way to implement the game loop in OpenGL? Should I avoid using the idle function?