Implement an upper FPS limit in the gameloop I implemented my game loop as described in deWiTTER's article, using the last approach with an unlimited FPS and a constant game speed. My problem is, that the unlimited FPS cranks up my CPU usage to nearly 100 . I understand that this is desired (as the hardware does as much as it can), but for my game, it's not really necessary (it's pretty simple). So I'd like to limit the FPS to some upper bound. Consider my game loop private static final int UPDATES PER SECOND 25 private static final int WAIT TICKS 1000 UPDATES PER SECOND private static final int MAX FRAMESKIP 5 long next update System.currentTimeMillis() int frames skipped float interpolation Start the loop while (isRunning) Update game frames skipped 0 while (System.currentTimeMillis() gt next update amp amp frames skipped lt MAX FRAMESKIP) Update input, move objects, do collision detection... Schedule next update next update WAIT TICKS frames skipped Calculate interpolation for smooth animation between states interpolation ((float)(System.currentTimeMillis() WAIT TICKS next update)) ((float)WAIT TICKS) Render events repaint(interpolation) How would I implement a maximum FPS? If i implement the repaint the way I implemented the update (or use a sleep instead of "do nothing cycles"), then the FPS is locked, right? That is not what I want. I want the game to be able to work with lower FPS (just as it does now), but limit the FPS to a maximum of, say 250.