Creación de videojuegos 2D con Pilas Engine

Presentación:

El desarrollo de juegos de computadora es una actividad desafiante, interactiva, y creativa en la que podemos volcar nuestra imaginación, además es multidisciplinaria: están involucradas actividades de programación, diseño gráfico, producción y creación de audio, diseño de niveles, etc.

En este taller principalmente abordaremos el tema de programación utilizando cómo lenguaje de programación Python y Pilas Engine cómo framework de desarrollo.

Partiremos desde lo general: conociendo las herramientas que utilizaremos y su utilidad en el taller. llegaremos hasta lo particular lo cual implica desarrollar y convertir una idea propia en un videojuego e ir encarando y resolviendo cada uno de los problemas que enfrentemos en el desarrollo.

A lo largo del taller los participantes tendrán la oportunidad de exponer a sus compañeros problemas del desarrollo de su videojuego que no puedan resolver: para llegar a una solución con la aportación de todos los participantes.

Finalizando el taller cada participante platicará el proceso de creación de su videojuego al grupo: explicando su idea inicial, el resultado que esperaba obtener, el resultado final, el diseño de su código y el porqué del mismo, así cómo los elementos que le parecieron más desafiantes de desarrollar. Esto con el fin de obtener retroalimentación y motivación para seguir aprendiendo.

Justificación:

Desde 2012 he venido impartiendo talleres y charlas en eventos, tanto en el ITCM cómo en otras instituciones educativas sobre la creación de videojuegos 2D utilizando herramientas de software libre cómo una actividad que fomenta y practíca la creatividad, el descubrimiento, el auto-aprendizaje y la invención, además desarrolla o incrementa nuestras habilidades de programación de software. En todas las ocasiones los asistentes han respondido entusiasmados, con ganas de aprender más, lamentablemente hay muchas inquietudes que no pueden cubrirse en un par de horas.

Es por ello la razón de este taller, con el fin de introducir y/o ampliar los conceptos sobre creación de videojuegos 2D para que cada de los participantes recorra el camino desde la concepción de una idea para su videojuego hasta la construcción del mismo, compartiendo a la vez su proceso de aprendizaje con otras personas.

Objetivo:

Proveer los conceptos, técnicas, practicas y herramientas para la creación de videojuegos 2D con el fin de que el participante cree un videojuego 2D partiendo de una idea propia.

Contenido:

1. Conociendo las herramientas con las que daremos vida a nuestros videojuegos

Se trabajará con el lenguaje de programación Python y el framework para desarrollo de videojuegos Pilas Engine: se conocerán las carácteristicas, ventajas y desventajas de las herramientas. Se definirá el flujo de trabajo.

2. Conceptos del desarrollo de videojuegos 2D

En este tema se analizaran ejemplos de videojuegos con el fin de identificar sus elementos y su funcionamiento, se conoceran y reconoceran las diferentes disciplinas aplicadas de la creación de videojuegos. Se definirá y modelará la idea del videojuego ha realizar a lo largo de la duración del taller.

3. Descubriendo las entrañas de Pilas Engine

El taller estará guiado por el marco de trabajo que nos ofrece Pilas Engine, para comprender y aprender a utilizar cada uno de los elementos que componen un videojuego se irán analizando ejemplos y explicando características con el fin de implementar los conocimientos en el desarrollo de nuestra idea de videojuego.

3.1. Actores

Los actores representan cualquier elemento gráfico dentro de nuestro videojuego, cómo por ejemplo un personaje, el puntaje que va incrementando cada vez que recojes una moneda o incluso el menú de inicio. Conoceremos cual es la estructura de un actor y cómo crear los propios para nuestro videojuego.

3.2. Habilidades

Dotar de habilidades a los actores de nuestro videojuegos es cómo darles super poderes, la habilidad de correr a la velocidad de la luz, de teletransportarse, de volar, de saltar muy pero muy alto!, son sólo algunas ideas, al conocer la cómo crear una habilidad podrás echar a volar tu imaginación para construir la habilidad que desees.

3.3. Comportamientos

Los comportamientos son pequeñas o grandes tareas que hacen los actores, un enemigo resguardando una puerta dando repetidas vueltas de izquierda a derecha o de arriba a abajo evitando que tu héroe pase: es sólo una de las muchas ideas que puedes convertir a comportamientos.

3.4. Escenas

Los videojuegos comunmente contiene una escena de menú con las opciones y acciones principales a realizar: cómo empezar a jugar, tiene una escena de juego en donde todos los actores están interactuando y tu a la vez con ellos através del teclado o el mouse, una escena de créditos dónde está el nombre de los creadores y mucha información más. Es indispensable conocer estos elementos para estructurar nuestros videojuegos.

3.5. Tareas

Las tareas nos permiten realizar acciones periódicamente, por ejemplo notificarte cada 3 horas que debes alimentar a tu personaje, llevarlo al gimnasio, o mejor aún: que haga esas tareas por si mismo.

3.6. Eventos

Los eventos es una excelente forma en los actores o cualquier elemento de nuestro videojuego se puede comunicar entre si. Imagina que es cómo comunicarse en un chat grupal pero entre actore de tu videojuego.

3.7. Sistema de colisiones

Aplastar una tortuga para debilitarla, que la bala de una arma mate al enemigo, muros que no puedes traspasar, pasadisos secretos, son sólo alguna situaciones que tendrás que implantar en tus videojuegos, para ello es necesario tener un sistema de colisiones que detecte la posición de los actores y ejecute las acciones que tu desees.

3.8. Motor de física

Crear mundos virtuales para nuestros videojuegos que tengan semenjanzas con la realidad es muchas veces necesario, el motor de físicas nos permite hacer que un actor con forma de pelota o caja se comporten cómo tal, podamos empujarlos, impulsarlos, arrastrarlos, entre muchas otras acciones.

3.9. Controles

Los videojuegos se caracterizan por darnos la oportunidad de interactuar con lo que pasa dentro de ellos ya sea através de el teclado, el mouse o incluso un control de consola. Este tema estará enfocado a conocer los controles, aprender cómo gestionarlos e implementarlos en nuestro videojuego.

Fuentes de información:

Recursos didácticos:

Irving Rodríguez

irving [dot] prog [at] gmail [dot] com


In [3]:
import IPython.core.display
IPython.core.display.HTML("""
<style type="text/css">
div.input {
width: 105ex; /* about 80 chars + buffer */
}
 
div.text_cell {
width: 105ex /* instead of 100%, */
margin: 0 auto;
}
 
div.text_cell_render {
font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
line-height: 180%; /* added for a line spacing of text. */
text-indent: 50px;
font-size: 1.1em;
width: 105ex; /* instead of 'inherit' for shorter lines */
margin: 0 auto;
}
 
/* Set the size of the headers */
div.text_cell_render h1 {
font-size: 18pt;
}
 
div.text_cell_render h2 {
font-size: 14pt;
}
 
.CodeMirror {
 font-family: Consolas, monospace;
 }
 
.rendered_html ol {list-style:decimal; margin: 1em 2em;}
 
</style>
""")


Out[3]:

In [ ]: