Cómo aprender Pygame

Pygame es un conjunto multiplataforma de módulos de Python diseñados para crear juegos. Los módulos están diseñados para ser simples, fáciles de usar y divertidos, una parte clave de la ideología de Pygame. En esta publicación, te mostraré cómo usar Pygame y compartiré consejos y recursos para aprenderlo..

Esta guía asume que ya sabes cómo codificar en Python. Si no es así, echa un vistazo a The Best Way to Learn Python, Learn Python, The Python Tutorial, Codecademy o Learn Python, la manera más difícil de comenzar.

¿Por qué Pygame??

Es sencillo

Python es a menudo considerado como el mejor "primer lenguaje de programación" para aprender, y ha sido elogiado por su sintaxis fácil de aprender y su curva de aprendizaje gradual. Por esta razón, muchos programadores nuevos comienzan por aprender Python. 

Pygame extiende Python, adopta la filosofía de Python y pretende ser fácil de usar. Además, los aspirantes a nuevos desarrolladores de juegos sin experiencia en programación pueden usar Pygame, ya que pueden capturar rápidamente Python primero.

Tiene una gran comunidad

Pygame ha estado disponible desde 2000 y, desde entonces, una gran comunidad se ha desarrollado a su alrededor. La comunidad afirma que Pygame se ha descargado millones de veces y ha tenido millones de visitas a su sitio web ”. Como resultado de la gran comunidad, los errores informados se corrigen rápidamente, hay ayuda disponible y se han agregado una gran cantidad de funciones adicionales. Además, la comunidad asegura que el desarrollo de Pygame es divertido; por ejemplo, se ejecuta una competencia bianual de juegos de Python para promover la plataforma. El tamaño de la comunidad es lo que separa a Pygame de los otros marcos de juego de Python.

Es de código abierto

El hecho de que Pygame sea de código abierto significa que la comunidad generalmente corrige los errores muy rápidamente. También significa que puedes extender Pygame para que se adapte a tus necesidades e incluso devolver a la comunidad. 

Pygame está escrito en C, y echar un vistazo al código es una excelente manera de entender mejor cómo funcionan Python y Pygame.

Es altamente portátil

Pygame es altamente portátil, ya que admite Windows, Linux, Mac OS X, BeOS, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX y QNX. Además de estas plataformas informáticas, existe un subconjunto de Pygame para Android. Además, Pygame no requiere OpenGL y puede usar DirectX, WinDIB, X11, Linux framebuffer y muchas otras API para generar gráficos. Esto asegura que una mayor cantidad de usuarios pueden jugar tu juego.

Empezando

Instalación

Antes de instalar Pygame, asegúrate de haber instalado Python. Notará que hay dos versiones de Python: Python 2 y Python 3. Personalmente, le recomiendo que use Python 2 junto con Pygame, ya que Python 2 es más frecuente y hay módulos de Pygame que no son compatibles con Python 3. Sin embargo, Todavía sería capaz de hacer grandes juegos usando Python 3.

Después de asegurarte de que se está ejecutando una versión de Python en tu máquina, puedes descargar Pygame desde su sitio web de descarga..

IDEs

Además de instalar los módulos de Pygame, te recomiendo que instales un IDE de Python, que te facilitará la creación y compilación de juegos..

Tenga en cuenta que un entorno de desarrollo integrado, conocido como IDLE, ya viene incluido con Python. Sin embargo, IDLE ha sido criticado frecuentemente por problemas de usabilidad y personalmente no puedo recomendarlo.

Mi preferencia personal es PyScripter, pero PyCharm, Wing IDE, Python Tools para Visual Studio y Netbeans son opciones viables. Como siempre, la elección de un IDE se reduce a las preferencias personales, por lo que te sugiero que pruebes todos ellos y veas cuál te gusta más.. 

Recursos

Aquí hay algunos recursos que te ayudarán a comenzar con Pygame..

Universidad de colorado

La Universidad de Colorado ofrece una gran introducción a Pygame. Las diapositivas adjuntas asegurarán que usted sepa y cómo usar los componentes clave de Pygame. Después de leer este documento, debe comprender los conceptos básicos de Pygame.

Tutoriales

