Iniciar sesión

Ver la versión completa : Cómo tira pygame de rendimiento?



Zenzuke
18/07/2006, 05:47
Hola a todos, estoy liado con mi proyecto Bob the Blob (http://www.gp32spain.com/foros/showthread.php?t=33468) y me he encontrado con unas cuantas limitaciones del fenix, a la hora de añadir animaciones sobre todo. El lenguaje (a pesar de haber usado DIV y DIV2) tampoco me llega a resultar excesivamente cómodo, y al pensar en alternativas, me he dado cuenta de que PYGAME esta portado a la gp2x, y tiene una sintaxis que me parece genial (y se parece mucho a actionscript, en el cual voy muy suelto).

La única cuestión que me surge es... Al ser un lenguaje interpretado y tirando además de SDL (que nisiquiera se si serán las aceleradas) ... cómo anda de rendimiento en la GP2X? Mejor, peor, igual que fenix?

No quisiera empezar de nuevo para descubrir que he cambiado unas limitaciones por otras y he pensado en preguntar aquí por si alguien habia tenido la curiosidad y lo había probado.

Muchas gracias por anticipado!

Uncanny
18/07/2006, 08:20
Para mi que Fenix tira mejor que el port de Python + PyGame en la GP2X, para empezar usa unas SDL no aceleradas, es un port de Python que portó hace un tiempo theoddbot, y creo que no ha sacado ninguna versión nueva. Yo solo he probado un ejemplo simple, así que no te lo puedo asegurar, pero me dio esa sensación.

En las descargas de GP32Spain creo que hay algún juego hecho en PyGame, podrías probarlo para comprobar por ti mismo como lo ves de rendimiento. Sin duda lo mejor y que menos limita es programar en C/C++, pero claro, entiendo perfectamente que si no has programado en C/C++ quizás no es plan de ponerse a ir aprendiendo y encima a usar SDL para hacer el juego xD

Por lo demás Python me parece un buen lenguaje, facil de entender, aprender y usar, además de que PyGame es un buen wrapper de SDL y sencillo de usar, pero claro, en la GP2X ya es otra historia.

Zenzuke
18/07/2006, 08:24
Yeah baby, eso mismo.

Además ke voy a hacer los gráficos yo también, y va a ser un juego muy pesado en cuanto a animación, asi que podría volverme loco con surfaces y mierdas de esas. Yo kiero meter las imágenes en un array y recorrerlas y ya esta xD

miq01
18/07/2006, 11:00
Zenzuke, por curiosidad, ¿qué limitaciones tienes en Fenix con las animaciones?

¿Has preguntado en el foro de Fenix? Si no estás muy puesto en el tema puede pasar que te dé la impresión de que algo no se puede hacer cuando en realidad sí. Es que a mí con SDL me había pasado alguna vez: no conocerlo suficientemente y pensar que algo no se podía hacer y que luego resultara que sí.

Puck2099
18/07/2006, 15:25
I'm back :D

Yo también tengo curiosidad por conocer esas limitaciones del Fenix, a ver si es por un bug o del propio lenguaje.

Por otro lado, no conozco como será el port de pygame, pero el Fenix de GP2X lleva optimizaciones para la consola como matemática en punto fijo para rotaciones, zooms, etc.

Saludos

chipan
18/07/2006, 15:31
I'm back :D

Yo también tengo curiosidad por conocer esas limitaciones del Fenix, a ver si es por un bug o del propio lenguaje.

Por otro lado, no conozco como será el port de pygame, pero el Fenix de GP2X lleva optimizaciones para la consola como matemática en punto fijo para rotaciones, zooms, etc.

Saludos
Welcome back!
Menos mal que has vuelto, a ver si con tu vuelta se calma misato y deja de banearme y hecharle la culpa a chemaris XDDDDDDDDD
Por lo que das a entender el fenix de gp32 no tenía esas optimizaciones y eso me lleva a pensar que los zooms de los que hacía gala mi viejo ackman venturer podían ser una de las causas de que fuera mas lento que el quake 4 en una gameboy ladrillo sin tapa para las pilas.

Puck2099
18/07/2006, 15:33
Welcome back!
Menos mal que has vuelto, a ver si con tu vuelta se calma misato y deja de banearme y hecharle la culpa a chemaris XDDDDDDDDD

Eso seguro que es culpa de Chemaris, Chemaris siempre tiene la culpa de todo :D


Por lo que das a entender el fenix de gp32 no tenía esas optimizaciones y eso me lleva a pensar que los zooms de los que hacía gala mi viejo ackman venturer podían ser una de las causas de que fuera mas lento que el quake 4 en una gameboy ladrillo sin tapa para las pilas.

Sí, el Fenix de GP32 también tenía esas optimizaciones, yo tomé parte del código de Chui para meterlas :)

Saludos

chipan
18/07/2006, 16:02
Eso seguro que es culpa de Chemaris, Chemaris siempre tiene la culpa de todo :D



Sí, el Fenix de GP32 también tenía esas optimizaciones, yo tomé parte del código de Chui para meterlas :)

