Mi participación en PyWeek6

martes, abril 15, 2008

PyWeek es una competencia de programación rápida de videojuegos en Python (con la ayuda de cualquier librería Py*) que se lleva a cabo semestralmente con el objetivo incentivar el uso de estas herramientas en la creación de juegos. La edición en la que he participado es la sexta. Para más información visita PyWeek 6.

El evento tiene un calendario bien definido. Primero se lleva a cabo la etapa de registro de los participantes (individual o por equipos). Luego vienen las votaciones del tema y cuando se ha definido el tema es que viene la parte buena... ECHAR CÓDIGO! El tema que ganó la votación fue Robot. La fase de programación tuvo inicio el domingo 30/03/2008 a las 00:00 UTC y terminó el domingo 06/04/2008 a las 00:00 UTC (una semana completa).

Pues sí, una semana entera para crear un juego completo y funcional relacionado con "Robots". Parece mucho tiempo pero déjenme decirles que no lo es :D. La creación del juego no solo implica el motor del juego (colisiones, plataformas, sprites, enemigos, etc) sino también música, la historia, cutscenes, gráficos, niveles e incluso bosses! Un arduo trabajo incluso para un equipo.

Mi equipo estaba conformado por Mike Burns (aka pymike), Ian Mallet (aka geometrian) y yo (aka satanas). Sin embargo, como en las tareas de la escuela, terminamos trabajando en el juego Mike y yo. Al inicio teníamos una vaga idea del tema del juego (sabíamos que haríamos un clásico de plataformas en 2D) pero nada claro aún. Luego tuvimos una tormenta de ideas y empezaron a surgir algunas como: robots, rehenes, energía, aliens, disparos, plataforma, invasión, científicos y muchas otras. Después de elucubrar por mucho rato logramos hilvanar la historia:
Unos alienígenas llegaron a la tierra con la idea de conquistarla y someter a todos los humanos. Secuestraron uno de los laboratorios más importantes del mundo para construir un gran cañon que dispararía ondas electromagnéticas para hipnotizar y volver zombies esclavos a todos los habitantes del planeta. Sin embargo un error de cálculo de los aliens hizo que el laboratorio se quedara sin energía.

Los científicos decidieron aprovechar este hecho para contraatacar e intentar detenerlos. Su única esperanza era un robot prototipo diseñado para misiones espaciales. El robot aún no estaba terminado, no tenía contruida su fuente de energía, pero era lo único que tenían y si no lo enviaban deberían resignarse a su destino. Colocaron una batería temporal al robot y lo enviaron a luchar contra los aliens.

A partir de ese momento entra el juego en acción. Debes liberar a todos los rehenes y estar pendiente de la energía porque se va disminuyendo a medida que transcurre el tiempo. Para recargarla debes pararte sobre unos recargadores de energía.

Fue una semana intensa. Mucho desarrollo, muchas horas de estrés y trabajo bajo presión, unas cuantas discusiones pero afortunadamente todo salió bien! No alcanzó el tiempo para pulir el menú, ni para agregar cutscenes, ni historia... mucho menos para una animación al final del juego. Pero la jugabilidad esta muy pulida y en eso nos habíamos enfocado. Un buen sistema de colisiones, buenos gráficos para los sprites y una pequeña cuota de dificultad ;). El resultado http://media.pyweek.org/dl/6/MT/Robolts-0.4.7.zip . Aquí el perfil de nuestro equipo Magma Team. Los invito a que lo prueben y den su opinión. Necesitan instalar Python y PyGame. Pueden encontrar los instaladores y las instrucciones para instalarlo en http://www.python.org/download/ y en http://www.pygame.org/download.shtml

Las cartas están echadas, ahora solo falta esperar por el resultado. Si se cumple el cronograma al pie de la letra éste domingo 20/04/2008 a las 00:00 UTC deberíamos tener los resultados de la contienda. Esperemos todo salga bien y al jurado le guste nuestro juego :D

Los dejo con un screenshot del juego.