"Super Meat Boy" es un juego de plataformas difícil que recientemente salió para PC, que requiere un control excepcional y saltos perfectos en píxeles. El código de física en el juego depende de la velocidad de fotogramas, que está bloqueada a 60 fps; Esto significa que si tu computadora no puede ejecutar el juego a toda velocidad, la física se volverá loca, causando (entre otras cosas) que tu personaje corra más lento y caiga por el suelo. Además, si vsync está desactivado, el juego se ejecuta extremadamente rápido.
¿Podrían los expertos en programación de juegos en 2D ayudar a explicar por qué el juego se codificó de esta manera? ¿No sería un bucle de física funcionando a una velocidad constante una mejor solución? (En realidad, creo que se usa un bucle de física para partes del juego, ya que algunas de las entidades continúan moviéndose normalmente independientemente de la velocidad de fotogramas. Tu personaje, por otro lado, corre exactamente [fps / 60] tan rápido).
Lo que me molesta de esta implementación es la pérdida de abstracción entre el motor del juego y la representación gráfica, que depende de elementos específicos del sistema, como el monitor, la tarjeta gráfica y la CPU. Si, por alguna razón, su computadora no puede manejar vsync, o no puede ejecutar el juego exactamente a 60 fps, se romperá espectacularmente. ¿Por qué el paso de representación influye de alguna manera en los cálculos físicos? (La mayoría de los juegos de hoy en día ralentizarían el juego o se saltearían marcos). Por otro lado, entiendo que los juegos de plataformas de la vieja escuela en NES y SNES dependían de una tasa de cuadros fija para gran parte de su control y física. ¿Por qué es esto, y sería posible crear un patrón en esa línea sin tener la dependencia de framerate? ¿Hay necesariamente una pérdida de precisión si separa la representación gráfica del resto del motor?
Gracias, y lo siento si la pregunta fue confusa.