Molti giochi Java usano thread.sleep () per controllare fps. Dal momento che il server non visualizza grafica, il loop di gioco del server dovrebbe continuare a funzionare solo calcolando il delta time? Come questo esempio:
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
è il modo più semplice, alcuni potrebbero attendere interruzioni del sistema operativo. Puoi persino contare vSync come meccanismo di sospensione.