SMFL?

Tratamos sobre el manejo de APIs frecuentemente utilizadas en el desarrollo de videojuegos, como SDL, pygame o SFML.

SMFL?

Notapor Juanxo » Jue Mar 11, 2010 2:58 pm

Buenas a todos, he estado mirando un poco SMFL y pinta muy bien, Los que la hayais o la estéis utilizando la recomendaríais?
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Notapor hugoruscitti » Jue Mar 11, 2010 8:24 pm

Yo estoy utilizando SFML desde python y me parece
genial. La verdad es que funciona muy bien y vale
la pena...

de hecho, arme una clase para manejar grillas
de sprites por si te interesa:

http://www.sfml-dev.org/wiki/en/sources/spritesheets
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor xeesar » Mar Jun 08, 2010 8:15 pm

Hola! soy nuevo en esto de la programación de juegos pero llevo un par de días dándole caña y empiezo a conseguir resultados interesantes, así que en cuanto acabe con los exámenes es probable que me empecéis a ver bastante por aquí. Bueno a parte de hacer mi presentación en sociedad quería preguntar unas cosillas:

¿Qué diferencia hay entre pygame y pysmfl? ¿Cómo se instala pysmfl, con las indicaciones que dan en la pagina no me he aclarado mucho? ¿Son suficientemente buenas las funciones de rotación que ofrecen éstas librerías? me refiero para conseguir objetos puramente rotativos como ruletas o la bola que gira sobre la ruleta.

Por otro lado he visto que la librería pyglet está diseñada en python directamente por lo que no se necesita nada más para poder utilizar los juegos programados con ésta librería, pero entonces en el caso de librerías como pygame que más se necesita, yo solo descargue el interprete de python y la libreria pygame y me funciona todo perfecto.

Se me olvidaba decir que uso Ubuntu... por si acaso tiene algo que ver xD

1 saludo!!
xeesar
 
Mensajes: 3
Registrado: Mar Jun 08, 2010 7:59 pm

Notapor hugoruscitti » Jue Jun 10, 2010 1:50 pm

xeesar escribió:Hola! soy nuevo en esto de la programación de juegos pero llevo un par de días dándole caña y empiezo a conseguir resultados interesantes, así que en cuanto acabe con los exámenes es probable que me empecéis a ver bastante por aquí. Bueno a parte de hacer mi presentación en sociedad quería preguntar unas cosillas:

¿Qué diferencia hay entre pygame y pysmfl? ¿Cómo se instala pysmfl, con las indicaciones que dan en la pagina no me he aclarado mucho? ¿Son suficientemente buenas las funciones de rotación que ofrecen éstas librerías? me refiero para conseguir objetos puramente rotativos como ruletas o la bola que gira sobre la ruleta.


Buenas, ante todo bienvenido!!.

En sí, pygame y pysfml son muy similares. La diferencia principal es
cómo dibujan en pantalla. pygame accede a las funcionalidad de
video a través de la biblioteca SDL, que demuestra ser muy buena
para dibujar en dos dimensiones pero sin aceleración de video, es
decir, no tienes rotaciones perfectas ni transparencias alpha a
menos que lo trabajes por tu cuenta.

En cambio pySFML utiliza a la biblioteca OpenGL para dibujar en pantalla,
lo que te permite mejor rendimiento en los equipos que tienen aceleracion
de video, es mas sencillo lograr rotaciones, escalados, efectos de
transparencias etc...

Depende mucho de lo que quieras hacer, y del público al que apunta
tu juego. Si quieres que funcione en casi todos los equipos, incluso
los mas modestos, pygame te da esa posibilidad, pysfml solo funciona
bien en equipos mas nuevos que tengan una tarjeta de video aceleradora.

Por lo que me comentas, si quieres hacer muchas rotaciones te recomendaria
que utilices SFML o pyglet.

Ah, y por último, para instalar cualquiera de estas bibliotecas
en GNU/Linux te recomiendo utilizar la herramienta `apt-get`. Por
ejemplo:

apt-get install python-sfml
apt-get install python-pyglet
apt-get install python-pygame


xeesar escribió:Por otro lado he visto que la librería pyglet está diseñada en python directamente por lo que no se necesita nada más para poder utilizar los juegos programados con ésta librería, pero entonces en el caso de librerías como pygame que más se necesita, yo solo descargue el interprete de python y la libreria pygame y me funciona todo perfecto.


Si, pyglet utiliza OpenGL al igual de SFML, por lo que te permite hacer
rotaciones, transparencias etc... pero a diferencias de SFML tiene esta virtud que
comentas: no requiere instalación de muchas bibliotecas para funcionar.

Igualmente, tanto pyglet como pygame y sfml tienen muchas dependencias, en sistemas
como Ubuntu no es difícil instalarlas, y Windows está bastante extendido así que
tampoco es difícil encontrar instaladores para cada biblioteca.

La diferencia de pyglet, en el tema de las dependencias, es que pyglet
cuando quiere hacer algo como cargar una imagen, busca las biliotecas que
tienes instaladas e intenta cargar la imagen con alguna de ellas. Por ejemplo, si
tienes gnome intenta cargar las imagenes con la biblioteca gtk, si tienes
la biblioteca PIL usa esa.. etc.

xeesar escribió:Se me olvidaba decir que uso Ubuntu... por si acaso tiene algo que ver xD

1 saludo!!


