Eclipse PyDev + PyGame - Programando juegos en Python
Publicado el Viernes, 30 de abril de 2010A raíz de varias conversaciones en el trabajo, nos decidimos a comenzar a implementar un videojuego. Hace tiempo que venimos comentando la idea, pero nunca nos habíamos puesto a hacer algo concreto. Hoy Pablo vino con la noticia que los otros dos interesados en el proyecto "ya habían comenzado", y que lo iban a implementar en Flex... ("así practicábamos").
En el intercambio de bromas (que si en C, Assembler...), insistí en usar PyGame, la biblioteca orientada al desarrollo de videojuegos en 2D orientada al manejo de Sprites. Al llegar me puse a probar cosas. Por suerte la documentación de PyGame es mucha, y bastante simple. Iván, otro de los involucrados en el proyecto, ya estuvo jugando un rato con PyGame también.
No tocaba Python desde el post Primeros pasos con Python (donde tampoco llegué demasiado lejos). Pero no costó demasiado reescribir y adaptar los ejemplos de código que encontré. Lo de indentar es una muy buena práctica y no se hace tan difícil, lo que cuesta es no poner un ";" al final de cada línea.
Configurando Eclipse
Esta vez no usé la distribución de EasyEclipse. Descargué desde Eclipse.org la versión más liviana que encontré (C/C++ 79Mb) y le instalé el plugin de PyDev:
Agregamos nuevo repositorio de instalación para Eclipse, y pegamos el URL:
http://pydev.org/updates/
Elegí un nuevo directorio de trabajo, en ~/workspace/python y lo seleccioné por defecto.
Ahí mismo descarguéla biblioteca PyGame:
- pygame-1.9.1release.tar.gz ~ 1.4M - código/documentos/ejemplos en formato unix
En el directorio examples encontramos varios ejemplos de código para ayudarnos a empezar con pyGame. El archivo readme.txt muestra un resumen de cada ejemplo.
Para agregar las bibliotecas de PyGame a nuestro proyecto, vamos a las propiedades, PyDev - PYTHONPATH y agregamos la biblioteca externa:
Y ya estamos prontos para salir programando. Todavía me falta muchísima práctica con Python, ni que hablar de PyGame. Sin embargo, en pocas líneas ya pude levantar una ventana con Sprites y darles movimiento. Cuando quise aprolijar el código y separar en clases, los ojos ya no daban más. Me confundí un poco con la sintaxis del lenguaje, así que dejé para otro momento. A veces la ansiedad de querer sacar algo andando rápido nos hace saltear documentación, pero veo que necesito leer algo más para poder programar algo prolijo y "mostrable".
Tengo al menos dos ideas de videojuegos "simples" en 2 dimensiones, probablemente ideales para ser implementados con estas herramientas. Espero que pasen de idea a algo concreto y visible. Pero con estas cosas "hobby", los tiempos nunca dan...
Al menos somos varios involucrados en el proyecto, ya comentaré cómo avanza.
brief rundown of what you get. The source code for these examples
is in the public domain. Feel free to use for your own projects.
5 comentarios en este post
Feed de comentarios-
de la red – 30/04/2010 « Tecnologías y su contexto |
30 abril. 2010 - 23:43
[…] Eclipse PyDev + PyGame – Programando juegos en Python […]
Pablo (implicado) 30 abril. 2010 - 19:20
No pretendo sacar mérito al autor, pero lo de PyGame lo tiré como opción hace tiempo.
En cuanto esté listo el repositorio prometo aportar mi no-mucha-experiencia en PyGame, pero bajo ningún motivo pienso usar Eclipse.
fernando 30 abril. 2010 - 20:16
Sí, era la opción obvia. Pero mi insistencia era por la amenaza de hacerlo en Flex…
Ya hablamos con Ivo, a ver si la semana que viene arrancamos a programar algo tipo “Space Invaders” para agarrarle la mano.
Alejandro Segovia 6 mayo. 2010 - 13:53
Hola Fernando,
Realmente Pygame es una biblioteca excelente, construida sobre SDL, que provee muchísimas facilidades para hacer cosas cotidianas como leer imágenes en distintos formatos y controlar el loop de eventos del programa.
Ya que están comenzando de cero, te recomendaría que veas si no les conviene arrancar con Pygame2 desde el principio.
Aún está en beta, pero en algún momento se va a realizar el cambio y lo que hoy conocemos como Pygame probablemente quede como Legacy.
Saludos,
Ale.-
fernando 6 mayo. 2010 - 15:27
Gracias por el consejo.
Vamos a aprovechar ya que estamos en cero con PyGame (y con Python también :P) de aprender con lo nuevo.
¿Algún otro tip que nos puedas dar vos que andas en el tema?
Saludos Ale!