# First frame has a much longer delta time than other frames

I had a problem where my AI moved extreme at the first frame and then normal after that. I then figured out it was my delta. It's about 0.016 seconds (60 fps), but the first frame was about 19000 seconds, which is obviously impossible. Does anybody know what might be happening? Also the delta later on likes to oscillate from 0.01 to 0.03.

    long time = Sys.getTime() * 1000 / Sys.getTimerResolution();
float delta = (time - lastFrame) / 1000f;
lastFrame = time;
return delta;


That's the delta code.

EDIT: Wow, you guys really like to take the fun out of composing a question with all your editing.

• What is lastFrame on your first frame? if Sys.getTime() normally returns some large value and lastFrame is initialized to 0 then you'll have a large delta. Usually you need to ensure lastFrame is initialized to the current time just before the start of your game loop. – Sean Middleditch Oct 24 '13 at 17:43

The first frame being very long is an error in your code. Consider what lastFrame is set to when the application starts (likely 0), so for the first frame you're just setting deltaTime to the time/1000. You can add a check that if lastFrame is 0, the deltaTime is also 0. Or you can set it to a reasonable value (like the current time), when the application starts. Or you can delay anything that uses deltaTime by at least one frame, something like a delayed start.