"Super Meat Boy" es un difícil juego de plataformas 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 despacio y caiga por el suelo. Además, si vsync está desactivado, el juego corre extremadamente rápido.Plataformas 2D: ¿por qué hacer que la física dependa de la velocidad de cuadros?
¿Podrían aquellos con experiencia en la programación de juegos 2D ayudar a explicar por qué el juego fue codificado de esta manera? ¿No sería una mejor solución un ciclo de física funcionando a una velocidad constante? (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. Por otro lado, tu personaje 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 a exactamente 60 fps, se romperá espectacularmente. ¿Por qué el paso de renderizado debería influir en los cálculos de física? (La mayoría de los juegos hoy en día ralentizarían el juego u omitirán marcos). Por otro lado, entiendo que los juegos de plataformas de la vieja escuela en el NES y SNES dependían de un framerate fijo para gran parte de su control y física. ¿Por qué es esto, y sería posible crear un patform 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.
Esto podría ser mejor preguntado en http://gamedev.stackexchange.com/ –