Buenas!
Tengo una duda con el port de Bennu a wiz.
Solo me pasa en la wiz (ultima version disponible). En el PC, por supuesto, esto no pasa.
Tengo un juego seteado a 60 frames por segundo con set_fps (60,0);
El juego se muestra estable a esa velocidad pero cuando pulso con la tactil sobre una ventana que checkea bastantes cosas, con transparencias, deteccion de colisiones y tal, el rendimiento del juego me baja a 50 frames. A la que dejo de pulsar la ventana el rendimiento vuelve a ser de 60 frames. Hasta aquí todo normal y corriente.
Lo raro es que si seteo el juego con set_fps (0,0); me da un rendimiento de 120 frames normal y 110 frames pulsando.
Lo mas raro aún... seteo con set_fps (90,0); y me da un rendimiento de 70 frames normal y 60 frames pulsando.
O yo no tengo cogido muy bien como funciona realmente lo de set_fps o algo no me cuadra... porque si el juego llega a funcionar a 70 y 120 frames sin problemas... porque me baja el rendimiento a 50 frames con set_fps (60,0);? Y por que si llega a 120 frames con set_fps (0,0); no me da los 90 frames que le pido con set_fps (90,0);... solo me da 70?
Hago algo mal?
Saludos!
El segundo parámetro de set_fps indica el número de FRAMES que la ejecución se ahorrará en caso de que la CPU no pueda satisfacer los fps que pides... Míralo en el manual que puede que te ayude, yo nunca suelo poner un 0 en ese parámetro, aunque la verdad siempre lo hago en PC, para mí la Wiz es otro mundo.
La verdad es que ni pajolera idea, no parece lógico lo que te pasa...pero por si te sirve de algo te explico algo parecido que me paso a mi, igual viene de lo mismo:
Envie a Splinter una prueba de mi proyecto para que la probase en su Wiz (Yo no tengo) y también iba a 10 fps menos de lo debido sin ser aparentemente cuestión de rendimiento, lo que hizo Splinter fue ponerle un frameskip de 1 (set_fps(60,1) ) y ya tiraba como debe ser, a 60. Me explico la razón pero ya no me acuerdo muy bien, algo de redondeos de la versión de Wiz o algo por el estilo...a ver si cuando vuelva Splinter arroja algo de luz sobre el tema.
Lo que ya no se, al no poder verlo in situ es si el framskip quitaba fluidez al juego en Wiz...lo tengo con el frameskip tambien en el PC, pero claro, solo se activa cuando es necesario y el PC va sobrao...
PD: HOKUTO SHINKEN FOREVER! ;D
Teniendo en cuenta que set_fps tiene código que ejecutar, y que es posible que no sea exacto contando los frames, puede que de ahi venga todo el lio (sin tener que pausar X microsegundos, y calcularlos, pues va bien).
Esa función lleva tiempo dando problemas a Splinter, que él te diga, pero si no, prueba con lo que dice momia.
QuotePD: HOKUTO SHINKEN FOREVER!
No encuentro gran cosa al respecto de semejante frikez, ¿Qué es?
Puestos a ser frikis Metalocalypse: http://www.seriesyonkis.com/serie/metalocalypse/
Ayer ví el primer capítulo de 10 minutos y me ha dejado marcado.
Siento cambiar el tema, reitero probar a cambiar el segundo parámetro por 1.
Quote from: Windgate on December 12, 2009, 04:34:58 AM
QuotePD: HOKUTO SHINKEN FOREVER!
No encuentro gran cosa al respecto de semejante frikez, ¿Qué es?
Puestos a ser frikis Metalocalypse: http://www.seriesyonkis.com/serie/metalocalypse/
Ayer ví el primer capítulo de 10 minutos y me ha dejado marcado.
Siento cambiar el tema, reitero probar a cambiar el segundo parámetro por 1.
(http://tvtropes.org/pmwiki/pub/images/Atatatatata!2.gif)
Hokuto Shinken style (the "Divine Fist of the North Star") an assassination art which utilizes pressure points to make people explode.
Es el estilo que el amigo Kenshiro utiliza en el manga Puño de la estrella del Norte y donde proviene mi nick y mi avatar.
Probaré lo de añadir el frameskip a ver si mejoro algo sin perder fluidez... pero creo que el problema (o la cosa rara) sigue estando allí.
Saludos!
esto ya lo explique, la cuestion es por la precision en granularidad de la pausa que permite la wiz, al hacer una pausa minima necesaria para ajustar los fps, luego no da la granularidad para el siguiente y de ahi en mas se arrastra.
Quote from: splinter_work on December 12, 2009, 01:39:43 PM
esto ya lo explique, la cuestion es por la precision en granularidad de la pausa que permite la wiz, al hacer una pausa minima necesaria para ajustar los fps, luego no da la granularidad para el siguiente y de ahi en mas se arrastra.
Bueno no entiendo la explicacion sorry pero si tu lo dices me vale. :D
Lamentablemente, poner set_fps (60,
1); no soluciona la caida de frames... me recomiendas entonces setear los frames a 90 como tengo ahora para asegurar una media de 70-60 frames o crees que puede ser cosa de mi codigo (soy bastante principiante) y tengo que intentar programar de una forma mas eficiente depurando aun mas el codigo?
Gracias por tus comentarios!
PD: Splinter me podrias dar algo de karma ya que al menos no he titulado el hilo: Sobre el
bug del set_fps. ;D ;D ;D
yo diria que en vez de esperar un juego de 60fps hagas un juego a 30fps, o algo parecido.
Los karmas los da cualquiera, a cualquiera, y no hace falta tener karmas para hacerlo.
Ok! Solo era un poco de humor hombre...
Pues nada doy el tema por zanjado.
Gracias!
lol un karma negativo, creo que es la primera vez que lo veo :o
Quote from: Windgate on December 13, 2009, 12:26:27 AM
lol un karma negativo, creo que es la primera vez que lo veo :o
Jajajaja Hoku haciendo amigos allí donde va. ;D
Viene a decir que la WIZ no tiene precisión a la hora de calcular el retardo entre frame y frame (ese espacio de tiempo que le sobra a la máquina antes de mostrar la imagen), y que al redondear da microsegundos de más, y estos de más se van acumulando en tiempo, hasta que suman el tiempo de un frame (en el que no se ha hecho nada), de ahi la caida.
Prueba a poner un frameskip de 3, si splinter no ha tocado mucho ahi, desde tiempos de Fenix se viene recomendando usar múltiplos de 3 (no se por qué).
Y no se por qué, pero a mi mis juegos en gp2x van de miedo, y eso que es un cutrísimo port de Bennu.
LOL, primer karma negativo de la historia del foro.
Es mentira, este no ha sido el primero...
Quote from: Drumpi on December 13, 2009, 02:13:16 PM
Viene a decir que la WIZ no tiene precisión a la hora de calcular el retardo entre frame y frame (ese espacio de tiempo que le sobra a la máquina antes de mostrar la imagen), y que al redondear da microsegundos de más, y estos de más se van acumulando en tiempo, hasta que suman el tiempo de un frame (en el que no se ha hecho nada), de ahi la caida.
Prueba a poner un frameskip de 3, si splinter no ha tocado mucho ahi, desde tiempos de Fenix se viene recomendando usar múltiplos de 3 (no se por qué).
Y no se por qué, pero a mi mis juegos en gp2x van de miedo, y eso que es un cutrísimo port de Bennu.
LOL, primer karma negativo de la historia del foro.
Gracias Drumpi... he puesto set_fps(60,3) y mano de santo... la bajada de frames ya no se produce cosa que si pasaba con set_fps(60,1).
Cada día se parende algo nuevo.
Quote from: FreeYourMind on December 13, 2009, 03:24:13 PM
Es mentira, este no ha sido el primero...
Calla, o te pongo un karma negativo
Los que quieras, no me muevo por karmas ;D
Cierto, no es el primer karma negativo, pero si el primer usuario del foro con karma negativo (la otra vez el unuario (no recuerdo quien) tenía 3 y le dejaron en 2 ^^).
Ya os he dicho que no. Ya hubo uno antes negativo (bajo cero)...
Si mal no recuerdo, la granularidad minima de una pausa en Wiz (o desde SDL, no recuerdo) es de 20 milisegundos, y lo mismo para obtener el tiempo de procesador actual... por eso da unos 50 fps...