Sobre el set_fps.

Started by Hokutoy, December 11, 2009, 05:14:04 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Hokutoy

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!




Windgate

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.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

La momia que fuma

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

Drumpi

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.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Windgate

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.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Hokutoy

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.


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!

splinter_work

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.

Hokutoy

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

splinter_work

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.

Hokutoy

Ok! Solo era un poco de humor hombre...

Pues nada doy el tema por zanjado.

Gracias!

Windgate

lol un karma negativo, creo que es la primera vez que lo veo :o
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Hokutoy

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

Drumpi

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.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

FreeYourMind

Es mentira, este no ha sido el primero...

Hokutoy

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.