Я считаю, что нормальным способом решения этого типа проблем является передача продолжительности с момента последнего цикла (часто называемого дельта) в качестве параметра системы. Это позволяет вам обновлять прогресс сущностей в игре, основываясь на количестве прошедшего реального времени. Например:
new_position = old_position + delta*speed
Это позволяет сущностям в вашей игре перемещаться с постоянной скоростью, не зависящей от частоты кадров вашей программы.