python - para - tutorial pygame
Diferencias entre las bibliotecas de juegos Python Pygame y Pyglet? (5)
Estaba considerando Pygame y Pyglet para un pequeño shooter en 2D, y después de ver el código fuente y algunos tutoriales fui con Pyglet. Estaba muy feliz con los resultados.
Pyglet funcionó de inmediato y fue agradable para trabajar, y conceptualmente muy limpio. Sin duda tenía una sensación Pythonic: se podía obtener un ejemplo sencillo y legible que funcionaba muy rápido, y utiliza decoradores con buenos resultados para el manejo de eventos. Tampoco forzó una estructura de programa particular, lo que me facilitó mezclar el modelado de física de Pymunk ( http://code.google.com/p/pymunk/ ).
Si bien está basado en OpenGL y puede usar esas características para efectos especiales, pude hacerlo bien sin ningún conocimiento de ellos.
También funciona bien con py2exe y py2app, lo cual es importante porque mucha gente no tiene instalado un intérprete de Python.
En el lado negativo, hay menos información al respecto en la web porque es más reciente, así como menos juegos de muestra para mirar.
Además, cambió un poco con respecto a las versiones anteriores, por lo que algunos de los tutoriales que están allí ahora están desactualizados (existe el "nuevo ciclo de eventos de estilo" y la clase Sprite como principales adiciones).
Recomiendo descargar los ejemplos (hay un buen clon de Asteroids llamado Astraea incluido) y ver si te gusta el estilo.
He tenido cierta experiencia con Pygame, pero parece que hay mucho alboroto alrededor de Pyglet en 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 como en facilidad de uso?
Finalmente, ¿dirías que uno es más pitónico que el otro?
Después de haber analizado tanto pygame como pyglet, encontré que era más fácil encontrar pyglet y pude escribir un juego de estilo sencillo en pocos días.
Pygame: licencia LGPL
Pyglet: licencia BSD
Pygame confía en las bibliotecas de SDL
Pyglet es una biblioteca de python pura con menos dependencias, creo que requiere una mejor comprensión de OpenGL
Pygame está aquí por mucho tiempo, mucha gente lo usó
Pyglet es una nueva lib
Pygame está orientado al desarrollo de juegos (cursores, sprites, soporte de joystick / gamepad)
Pyglet tiene un propósito más general (aunque tiene una clase Sprite)
También encontré esta discusión en la lista de correo de usuarios de pyglet : de pygame + pyopengl a pyglet
Descargo de responsabilidad: yo no uso ninguno todavía, solo intenté algunos tutoriales ;-)
Pyglet es bueno (para juegos en 2D) si nunca intentas dibujar gráficos vectoriales o primitivos dentro del juego en sí, y simplemente seguir con la carga de imágenes desde el disco. También es mucho más limpio porque no hay necesidad de escribir su propio ciclo de juego y debe preocuparse por la velocidad, el tiempo y la capacidad de respuesta.
Sin embargo, si alguna vez tiene que generar gráficos sobre la marcha, y luego guardarlos, ya sea como una variable o como un archivo, entonces pyglet se vuelve considerablemente más complicado porque comienza a tener que perder el tiempo con las funciones de OpenGL de bajo nivel. En esos escenarios, pygame es mucho más fácil de usar, con su procesamiento de software y clase Surface. O podría usar Python Imaging Library e interconectarlo con pyglet.
Obviamente, para los juegos en 3D, vas a tener que jugar con las funciones de OpenGL de todos modos, en cuyo caso recomiendo Pyglet sobre pygame + PyOpenGL.