多くのJavaゲームでは、fpsを制御するためにthread.sleep()を使用しています。サーバーはグラフィックを表示しないので、サーバーのゲームループはデルタ時間を計算するだけで実行し続ける必要がありますか?この例のように:
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
最も簡単な方法です。OSの割り込みを待つ人もいます。vSyncをスリープメカニズムとしてカウントすることもできます。