Creando juegos en Python con Cocos2d

irobot

Edmundito me pasó esta librería para hacer juegos en Python llamada cocos2d, una alternativa para el venerable PyGame con el que ya hemos hecho un tutorial en este blog. Aparte de los chistes fáciles que se pueden hacer a partir de la instrucción «import cocos» para comenzar a echar código no puedo sino sugerirles a los que usan Python que le echen un vistazo a esta librería que ya comienza a utilizarse para algunos juegos.

Keynote del Global Game Jam con Kyle Gabler

Mientras todavía termino de salir del letargo del descanso de este fin de semana, les presento el keynote que organizaron los del Global Game Jam para todas las sedes. El keynote lo da Kyle Gabler, de 2D Boy y creador de World of Goo, y trata sobre 7 pasos para hacer un juego en 48 horas. No tiene desperdicio:

UPDATE: Versión con subtítulos en español

Ideas para hacer juegos (I)

Desde hace algunas semanas he estado anotando en mi cuaderno algunas ideas para juegos. Dejo estas ideas para que las discutan, las desarrollen, hagan cualquier cosa con ellas (la famosa licencia WTFPL). Espero ir soltando más ideas durante las siguientes semanas. Al escribir estas ideas, escribo siempre el tema que lo origina. Esto de alguna manera da una dirección más clara de hacia donde debería ir el juego.

  • Idea 1: Tema: Supervivencia y unión.  Unir células que flotan en líquido. Estas células flotan con movimiento parcialmente libre. Estas células se pegan unas a otras formando un nuevo organismo que debe sobrevivir a otros organismos.
  • Idea 2: Tema: Intriga. Eres una niña de 12 años en un colegio de niñas. ¿Cómo sobrevivir mentalmente sana en medio de ataques de amiguitas con lenguas viperinas? ¿Cómo sabes quién es tu amiga y quién habla mal de ti a tus espaldas?
  • Idea 3: Tema: Simulación. Dirige tu propia telenovela venezolana / mexicana / mayamera. Contrata guionistas, artistas, personal obrero, cámaras. Arma un guión con escenas predefinidas. Obtén feedback de la audiencia y crea giros de guión. Compite contra otras productoras que también transmiten sus propias telenovelas.
  • Idea 4: Tema: Escape. Eres un gran dragón que aterroriza una ciudad.

Encontronazos con ActionScript 3: Creando un hola mundo

Este artículo es la parte 3 de 6 de la serie Encontronazos con ActionScript 3

0-presentacion

Siguiendo con la idea de esta serie de artículos, vamos a hacer el programa más pequeño posible en ActionScript 3 (AS3) que muestre el fundamento de la programación en este lenguaje. Considero que AS3 es una forma de programar para SWF muy superior a AS2.  Una nota aparte, creo que no hay que despreciar a AS2, pues lo seguiremos viendo durante mucho tiempo en la forma de Flash Lite u otro tipo de contenido.

Este artículo requiere tener algunas nociones de programación. Manejar ActionScript 2 es opcional.
Sigue leyendo Encontronazos con ActionScript 3: Creando un hola mundo

Por qué no trabajar solo / Cómo formar un grupo para hacer juegos

Seguro que ya te has imaginado a ti mismo haciendo un videojuego, y hasta habrás imaginado ya el diseño, y cuáles serán los personajes y qué haran… pero no sabes cómo comenzar.

No saber cómo comenzar suele ser un signo de que no saber cómo atacar un proyecto: hay tantas cosas por hacer que simplemente no sabes cuál comenzar primero. Eso no debería ser un problema: cuando uno se consigue con un proyecto de estas dimensiones, uno por lo general rompe el proyecto en tareas más pequeñas, manejables, en las que la acción a seguir sea más obvia. Por ejemplo, si vas a hacer un juego de plataformas, debes investigar cómo mover un personaje por un plano, sin más nada. Si aún no sabes cómo hacerlo, pues divides esa tarea en cosas más pequeñas. Puede que incluso tengas que comenzar por mostrar una imagen estática en pantalla.

Ahora, puede ser que esto sea demasiado para ti. No es una tarea fácil diseñar un juego, hacer sus recursos gráficos, echar código, escribir historia, y demás porque todo eso requiere un montón de habilidades, y sentarse a trabajar en cada una de ellas. Es fácil sentirse sobrecogido con esta cantidad de trabajo que hay que hacer. Es por eso que es recomendable siempre armar un grupo para hacer un videojuego y delegar responsabilidades.

«¿Pero cómo hago? ¡Siempre hablo de mi idea maravillosa pero nadie se anima a unirse conmigo a terminarlo!» — Lo cierto es que muchas personas interesadas en hacer su primer juego también tienen sus propias ideas. La mejor manera de poder convencer a alguien de tu proyecto es que ya tengas algo hecho. Si eres programador, haz un prototipo de tu juego con arte simple o importado. Si eres artista, ten arte conceptual a la mano, y un prototipo sencillo a la mano. Si eres diseñador, ten a mano tu documento de diseño, reglas, artes conceptuales, y un prototipo sencillo.

