I was suffering a weird problem during this whole week.
To make fixed framerate game, I used Thread.sleep() method call.
For the high-end computers, it worked well.
But for low-end computers, the play speed is almost doubled.
At first, I thought it is caused by duplicated update() call.
But actually, it was a bug of system. (maybe only for windows jre?)
The system clock may run fast when you use the ACPI power management timer as a high-resolution counter on Windows 2000-based, Windows XP-based, and Windows Server 2003-based computers
A workaround can be found here
new Thread() {
{ this.setDaemon(true); this.start(); }
public void run() {
while(true) {
try {
Thread.sleep(Integer.MAX_VALUE);
}
catch(InterruptedException ex) {
}
}
}
};