Hay una multitud de tutoriales disponibles que te enseñarán Pygame paso a paso. He seleccionado tres de mis favoritos a mano:

  • Tutoriales de PyGame - Introducción simple a la programación de juegos: cubre las características básicas de Pygame
  • Tutorial básico de PyGame: una serie de siete partes que comienza desde el principio, con una sección particularmente excelente sobre Música y efectos de sonido
  • El libro de juegos de Python: comienza con lo básico, pero enseña conceptos avanzados que incluyen sprites, detección de colisiones de píxeles perfectos y desplazamiento

Serie de videos

Game Development en Python 3 con Pygame es una serie de videos tutoriales disponibles como una lista de reproducción de YouTube. La serie contiene 29 videos, comenzando con la visualización de imágenes y la representación de texto, y continúa con la enseñanza de la animación y la entrada del usuario. Si prefieres los tutoriales en video a los tutoriales basados ​​en texto, no te pierdas esta serie.. 

Libros

Si eres un principiante tanto de Python como de Pygame, te recomiendo echar un vistazo a Inventa tus propios juegos de computadora con Python. Este libro comienza enseñándote los conceptos básicos de Python y respalda esta instrucción mostrándote cómo hacer juegos simples de línea de comandos. Después de asegurarse de que comprende los conceptos básicos de Python, el libro continúa enseñando Pygame..

Por otro lado, si tienes ganas de saltar directamente a Pygame, Making Games with Python & Pygame es el libro para ti. Al final de este libro, habrás creado 11 juegos y estarás listo para jugar solo.. 

Todos estos libros son gratuitos y están en línea, por lo que puede comenzar de inmediato.!

Próximos pasos

Lea la Documentación y Wiki

Echar un vistazo a la documentación es un paso importante en tu camino hacia el dominio de Pygame. Aquí encontrará documentos, tutoriales y referencias que cubren todas las características de Pygame. La documentación te permitirá conocer todos los aspectos de Pygame, yendo más allá de lo que hubieras aprendido a través de los recursos anteriores..

El Wiki de Pygame también ayudará a responder cualquier pregunta que tengas sobre la plataforma, así que no dudes en echar un vistazo..

Mira el codigo

Mirar el código te ayudará a entender cómo interactúan las diferentes partes de Pygame para hacer un juego completo. Además, los ejemplos te mostrarán las mejores prácticas, y puedes encontrar algunos trucos en el camino.

Consulte los ejemplos oficiales de Pygame para obtener detalles sobre cómo usar módulos individuales, o visite los proyectos públicos de Pygame en GitHub para ver un conjunto completo de código. 

Participa en la comunidad.

Pygame tiene un canal de IRC activo y una lista de correo. (La lista de correo también está disponible en una interfaz similar a un foro). Los miembros de la comunidad están ansiosos por ayudar a los principiantes, así que no tenga miedo de hacer preguntas. 

Una vez que te conviertas en un experto en Pygame, contribuye de nuevo a la comunidad y ayuda a otros. Enseñar a otros lo ayudará a aprender y solidificará los conceptos que ya conoce. 

Haz tu propio juego

Los recursos proporcionados anteriormente serán más que suficientes para obtener una comprensión sólida de Pygame. Además, si trabajas a través de los recursos, habrás realizado múltiples juegos. Sin embargo, te insto a que hagas tu propia creación; hacer más que construir Tic-Tac-Toe o Concentración. Cualquiera puede seguir un tutorial para hacer un juego. Deja que tu creatividad fluya y pon a prueba tus habilidades construyendo un original juego.  

Consejos de desarrollo

Grupos de uso

Pygame viene con una característica realmente poderosa conocida como grupos, a través de pygame.sprite.Group clase. Un grupo es esencialmente un contenedor para objetos de sprites..

 Por ejemplo, si estoy creando múltiples Bala sprites, puedo agregarlos a un grupo llamado balas:

bullets = pygame.sprite.Group () para i en el rango (10): bullets.add (Bullet ())

Trabajar con grupos es mucho más rápido que trabajar con sprites individuales. Simplemente puedes llamar Group.update () para actualizar todos los sprites dentro de un grupo, o Grupo.draw () Blit el contenido de la Grupo para usted Superficie. Además, los grupos hacen que la detección de colisiones sea más fácil, porque Pygame tiene un método para verificar las colisiones entre dos grupos: pygame.sprite.groupcollide ()

