Viele Java-Spiele verwenden thread.sleep (), um fps zu steuern. Sollte die Server-Spielschleife weiterlaufen und nur die Delta-Zeit berechnen, da der Server keine Grafiken anzeigt? Wie dieses Beispiel:
long lastLoopTime = System.nanoTime();
final int TARGET_FPS = 60;
final long OPTIMAL_TIME = 1000000000 / TARGET_FPS;
while (gameRunning)
{
long now = System.nanoTime();
long updateLength = now - lastLoopTime;
lastLoopTime = now;
double delta = updateLength / ((double)OPTIMAL_TIME);
doGameUpdates(delta);
}
Thread.Sleep
ist der einfachste Weg, einige könnten auf Betriebssystem-Interrupts warten. Sie können vSync sogar als Schlafmechanismus zählen.