I have a gameloop for a simulation I'm making, I noticed that the simulation is going very slow, When i checked the DeltaTime it was very small, I set the target fps to be 1 (deltatime should be 1 in that case) and it was still very small (1.1920929E-07) which is making the simulation super slow even with huge numbers.
Here's the gameloop code
public void Run()
{
Ticks = 0;
_running = true;
float totalTimeBeforeUpdate = 0;
float previousTimeElapsed = 0;
var clock = new Stopwatch();
clock.Start();
while (_running)
{
var totalTimeElapsed = (float) clock.Elapsed.TotalSeconds;
var deltaTime = totalTimeElapsed - previousTimeElapsed;
previousTimeElapsed = totalTimeElapsed;
totalTimeBeforeUpdate += deltaTime;
if (totalTimeBeforeUpdate >= TimeUntilUpdate)
{
GameTime.Update(deltaTime, (float) clock.Elapsed.TotalSeconds);
totalTimeBeforeUpdate = 0;
Update(GameTime);
Draw(GameTime);
Ticks++;
}
}
}
Edit: Yes I'm getting the correct target fps
Edit: Here's the results I'm getting when debugging
Ticks: 0, Total Time Elapsed: 1.0002049, Delta Time: 1E-07, FPS: 10000000
Ticks: 1, Total Time Elapsed: 2.0000005, Delta Time: 1E-07, FPS: 10000000
Ticks: 2, Total Time Elapsed: 3.0000003, Delta Time: 1E-07, FPS: 10000000
Ticks: 3, Total Time Elapsed: 4.0000004, Delta Time: 1E-07, FPS: 10000000
Ticks: 4, Total Time Elapsed: 5.0000004, Delta Time: 1E-07, FPS: 10000000
Ticks: 5, Total Time Elapsed: 6.0000005, Delta Time: 1E-07, FPS: 10000000
Ticks: 6, Total Time Elapsed: 7.0000004, Delta Time: 1E-07, FPS: 10000000
Ticks: 7, Total Time Elapsed: 8.0000003, Delta Time: 1E-07, FPS: 10000000
Ticks: 8, Total Time Elapsed: 9.0000002, Delta Time: 1E-07, FPS: 10000000
Ticks: 9, Total Time Elapsed: 10.0000003, Delta Time: 1E-07, FPS: 10000000
Ticks: 10, Total Time Elapsed: 11.0000012, Delta Time: 1E-07, FPS: 10000000
Ticks: 11, Total Time Elapsed: 12.0000005, Delta Time: 1E-07, FPS: 10000000
Ticks: 12, Total Time Elapsed: 13.0000005, Delta Time: 1E-07, FPS: 10000000
Ticks: 13, Total Time Elapsed: 14.0000005, Delta Time: 1E-07, FPS: 10000000
Ticks: 14, Total Time Elapsed: 15.0000005, Delta Time: 1E-07, FPS: 10000000
Ticks: 15, Total Time Elapsed: 16.0000004, Delta Time: 1E-07, FPS: 10000000
Ticks: 16, Total Time Elapsed: 17.0000005, Delta Time: 1E-07, FPS: 10000000
Ticks: 17, Total Time Elapsed: 18.0000005, Delta Time: 1E-07, FPS: 10000000
Ticks: 18, Total Time Elapsed: 19.0000006, Delta Time: 1E-07, FPS: 10000000
Ticks: 19, Total Time Elapsed: 20.0000005, Delta Time: 1E-07, FPS: 10000000
Ticks: 20, Total Time Elapsed: 21.0000006, Delta Time: 1E-07, FPS: 10000000
Ticks: 21, Total Time Elapsed: 22.0000006, Delta Time: 1E-07, FPS: 10000000
Ticks: 22, Total Time Elapsed: 23.0000002, Delta Time: 1E-07, FPS: 10000000
it says the FPS is really high, that's because I'm using the deltatime to calculate it, you can see its running at 1 FPS (which is what i set it to) from the Ticks and total time elapsed, Delta Time is really smalls (very close to 0) and it should be actually 1 since I'm running at 1 FPS
clock.Elapsed.TotalSeconds
return and why do you need to send it to your game update if you also send thedeltaTime
? – Vaillancourt May 07 '21 at 18:14