Convierte tus superficies

Asegúrese de que está convirtiendo un Superficie cada vez que creas uno llamando al convertir() método. Este método cambia el formato de píxel de un Superficie para que coincida con la de la pantalla Superficie. Si no se llama a este método, tendrá que realizarse una conversión de píxeles cada vez que compense algo en su cuenta. Superficie-una operación muy lenta.

 Por ejemplo, en lugar de:

ballPicture = pygame.image.load ('ball.png')

 llamada:

ballPicture = pygame.image.load ('ball.png'). convert ()

o si necesitas configurar el alfa:

ballPicture = pygame.image.load ('ball.png'). convert_alpha ()

Tenga en cuenta que convert_alpha () no resultará en el mismo aumento de rendimiento que convertir(), ya que el formato de píxel no será una coincidencia exacta para el Superficie ventana. Sin embargo, se traduce en una mejor velocidad de blit.

Actualización vs Flip

Ambos pygame.display.update () y pygame.display.flip () Actualizar los contenidos de la ventana del juego. Sin embargo, simplemente llamando a estos métodos, actualice toda la pantalla, reduciendo considerablemente la velocidad de cuadros. En su lugar, considere solo actualizar una parte específica de la pantalla (donde se realicen cambios) llamando al pygame.display.update ()y pasando un rect Representando el área a ser actualizada en el método. Al hacer esto, verás una gran mejora en el rendimiento..

Tenga en cuenta que, a veces, la pantalla completa deberá actualizarse, y en estos casos ambos métodos funcionarán bien. 

Modulos adicionales

Recuerda que mencioné la comunidad grande y útil de Pygame anteriormente en la publicación. Te recomiendo que aproveches esta comunidad descargando módulos adicionales hechos por sus miembros. Estos módulos ayudarán a facilitar el rápido desarrollo de su juego y simplificarán el proceso de creación del juego..

 Mis favoritos personales incluyen:

  • Pyganim: facilita la adición de animaciones de sprites a tus juegos
  • input.py: simplifica el control de manejo en Pygame cuando se usan múltiples métodos de control
  • Python Game Utilities: una gran colección de utilidades de Pygame

Puedes encontrar más bibliotecas en el sitio web de Pygame..

Juegos ejecutables

Si quieres que tu juego sea verdaderamente multiplataforma, debes considerar el escenario en el que tus usuarios no tienen Python y Pygame instalados en sus máquinas.

Considere la extensión py2exe para hacer ejecutables de Windows y la extensión py2app para crear aplicaciones para Mac OS X. 

Escaparate

Pygame no se ha utilizado con mucha frecuencia comercialmente, ya que Python no es conocido por sus capacidades de desarrollo de juegos. Sin embargo, Pygame se ha utilizado para crear muchos juegos independientes exitosos:

Galcon

Galcon es un juego galáctico de acción y estrategia para jugadores múltiples, y puede ser el juego más prominente desarrollado con Pygame. Recibió como premio al Top 10 de Juego del Año en 2007 de GameTunnel, uno de los primeros sitios de revisión de juegos independientes..

Trastes en el fuego

Frets on Fire, un clon de Guitar Hero de código abierto fue creado en Pygame, como una entrada al concurso 2006 para el desarrollo de juegos por Unreal Voodoo..

Chicas peligrosas de secundaria en problemas!

El galardonado juego de rol Dangerous High School Girls in Trouble !, del desarrollador independiente Mousechief, fue finalista en IndieCade 2008.

PyWeek

PyWeek es un desafío bianual de programación de juegos que solo acepta juegos creados en Python. Por lo tanto, muchos envíos se crean utilizando Pygame. Una lista de ganadores anteriores está disponible en el sitio web de PyWeek.

Conclusión

En esta publicación, te he dado una introducción al desarrollo de juegos con Python y Pygame. Espero haber tenido éxito en interesarte en Pygame y en enseñarte más al respecto. No dudes en hacer tus preguntas aquí o en varios foros de Pygame. Ahora estás listo para comenzar tu viaje en el mundo de Pygame. La mejor de las suertes!