Saludos
Entonces es que tenía el código demasiado poco optimizado; aunque todavía no he probado como rula en la 2X; a ver si me anímo esta tarde.

Coelophysis
18/07/2006, 18:38
Entonces es que tenía el código demasiado poco optimizado; aunque todavía no he probado como rula en la 2X; a ver si me anímo esta tarde.

¿El Venturer es este que me pasaste del chaval con la pistolita que se carga a los malos hinchándolos y haciéndolos explotar? Porque a mí me va perfectamente en la GP2X, aunque creo que la versión que tengo está incompleta o algo...

Coelophysis
18/07/2006, 18:53
Por cierto, y volviendo al hilo; yo soy novato en esto pero no he encontrado limitaciones al Fenix por lo que respecta a las animaciones, y en mi juego he metido unas cuantas ya.

Es limitado en otros aspectos si quieres, pero en eso...:loco: . Por curiosidad, ¿que es más o menos lo que no puedes hacer? más que nada para que no me encuentre yo luego con el chasco si quiero hacer algo parecido...

Como curiosidad, adjunto una muestra reducida de las animaciones del prota del Firewhip, que no son pocas, y que el Fenix maneja sin ningún tipo de problema...

chipan
18/07/2006, 19:46
¿El Venturer es este que me pasaste del chaval con la pistolita que se carga a los malos hinchándolos y haciéndolos explotar? Porque a mí me va perfectamente en la GP2X, aunque creo que la versión que tengo está incompleta o algo...
¿Va ok? pues igual me anímo y continúo; si eso cuando acabes el firewhip de marras podríamos terminar el ackman entre los 2; seguro que con tus gráficos luciría el doble que con mis cutreripeos.

Edito: Casi se me olvidaba el robot wars 2x joer que complicación mas grande, ¿como narices hago yo ahora?.

Coelophysis
18/07/2006, 22:08
¿Va ok? pues igual me anímo y continúo; si eso cuando acabes el firewhip de marras podríamos terminar el ackman entre los 2; seguro que con tus gráficos luciría el doble que con mis cutreripeos.

Edito: Casi se me olvidaba el robot wars 2x joer que complicación mas grande, ¿como narices hago yo ahora?.

Jejejeje; como no espabiles me pillo yo los robots y los uso de malos en un plataformas a lo Megaman... que el motor ya lo tengo :D .

El Ackman terminado tiene que ser un vicio; yo tiraría por ahí si quisiera tener algo pronto. A mí me parece ya muy avanzado...

Zenzuke
19/07/2006, 05:00
Puess... no es que no PUEDA hacer nada concreto, es que me resulta incomodísimo retocar una animación después de hecha y cosas asi xD

Soy un malacostumbrao, lo se xD

De todas formas, esque algunos movimientos de mi personaje YA se chupan casi 60 fotogramas directamente, como todos los sprites de tu personaje del firewhip, casi, asi que es una burrada xDDDD

He probado el pygame y a pesar de que el lenguaje es una pasada, deja mucho que desear en cuanto a rendimiento, me quedaré con Fenix al final xD

Supongo que usaré un sistema parecido al que usa l_draven en sus librerías Andrómeda (si no le copieteo descaradamente, que también es una opción, siempre dando créditos, claro :D)

Muchas gracias por las respuestas.

Por cierto, una cosa sí se me ocurre, que me estuvo dando dolores de cabeza para implementar en fenix ¿se pueden hacer arrays bidimensionales? Osea, en plannnn [[0,2,4,6],[7,8,9,23,45],[22,33,44,52]]?

miq01
19/07/2006, 05:52
Por cierto, una cosa sí se me ocurre, que me estuvo dando dolores de cabeza para implementar en fenix ¿se pueden hacer arrays bidimensionales? Osea, en plannnn [[0,2,4,6],[7,8,9,23,45],[22,33,44,52]]?
La verdad, no me acuerdo ya de si se puede o no, pero si es que no siempre puedes crear un array del tamaño NUM_COLUMNAS*NUM_FILAS y luego para acceder al elemento [i,j] (donde i=columna y j=fila) basta con hacer:

array[j*NUM_COLUMNAS + i]

Zenzuke
19/07/2006, 06:06
Y para hacer un for, ahi? xD

Esque los quiero para almacenar las animaciones.

chipan
19/07/2006, 06:11
Jejejeje; como no espabiles me pillo yo los robots y los uso de malos en un plataformas a lo Megaman... que el motor ya lo tengo :D .

El Ackman terminado tiene que ser un vicio; yo tiraría por ahí si quisiera tener algo pronto. A mí me parece ya muy avanzado...
Lo cierto es que solo necesita un par de ajustes para la gravedad; algun que otro tipo de enemigo; y no le vendrían mal unos pocos gráficos. Pero lo que es el moto está mas que terminado Xd.

miq01
19/07/2006, 06:12
Y para hacer un for, ahi? xD

Esque los quiero para almacenar las animaciones.
Pues suponiendo que tengas por ejemplo 8 filas y 4 columnas:



for (j=0; j<8; j++)
for (i=0; i<4; i++)
...array[j*4 + i]...
end
end