Programar Juegos Arcade
con Python y PygameAntes de empezar...
¿Estás aquí porque quieres crear tus propios juegos? Excelente! Aquí tienes algunos vídeos creados por otros estudiantes que han finalizado este curso:
Esta introducción consta de dos partes:
- Preparar tu ordenador para que puedas escribir los juegos.
- Profesiones y perspectivas en el campo de la tecnología.
0.1 Instalando y Arrancando Python
Para empezar, necesitamos instalar dos programas, Python y Pygame. Python es el lenguaje de ordenador con el que programaremos y Pygame es una biblioteca de comandos que nos ayudarán a que escribir juegos sea algo más fácil de conseguir.
0.1.1 Instalación en Windows
Puedes saltarte este paso si en tu ordenador ya están instalados Python y Pygame. Pero si no es así y tienes que instalarlos en tu ordenador Windows, no te preocupes, es muy fácil.
- Ejecuta el siguiente instalador de Python:
ProgramArcadeGames.com/python-3.4.3.msi - Ejecuta el siguiente instalador de Pygame:
ProgramArcadeGames.com/pygame-1.9.2a0.win32-py3.4.msi
Una vez que todo está instalado, arranca Python a través del Integrated Development Environment (IDLE) como se muestra en la Figura 0.1
El archivo original que te hemos proporcionado, lo hemos descargado de la página oficial
de descargas de Python:
http://www.python.org/download/
...y el archivo Pygame original de:
https://bitbucket.org/pygame/pygame/downloads
Observación: Existen muchas versiones de Python y Pygame. Puede ser complicado escoger las versiones adecuadas y que luego trabajen juntas. Yo recomiendo usar los enlaces de ProgramArcadeGames.com en lugar de descargarlos de sus websites oficiales.
Si estás obligada a utilizar una versión distinta de Python de las que están en la lista,
puedes encontrar una versión compatible de Pygame en este website:
www.lfd.uci.edu/~gohlke/pythonlibs/#pygame
0.1.2 Instalación en Mac
La instalación sobre Mac es un poco más liosa, pero no hay nada que no se pueda conseguir. Estos son los pasos:
- Abre un terminal. Haz click sobre “Buscador” luego sobre “Aplicaciones” y por último sobre “Utilidades.”
- Haz doble click sobre “Terminal”
- Podemos enviarle comandos al Mac a la “vieja usanza”, escribiéndolos directamente, en lugar de pinchar y hacer click. Vamos a empezar escribiendo un comando que a lo mejor no lo tienes aún. Este comando es gcc. Escríbleo y pulsa la tecla Enter/Intro. Tu Mac detectará que no tienes este comando y te preguntará si quieres que él lo instale por tí. Avanza y haz lo siguiente.(Si en lugar de eso te dice error: no se ha encontrado el archivo, es que ya lo tienes instalado, por lo tanto, avanza hasta el paso siguiente)
- Instalar XQuartz desde:
http://xquartz.macosforge.org - Ahora, copia y pega, línea por línea, lo siguiente sobre tu terminal:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" sudo brew doctor brew update brew install python3 brew install sdl sdl_image sdl_mixer sdl_ttf portmidi mercurial brew install libogg libvorbis brew install sdl_mixer --with-libvorbis
- Si la respuesta del terminal a la última línea dice 'sdl_mixer already installed’,
Escribe entonces:
brew reinstall sdl_mixer -—with-libvorbis
- Si quieres tener soporte para MP3's y películas, puedes intentar añadir smpeg. Por mi parte
he encontrado que la ayuda es un poco irregular, por lo que yo te recomendaría que te saltases esta
parte y usaras en su lugar archivos Ogg Vorbis. Pero si aún así quieres intentarlo, usa estos comandos:
brew install smpeg
- En este momento ya tienes todas las bibliotecas necesarias. Por último vamos a instalar Pygame. Sustituye
TuNombre por el de tu cuenta de usuario. Si no sabes el nombre de tu cuenta, escribe ls /Users
para que puedas ver todas las cuentas de usuario que existen en tu ordenador.
cd /Users/TuNombre/Descargas hg clone https://bitbucket.org/pygame/pygame cd pygame cd src pip3 install /Users/TuNombre/Descargas/pygame
En este momento, Pygame y Python deberían estar listos y ejecutándose en tu sistema. Python no viene con una aplicación para editar archivos, por ello necesitarás descargarte un IDE como el gratuito Wing 101 IDE.
Es probable que luego de instalar Wing (o el que sea), tu IDE de Python apunte a la versión que por defecto viene instalada de Python en tu Mac, no a la que acabas de instalarte. Por eso, en el terminal, escribe:
which python3
Probablemente obtengas algo como /usr/local/bin/python3, o quizás, otra línea muy larga que contenga la palabra 'Library' en ella. Cópiala del terminal (la línea completa), eso es el “path” hacia tu programa Python. Entonces:
- Abre Wing IDE
- Haz click sobre el menú "Editar", seguido por el submenú "Configurar Python"
- Haz click sobre el botón “Personalizar” Python.
- Pega lo que copiamos hace un momento.
- Haz click sobre ok, Wing te dirá que necesita reiniciar Python. Eso está bien. Ya podrás, una vez que se reinicie, usar la versión de Python que nos hemos instalado.
0.1.3 Instalación Unix/Linux
Las distintas distribuciones Unix y similares (Linux) vienen con el paquete Pygame instalado, o la posibilidad de obtenerlo fácilmente. Si lo que quieres es compilarlo desde la fuente, esto es lo que usé para hacerlo sobre Linux Mint:
# Cargamos los paquetes necesarios sudo apt-get install mercurial libsdl1.2-dev sudo apt-get install libasound2-doc libglib2.0-doc python3-dev sudo apt-get install libsdl-ttf2.0-dev libsdl-image1.2-dev sudo apt-get install libsdl-mixer1.2-dev libportmidi-dev sudo apt-get install libavformat-dev libswscale-dev sudo apt-get install libfreetype6-dev sudo apt-get install libsmpeg-dev # Usamos mercurial para clonar el código hg clone https://bitbucket.org/pygame/pygame # Preparamos e instalamos cd pygame sudo python3 setup.py
El mayor riesgo que corremos con las plataformas UNIX, es que la versión por defecto de Python que viene instalada, puede que pertenezca a la serie 2.x, y que el código de los ejemplos de este libro no pueda ejecutarse. Asegúrate de que estás usando una versión de Python 3.x.
0.1.4 IDE Wing Opcional
Python viene con su propio editor y entorno de trabajo para desarrollar código. Desafortunadamente no es muy bueno. Habitualmente mis estudiantes se encuentran con los siguientes dos tipos de problemas cuando usan el editor por defecto de Python:
Problema 1, cuando trabajamos con varios archivos es difícil llevar la cuenta de todos los que están abiertos. Es fácil olvidarnos de guardar un archivo antes de ejecutar el programa. Cuando esto sucede, el programa se ejecuta con el código antiguo en lugar de hacerlo con el nuevo, algo que produce una verdadera confusión.
Problema 2, si el error se produce en un programa que muestra gráficos, Python se “colgará”. Una vez que esto sucede, es difícil cerrarlo. Además, el mensaje de error que describe el problema del por qué se colgó, estará generalmente sepultado entre muchas líneas siendo difícil su ubicación. Observa la Figura 0.5.
Con el editor Wing resolvemos el problema 1 usando pestañas para cada archivo. También te advertirá que guardes todos los archivos antes de ejecutar el programa. En el caso del problema 2, el depurador de Wing no permitirá que el programa se cuelgue, antes bien, nos llevará inmediatamente a la línea de código donde se ha producido el error. Observa la Figura 0.6.
Por lo tanto, aunque implica instalar un tercer programa, yo recomiendo usar el
editor Wing. Existe una versión gratuita llamada “Wing IDE 101” en:
wingware.com/downloads/wingide-101/
La versión de pago está llena de utilidades extras, bonitas y llamativas, aunque no hay ninguna necesidad de optar por ella. Tiene utilidades tales como el autocompletado del nombre de las variables. Si te sobra algo de dinero probablemente te interese decantarte por la versión de pago.
Suelo emplear, tanto en los vídeos como en el website, el editor por defecto de Python o el editor Wing. Existen muchos otros editores que podemos utilizar también:
Entre ciertos desarrolladores, la discusión sobre “cuál es el mejor editor” tiene un rango similar al de ciertos grupos que discuten sobre “cuál es la verdadera fe.” Es mejor que escojas el que tú prefieras y evites discutir este tópico con otra gente.
0.2 Visualizar Extensiones de Archivo
Es una muy buena idea cambiar la configuración de tu Windows para que te permita visualizar las extensiones de archivo. Habitualmente, un archivo puede tener un nombre como Informe del Libro.docx, donde la extensión .docx le dice al ordenador de que se trata de un documento compatible con Microsoft Word. Por defecto, Windows oculta la extensión .docx si ya existe un programa instalado que lo maneje. Si estás programando, esto de ocultar esa parte del archivo puede ser molesto.
Para mostrar las extensiones de archivo en Windows 7, abre el Panel de Control de tu ordenador. Luego busca “Opciones de Archivo.” Haz click sobre la pestaña “Ver” y desmarca la opción “Ocultar extensiones para tipos de archivos conocidos.”
En Windows 8 trae a primer plano el Explorador de Archivos pulsando las teclas Windows-E. Luego haz click sobre la pestaña “Ver” y asegúrate de marcar la casilla “Extensiones de nombre de archivos.”
0.3 Aprendamos a Crear Juegos y Que Nos Paguen Por Ello
Tan pronto como empieces a programar, verás que se parece mucho a eso que llaman trabajar. Todos somos conscientes que lo que nos gustaría es empezar a cosechar dinero con juegos como World of Warcraft, Eve Online o cualquier otro, ¿no es cierto? ¿Entonces, para qué programar? ¿Por qué alguien saldría a hacer algo como eso?
¿Aprender cómo crear juegos y que me paguen por eso? Mira, yo no te pagaré por eso, pero si aprendes a programar, existe mucha gente dispuesta a pagarte por hacerlo. Estas son las claves:
- Aprende a programar juegos.
- Disfruta haciendo tus propios juegos.
- Escoge la oferta de trabajo que más te guste.
- Empieza a ganar dinero.
¡Un momento, espera, no! ¿En ese orden?
Piénsalo. Tú ya sabes jugar, y cualquiera puede hacerlo. Pero ser un as en los videojuegos no es precisamente una gran hazaña, ni un gran logro existencial, no? En cambio, tú puedes aprender a crear juegos. Esto sí que interesa a la gente.
Luego, mientras te dedicas a estudiar cómo programar juegos, diles a tus padres o colegas que estás estudiando Informática ¿A que suena mucho mejor?
0.3.1 ¿Por Qué Estudiar Informática?
Volvamos al tema monetario. De acuerdo con el Informe Salarial de abril del 2014 de la National Association of Colleges and Employers (NACE), las ingenierías son las disciplinas mejor pagadas, y las ciencias computacionales las segundas.
Salario Promedio Por Disciplina | |
Título Universitario | Oferta Salarial Promedio |
Comercio | $53,901 |
Ciencias de la Comunicación | $43,924 |
Ciencias Computacionales | $61,741 |
Enseñanza | $40,863 |
Ingenierías | $62,719 |
Ciencias de la Salud | $51,541 |
Humanidades & Ciencias Sociales | $38,365 |
Matemáticas & Ciencias | $43,414 |
(Estudio salarial de la NACE, datos de abril 2014.)
Mientras aprendes a programar juegos, podrías estar a la vez estudiando para obtener el título en una de las cuatro carreras universitarias de cuatro años mejor pagadas. Y siendo honestos, los grados en ingeniería suelen tardar cinco años. Por eso, la Informática es una muy buena apuesta como carrera universitaria.
¿Por qué se les paga tan bien a los estudiantes de informática? Pues porque hay una gran demanda, y pocos estudiantes en comparación. Observa la Figura 0.8 y la Figura 0.9.
¿Y qué tal una carrera escolar de dos años en programación? Después de todo, dos años de escuela es más barato que cuatro de universidad. Mucho más barato. Pero antes mira la siguiente tabla. Analiza estos datos sobre “Salario Promedio según Nivel Educativo” antes de decidirte por una carrera de dos años:
Salario Promedio según Nivel Educativo | |
---|---|
Vocacional/Módulo (2 años) | $65,408 |
Secundaria | $75,701 |
Instituto | $79,370 |
Militar | $84,131 |
Graduado Universitario (4 años) | $85,815 |
Grado de Máster | $97,811 |
Grado de Doctor | $113,600 |
De acuerdo con lo datos del estudio de Dice.com, una persona con una carrera tecnológica de dos años gana $20,000 menos que una persona graduada en una carrera de cuatro. Es más, lo tienen peor que un graduado de Instituto. Por eso, lánzate y haz una carrera universitaria y olvídate de un Módulo de dos años.
Este análisis se ha hecho en función al Estudio Salarial Técnico de 2013-2012 de Dice.
Observa que el salario de la lista no es el promedio salarial inicial. Los números
representan el salario promedio de todos los trabajadores sin importar el grado de experiencia.
Por supuesto, opino que el Simpson College posee el mejor departamento de Informática
del medio oeste:
http://simpson.edu/computer-science
0.3.2 Sacar El Mejor Provecho De Este Curso
¿Esperas que tu tiempo aquí valga la pena? ¡Pues responde a las preguntas de cada capítulo! No te las saltes, son fundamentales para comprender todo el material.
¡Haz los talleres! Son más importantes aún. Aprender sólo leyendo el material es igual de útil que intentar ser una estrella del baloncesto leyendo solo un libro.
¡Practica! Es posible que veas otra gente que no necesita practicar. No parece justo. O, a lo mejor, eres más listo que otros, pero ellos empezaron antes que tú. Tampoco parece justo. Pero así es la vida. Acostúmbrate. Practica.
¿Te vas a tomar en serio este curso? ¡Bien! ¿Sabes que puedes ahorrarte mucho tiempo, y copiar las respuestas y los talleres de Internet? ¡Claro!, de la misma forma, también puedes sacarte el carnet del gimnasio y pedirle a otra persona que haga los ejercicios por ti. Tiene el mismo sentido.
¿En serio, por qué demonios estás pensando en copiar de otro? Si no estás dispuesto a trabajar, sería mejor que te fueras de este curso y empezaras a rellenar solicitudes de empleo en McDonald's.
Si leer mucho no es lo tuyo, la mayor parte de la información la tienes disponible en forma
de vídeos (en inglés) Puedes saltarte enteramente el texto e irte directamente a los vídeos.
Puedes hallarlos en la siguiente playlist de YouTube:
http://www.youtube.com/playlist?list=PL1D91F4E6E79E73E1
Lo que sí no puedes es aprender sin hacer los ejercicios. Primero lee, luego pregunta.
Haz los talleres, luego pregunta. Haz los cuestionarios, luego pregunta. Mira los vídeos.
Y por último, pregúntale a tu profesora.
0.3.3 Envía Tus Comentarios
Este es el libro que empleo para enseñar en mi clase del Simpson College:
Computer Science 150
Fundamentals of Computing I
Existe una versión impresa en Amazon y en Barnes and
Noble. También una versión online en:
ProgramArcadeGames.com
El objetivo, tanto del libro como del website, ejercicios, talleres y vídeos, es enseñar
conceptos básicos de informática y conseguir que los estudiantes programen sus propios
juegos tan pronto como sea posible.
Mándame un mensaje!
Si los usas para estudiar por tu cuenta o para otra clase, por favor, mándame un mensaje. Cuanta más gente use estos recursos, más esfuerzos pondré en mejorarlos.
Unos cuantos institutos me han comentado que usan estos materiales. Si perteneces a alguno de ellos, y te han gustado, considera matricularte en el Computer Science Department del Simpson College. Nos encantaría tener la oportunidad de poder trabajar contigo. Puedes contactar conmigo personalmente o con admisión para mayor información.
Si observas cualquier error u omisión en este libro, por favor envíame un e-mail. Quiero que esto
tenga el mejor contenido y calidad posibles.
Dr. Paul Vincent Craven
Department Head, Computer Science Department
Simpson College, Indianola, Iowa, 50125 USA
paul.craven@simpson.edu
You are not logged in. Log in here and track your progress.
English version by Paul Vincent Craven
Spanish version by Antonio Rodríguez Verdugo
Russian version by Vladimir Slav
Turkish version by Güray Yildirim
Portuguese version by Armando Marques Sobrinho and Tati Carvalho
Dutch version by Frank Waegeman
Hungarian version by Nagy Attila
Finnish version by Jouko Järvenpää
French version by Franco Rossi
Korean version by Kim Zeung-Il
Chinese version by Kai Lin