«¿Pero cómo es que en todos los casos dices que hay que tener un prototipo?» — La verdad es que en el campo de los videojuegos se convence con un prototipo. No hay mejor manera. «¡Pero no sé programar!» — y ahí sí creo que es necesario programar aunque sea un poco. No tiene que ser nada sofisticado. Simplemente una herramienta que ayuda a comunicar mejor tu idea. Un programador con más experiencia y mayor dedicación le puede dar vida. Pero sí es necesario que sepas cómo se programa un juego. Espero que de esta manera sepas atraer más talento para tu idea, y que las puedas completar en un tiempo razonable.

* Foto por jurvetson.

100 juegos hechos con Multimedia Fusion en 10 minutos

Este video muestra 100 juegos completos hechos con Multimedia Fusion u otros productos de Clickteam. Si te interesa alguno revisa la lista de juegos para descargar. Multimedia Fusion es software pago, pero es bastante maduro y con una amplia base de usuarios. También de este software han salido buenos juegos, como el ya reseñado Knytt Stories (recomendadísimo). Chequea también el video de los 100 juegos hechos en Game Maker, del mismo autor. Via TIGSource.

El documento de diseño de Grim Fandango

Documento de diseño de Grim Fandango
Documento de diseño de Grim Fandango

En celebración de los 10 años del lanzamiento de Grim Fandango, Tim Schafer ha publicado el documento de diseño de uno de los mejores juegos de aventura jamás hechos. El documento lo puedes descargar en el blog de Double Fine, un PDF de 2MB. Un tremendo chance para aprender de los grandes 😀

Encontronazos con ActionScript 3: Cómo hacer juegos con Flash/Flex/ActionScript y FlashDevelop gratis

Este artículo es la parte 2 de 6 de la serie Encontronazos con ActionScript 3

Free Beer

En este artículo explicaremos cómo hacer juegos con Flash/Flex/ActionScript y FlashDevelop en Windows sin costo monetario y completamente legal. La proliferación de herramientas que producen películas SWF ha permitido que se puedan utilizar sin mayor costo que el esfuerzo de instalar y levantar el ambiente de desarrollo. Foto por AGoK.

En la primera parte explicaremos cómo hemos llegado hasta acá, en la segunda parte explicaremos qué software utilizaremos para montar un ambiente gratuito de desarrollo en ActionScript, y en la tercera parte explicaremos paso a paso cómo montarlo.

¿Cómo es eso de desarrollar SWFs gratis?

La herramienta Flash ha pasado a lo largo de estos años de ser una alternativa para hacer animaciones en páginas web a un importante movimiento dentro de Internet para hacer aplicaciones tan o más atractivas que las aplicaciones de escritorio y con una funcionalidad similar o superior.

Macromedia, ahora parte de Adobe, supo desde hace ya varias versiones de Flash que debía orientar tanto la herramienta como su lenguaje de programación, ActionScript, hacia la creación de estas aplicaciones, lo que implicaba la mejora del flujo de trabajo para los programadores de oficio. La culminación de este esfuerzo son dos productos: ActionScript 3, y Flex.

ActionScript 3 (AS3) es más que una actualización de la versión anterior. Programar AS3 implica pensar las cosas de manera un tanto distinta de AS2, de manera mucho más explícita y con conceptos más simples de manejar. Por otra parte, Flex ha traído una nueva forma de producir películas en formato SWF (el formato al que exporta Flash), al tener el programador un mayor protagonismo para hacer aplicaciones.

¿Qué necesitamos para hacer un ambiente gratuito de desarrollo en Actionscript?

Para hacer este ambiente necesitamos específicamente dos programas: el SDK de Flex y FlashDevelop. Ambos se consiguen de manera gratuita.

Flex es un programa que, como Flash, produce archivos SWF, pero en vez de tener una interfaz gráfica, se tiene una librería de componentes y un lenguaje de programación basado en XML que permite crear aplicaciones de manera muy rápida y efectiva.

Flex específicamente es un compilador de ActionScript 3 cuyo producto es un SWF. Flex también trae una librería muy poderosa de componentes que permiten hacer muy rápidamente aplicaciones para Internet en Flash y con el atractivo de las aplicaciones hechas en Flash, además de otro compilador que convierte un formato de archivo XML llamado MXML en ActionScript (y de ahí a SWF). Estos dos compiladores más la librería conforman el SDK de Flex, y están disponibles gratuitamente en la página correspondiente de Adobe: http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3

Ahora, lo importante es la parte del compilador y ActionScript 3: con Flex es posible crear proyectos de cero (sin necesidad de la librería de componentes), lo cual permite hacer juegos muy pequeños sin necesidad de Flash (aunque podría necesitarse en caso de que se quieran usar dibujos vectoriales).

Lo único que faltaría es un IDE para programar. Flex Builder es la alternativa comercial y sin duda una de las mejores, pero el programa es pag. Al estar basado en Eclipse es realmente lo mejor para programar. Una tremenda alternativa que no se queda atrás, gratuita, y la que usaremos en este post, es FlashDevelop (http://www.flashdevelop.org/community/).

¿Cómo hacemos, paso a paso, para montar este ambiente?

  1. Descargar el SDK de Flex en la página Flex 3 SDK Downloads. Lo más recomendable es ir a la parte de Stable Builds, y descargar el primer enlace debajo de la columna Adobe Flex SDK. Si estás preocupado por desarrollar únicamente con herramientas libres, puedes descargar el correspondiente a Open Source Flex SDK. El primer enlace describe con detalle la diferencia entre ambos paquetes, siendo que sólo trae código licenciado bajo la Licencia Pública de Mozilla. Si no sabes de que estoy hablando ahora, no te preocupes, simplemente descarga el primero y estarás bien.
  2. Descargar FlashDevelop. Entra a la sección de Releases, y descarga la última versión. Las versiones Final son las más recomendables, pero en este post trabajaré con la versión FlashDevelop 3.0.0 Beta7.
  3. Descomprimir el SDK de Flex con tu descompresor favorito. Para este artículo crearemos un directorio en C:\flex, y allí adentro descomprimiremos el contenido de lo que descargamos en el paso 1.
  4. Instalar FlashDevelop. Es un instalador común y corriente de Windows. Creará unos atajos de inicio.
  5. Ejecutar FlashDevelop. Al llegar a la pantalla inicial iremos a Tools -> Program Settings…. En la nueva ventana Settings nos vamos a la sección AS3Context y cambiamos la ubicación de la instalación del SDK de Flex en Flex SDK Location. Colocamos el mismo directorio donde descomprimimos el archivo del paso 3, en este caso C:\flex.

    Configuración de Flash Develop
    Configuración de Flash Develop
  6. Estamos listos. Podemos crear un proyecto nuevo en Project -> New Project. En la nueva ventana New Project escogemos un Default Project en la sección ActionScript 3, un directorio, y hacemos click en OK.

    Vista de Proyecto de FlashDevelop
    Vista de Proyecto de FlashDevelop
  7. En Project -> Test Movie podemos probar la película que genera este proyecto por defecto. Veremos una pantalla en blanco solamente, pero eso significa que a partir de ahora podremos desarrollar en ActionScript sin ningún problema.

En siguientes entregas veremos cómo se desarrollan aplicaciones con este método. La literatura recomenda por ahora es la relacionada con el Document Class de Flash y cómo trabajar con él.

Encontronazos con ActionScript 3: El sistema de dibujo y los Display Objects

Este artículo es la parte 2 de 6 de la serie Encontronazos con ActionScript 3

Oops! - Part II by Kyle May

Hace ya bastante tiempo que salió ActionScript 3 (AS3) y los programas que lo utilizan, como Flash CS3 y Flex 3. Hasta hace poco no había tenido el chance de revisarlos un poco, y experimentar con una técnica que voy a utilizar dentro de poco. Para aquellos que conocen ActionScript 2 (AS2), su versión 3 es un campo de minas totalmente distinto 🙂 .

AS 3 cambia el concepto de dibujar cosas en la pantalla y colocar clips. El sistema de AS3 es más explícito, al crear el concepto de Display List. El Display List es una lista que se recorre cada vez que se dibuja un frame (o fotograma) en la pantalla. El recorrido de esta lista asemeja el recorrido de un árbol, en el que en el tope se encuentra la película principal, también conocido como el Stage. La lista la conforman objetos que se pueden dibujar. Algunos de ellos contienen sus propias listas de dibujo que son recorridas cuando se dibuja un frame.

Por ser una estructura muy similar a la de un árbol, los objetos se agregan y se eliminan en lo que llamaremos contenedores. Entonces, el proceso para crear y agregar MovieClips se simplifica:

  1. Se crea una película con una llamada a new MovieClip(); y se asignan las propiedades que tenga.
  2. Se agrega esta película al contenedor, como otro MovieClip o al Stage si no hay nada más en la pantalla. Esto se hace con la función addChild() en el contenedor, o addChildAt() si se quiere hacer en un lugar específico.

¿Cuál es la ventaja de esta aproximación a los gráficos con respecto a AS2? Que es más fácil de comprender. El concepto de «profundidad» (depth) que había en AS2 no se utiliza aquí: el orden en el que se dibujan los objetos está determinado por el orden en el que están insertados en su respectivo contenedor.

AS 3 tiene un enfoque mucho más estricto que su versión anterior con respecto a la orientación de objetos. La programación en AS 3 es 100% orientada a objetos, cosa que gustará mucho a aquellos que ya programan en lenguajes como Java. Ellos van a encontrar que ActionScript 3 va a tener una forma muy similar de programación. En futuros artículos iremos complementando esta información.

Para saber más acerca de los Display Lists, consultar los Livedocs de Adobe concernientes a los Core Display Classes.

* Foto por Kyle May