Hola,
He preguntado en el hilo de Java del foro de desarrollo, pero creo que esta pregunta está mejor situada aquí.
En la asignatura de OOP de la Uned, la práctica consiste en programar un Pacman en Java.
Es la primera vez que toco el lenguaje y la programación de juegos, pero como tengo experiencia previa con C++, PHP y JS me ha resultado bastante sencillo ponerme al día.
La única duda que me surge es el saber si en los juegos, independientemente del game loop y su timestep (fijo o variable), es bueno tener un thread independiente para cada personaje que se dibuje en pantalla.
Estoy usando ahora mismo este loop:
while(playing) {
if (!this.paused) {
double currTime = (double)System.nanoTime() / 1000000000.0;
if((currTime - nextTime) > maxTimeDiff) nextTime = currTime;
if(currTime >= nextTime) {
nextTime += delta;
try {
doGameUpdates();
}
catch (InterruptedException e) {
e.printStackTrace();
}
if((currTime < nextTime) || (skippedFrames > maxSkippedFrames)) {
repaint();
skippedFrames = 1;
} else {
skippedFrames++;
}
} else {
int sleepTime = (int)(1000.0 * (nextTime - currTime));
if(sleepTime > 0) {
try {
Thread.sleep(sleepTime);
}
catch(InterruptedException e) {
}
}
}
}
}