Si, gran sistema, a mi modo de ver es "la" herramienta para desarrollar
y aprender.

Buena suerte.
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor Juanxo » Sab Jun 12, 2010 3:51 am

buenas xeesar:

Lo primero, bienvenido.
Ahora vamos a lo que nos interesa a todos. Como siempre, hugo te ha dado detalles de calidad, nada que añadir aqui.

Quizás, si acaso, plantearte una cuestion de futuro:
Piensas utilizar Python como plataforma de aprender a hacer juegos para luego saltar a otro lenguaje? (cosa que muchos de aqui hemos hecho)

Basicamente lo digo porque si tu respuesta es afirmativa, quizás tiraría más por la vertiente de SFML, ya que en otros lenguajes, es más robusta que SDL (opinion personal), y conocer un poco la API de SFML te ayudaria. El tema de Aceleracion por hardware y demás aqui perderia un poco de relevancia, porque tu interes es aprender y no distribuir tus juegos.


PD: perdon por hacer off-topic en tema ajeno, pero solo un apunte al apunte de hugo acerca de UBUNTU: Visual Studio
El dia que haya algo parecido (codeblocks se acerca, pero visual studio + plugins aun esta lejos), juro que quemo mi copia de windows.......bueno, la dejare pa los juegos xD
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Notapor xeesar » Dom Jun 13, 2010 10:43 am

Hola! Gracias por vuestras respuestas, me han solventado muchas dudas.

La verdad es que tengo ciertos conocimientos de Java y C así que lo de usar python no es por iniciarme en el mundillo éste sino por aprenderlo, por que pienso que es un requisito indispensable en la caché de cualquier programador, en principio no tengo pensado saltar a otro lenguaje hasta que halla adquirido un cierto dominio de python.

Exactamente tal y como comenta Juanxo mi interés no es tanto dedicarme la producción de juegos sino aprender éste área de la programación, pero precisamente por eso si que me interesan temas como la acelaración por hardware, para aprender un poco más sobre su funcionamiento e implementación.

Mi interés en las rotaciones viene de que le propuse a un amigo desarrollar un juego de ruleta de casino éste verano a modo de práctica y las funciones de transformación que ofrece pygame no me convencieron demasiado, la calidad de las rotaciones deja mucho que desear y en algunos casos (por el tema del rellenado) produce efectos totalmente inesperados, en cuanto a las transparecias resulta que solo sustituye el colorkey por una copia de esa zona de la imagen de fondo por lo que al aplicar rotaciones y zoom también se producen efectos indeseados.

Otra cosa que no me gusta de pygame es que, al menos por lo que se refleja en la traducción de la api que hicisteis aquí, no ofrece funciones de red. Que por cierto, si alguien sabe de algún tutorial (en el idioma que sea) sobre la implementación de un sistema de red con SNL, SDL_Net o las funciones de red de SFML agradecería enormemente el link.

Una duda en cuanto a pyglet, ¿qué tal su rendimiento de ejecución? es que hace poco vi un tutorial de un juego sencillo hecho con pyglet que usaba sincronización por tiempo (ningún tipo de sincronización o limitación de los FPS) y aún así se ejecutaba a tan solo 30 FPS, tal vez por eso de que python no es el lenguaje más rápido y pyglet está escrita en python su rendimiento es menor que el de pygame o SFML escritas en C.
xeesar
 
Mensajes: 3
Registrado: Mar Jun 08, 2010 7:59 pm

Notapor hugoruscitti » Dom Jun 13, 2010 2:33 pm

xeesar escribió:Otra cosa que no me gusta de pygame es que, al menos por lo que se refleja en la traducción de la api que hicisteis aquí, no ofrece funciones de red. Que por cierto, si alguien sabe de algún tutorial (en el idioma que sea) sobre la implementación de un sistema de red con SNL, SDL_Net o las funciones de red de SFML agradecería enormemente el link.


Si, se habló hace un buen tiempo de eso en la lista de pygame, y por lo que
se comentó la recomendación es mas o menos así: pygame no tiene funciones
o modulos de red porque python las ofrece desde otras bibliotecas, incluso
hay funciones para redes desde la propia biblioteca estándar.

Por eso, al menos a mí, me pareció una justificación válida, lástima que
no tengo conocimientos de esas otras libs para comentarte algún ejemplo, veré si
puedo investigarlo para dentro de unas semanas.

xeesar escribió:Una duda en cuanto a pyglet, ¿qué tal su rendimiento de ejecución? es que hace poco vi un tutorial de un juego sencillo hecho con pyglet que usaba sincronización por tiempo (ningún tipo de sincronización o limitación de los FPS) y aún así se ejecutaba a tan solo 30 FPS, tal vez por eso de que python no es el lenguaje más rápido y pyglet está escrita en python su rendimiento es menor que el de pygame o SFML escritas en C.


que raro, 30 fps es muy poquito, ¿tienes la dirección web del tutorial para verlo?. Por
lo que tengo entendido pyglet evita imprimir en pantalla si no es necesario, pero
depende del juego. Por ejemplo, si haces una aplicación con pyglet y
no dibujas nada los FPS no se mantienen altos, solo cuando pones objetos a moverse
con los FPS aumentan.

Pero bueno, depende del juego y habría que ver porqué pasa...

PD: ya que estás evaluando bibiotecas para python, ¿has visto cocos2d?: http://cocos2d.org/
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina


Volver a Sobre las bibliotecas multimedia

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado