32 votos

¿Diferencias entre Python juego las librerías Pygame y Pyglet?

He tenido alguna experiencia con Pygame, pero parece haber un montón de rumores alrededor de Pyglet estos días.

¿Cómo se comparan estas dos bibliotecas? ¿Cuál sería la ventaja de usar uno sobre el otro, tanto en características y facilidad de uso?

¿Por último, diría que uno es más Pythonic que la otra?

24voto

sastanin Puntos 16061

Pygame: licencia LGPL

Pyglet: licencia BSD

Pygame se basa en SDL bibliotecas fuertemente

Pyglet es un puro biblioteca de python con menos dependencias, creo que se requiere de una mejor comprensión de OpenGL

Pygame es por aquí por un largo tiempo, un montón de gente lo usa

Pyglet es una nueva lib

Pygame se orienta hacia el desarrollo del juego (cursores, sprites, joystick/gamepad apoyo)

Pyglet es más de propósito general (a pesar de que tiene una clase Sprite)

He encontrado también esta discusión sobre pyglet los usuarios de la lista de correo: de pygame+pyopengl a pyglet

Descargo de responsabilidad: yo no uso, aún, sólo se trató de algunos tutoriales ;-)

20voto

Kiv Puntos 9116

Yo estaba considerando tanto Pygame y Pyglet para un pequeño shooter 2D, y después de mirar el código fuente y algunos tutoriales fui con Pyglet. Yo estaba muy feliz con los resultados.

Pyglet funcionó de inmediato y fue agradable trabajar con ella, y conceptualmente muy limpio. Ciertamente había un Python sentir a mí: usted podría obtener un sencillo y legible por ejemplo va muy rápido, y utiliza los decoradores para un buen efecto para el control de eventos. Asimismo, no de la fuerza de una particular estructura del programa, por lo que fue fácil para mí para mezclar en la física de la modelización de Pymunk (http://code.google.com/p/pymunk/).

Mientras que se basa en OpenGL y usted puede utilizar estas características para los efectos especiales, yo era capaz de hacer bien, sin conocimiento alguno de ellos.

También funciona bien con py2exe y py2app, lo cual es importante porque una gran cantidad de personas no tiene un intérprete de Python instalado.

En el lado negativo, hay menos información sobre ella en la web, ya que es más reciente, así como menor número de muestra de juegos para mirar.

También, ha cambiado bastante desde versiones anteriores, por lo que algunos de los tutoriales que hay ahora están fuera de la fecha (no es el "nuevo estilo de bucle de eventos" y la clase Sprite como las principales adiciones.)

Recomiendo descargar los ejemplos (hay un bonito Asteroides clon llamado Astraea incluido) y ver si te gusta el estilo.

9voto

ztangent Puntos 383

Pyglet es bueno (para juegos 2D) si usted nunca la intención de dibujar gráficos vectoriales o primitivas dentro del juego en sí, y sólo se adhieren a cargar imágenes de disco. También es mucho más limpio, porque no es necesario escribir tu propio bucle de juego y tiene que preocuparse acerca de la velocidad y el ritmo, y la capacidad de respuesta.

Sin embargo, si usted tiene que generar gráficos sobre la marcha, y, a continuación, guardarlos, ya sea como una variable o como un archivo y, a continuación, pyglet se vuelve mucho más complicado porque empieza a tener voluntaria alrededor con el bajo nivel de las funciones de OpenGL. En esos escenarios, pygame es mucho más amigable para el usuario, con la representación de software y de la Superficie de la clase. O usted podría utilizar Python Imaging Library y la interfaz con pyglet.

Obviamente, para los juegos en 3D, vas a tener que porquería alrededor con funciones de OpenGL de todos modos, en cuyo caso recomiendo pyglet sobre pygame + PyOpenGL.

5voto

sastanin Puntos 16061

Me gustaría añadir que existe una biblioteca rápida sprite Rabbyt que puede ser un buen complemento para Pyglet.

2voto

Haber mirado en pygame y pyglet encontré pyglet fáciles de recoger y fue capaz de escribir un simple breakout estilo de juego dentro de unos días.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X