Рендеринг и вычисления так быстро, как вы можете получить максимальную частоту кадров (как ограничено вертикальной синхронизацией)
Не используйте таймер, они не надежны <50-100 мс в Windows. Проверьте, сколько времени прошло. (Обычно требуется и дельта, и абсолютное значение, в зависимости от того, основана ли ваша анимация на физике или на ключевом кадре.) </p>
Кроме того, если вы хотите быть стабильным, используйте верхнюю / нижнюю границу вашего временного шага, чтобы перейти в замедленное движение, если для рендеринга кадра требуется несколько секунд (доступ к диску другим процессом?) Или пропустите обновить, если вы получите два из них в течение, скажем, 10 мс.
Обновление
(поскольку это довольно популярный ответ)
Я обычно предпочитаю иметь фиксированный временной шаг, поскольку он делает все более стабильным. Большинство физических движков довольно устойчивы к изменению времени, но другие вещи, такие как системы частиц или различные более простые анимации или даже игровая логика, легче настраивать, когда все работает с фиксированным шагом времени.
Update2
(Так как я получил 10 голосов;)
Для дальнейшей стабильности в течение длительных периодов работы (> 4 часов) вы, вероятно, захотите убедиться, что вы не используете float / double для вычисления больших временных различий, поскольку при этом вы теряете точность, и анимация / физика вашей игры будут страдать. Вместо этого используйте целые числа с фиксированной точкой (или 64-битные микросекунды).
Для волосатых деталей я рекомендую прочитать Вопрос точности Тома Форсайта.