El Chigüire Literario Desarrollo de videojuegos con denominación de origen

3 juegos donde el dibujo es protagonista: Suburban Brawl, Chalk y Crayon Physics

Los tres juegos que les voy a presentar tienen como mecanismo principal de juego el dibujo. El usuario tiene que dibujar algo para poder progresar en el juego. A continuación sus descripciones:

Suburban Brawl

Subruban Brawl screenshot El primer juego es en Flash y es uno de los primeros prototipos que salieron del Experimental Gameplay Project. En Suburban Brawl el objetivo del juego es hacer la mayor cantidad de dinero construyendo casas. Para construir una casa se dibujan, en principio, cuatro líneas rectas que definen el cuerpo de la casa. Luego se pueden dibujar chimeneas, ventanas y puertas de la misma forma.

Existen dos tipos de casas y accesorios que se pueden hacer: las normales y las X-mart. Para dibujar las X-mart hace falta un pelín más de mano precisa, pues las líneas deben ser perpendiculares para lograr una casa de este tipo. Estas casas se venden más caras, pero reducen el valor general de las casas. Puedes dibujar casas similares a las que salen en la lista superior para ganar más dinero.

El juego como prototipo tuvo una buena oportunidad, pero el hecho es que el juego puede hacerse monótono luego de un rato de juego, debido a que no hay un fin del juego definido, por lo que no hay forma de comprobar cómo te fue en una partida.

Crayon Physics

Crayon Physics screenshot Crayon Physics es un prototipo bien interesante. En Crayon Physics se tiene un nivel con una pelota, la cual debe recoger todas las estrellas que se encuentren en el nivel. Para lograr que la pelota se mueva y se transporte sin caer al fondo de la hoja, se deben “dibujar” rectángulos, los cuales inmediatamente adquieren cuerpo y caen atendiendo a leyes dinámicas similares a las de la realidad. Como cajas que caen del cielo, estos rectángulos al caer sobre un punto pueden rotar y hacer palancas que pueden mover a la pelota.

El juego es corto, contando con sólo 7 niveles, pero cada nivel se va haciendo mas difícil cada vez, por lo que llegar al final no está garantizado. Totalmente recomendado, aunque sea sólo para jugar un ratico.

Chalk

Chalk screenshot Chalk es un juego completo, a diferencia de los otros dos. Chalk se define a sí mismo como un Draw ‘em up, parodiando el título del género Shoot ‘em up de antaño. En Chalk uno controla a una niña y controla una tiza que elimina a los enemigos que van a atacar a la niña. Algunos enemigos tienen uno o varios puntos verdes, y para eliminarlos uno debe trazar una línea de tiza que los una a todos. Otros enemigos disparan puntos morados, y se eliminan conectando la línea de tiza entre la bala y ellos. Como podrán ver, es un mecanismo bien original.

El juego de resto es un arcade, donde uno puede mover a la niña para esquivar los ataques de sus enemigos. Incluye una diversidad de enemigos, desde los más simples hasta otros con cara de jefes, bien defendidos y bien duros de derrotar. El juego es rápido, y uno puede tardarse en tener un buen control del juego para poder ganar. Totalmente recomendado y con buenas probabilidades de engancharse.

Concurso de Diseño de Juegos en Flash #3 en Jayisgames.com

Flash Game Design Competition #3 at Jayisgames.com Esto va en serio. Jayisgames.com es un sitio de juegos casuales en Internet, y está organizando un concurso de diseño de juegos en Flash con premios muy buenos. El concurso consiste en hacer un juego alrededor del tema que ellos proponen, que en este caso es REPLAY (repetición instantánea). La condición es entregarlo para la fecha tope (15 de julio de 2007), seguir las normas de API que ellos proponen (reglas realmente simples y bien definidas, esto lo digo como programador de Actionscript que soy), y que el juego sea inédito, es decir, que no haya sido publicado en ningún otro lugar antes.

Los premios son:

  • Primer lugar: 1000 USD y una licencia para Adobe Flash CS3 Profesional.
  • Segundo lugar: 500 USD y una licencia para Adobe Flash CS3 Profesional.
  • Premio de la audiencia: Al menos 200 USD.

Así que ya lo saben. De hoy en adelante sólo faltan 3 semanas para el deadline, así que ¡a diseñar!

¿Te enredas pensando en 3 dimensiones? Piensa en la décima dimensión

Imagining the Tenth Dimension

Para cerrar la semana presentaré un videillo más bien geek. Es una animación que pretende enseñarte cómo pensar hasta la décima dimensión. Sí, pueden haber hasta 10 dimensiones en nuestro ambiente, y el video hace un buen trabajo en ilustrar este concepto, donde la recursión pareciera ser la regla. El video se encuentra en el enlace, y aunque es propaganda para comprar un libro, en verdad no tiene desperdicio. Que tengan un buen fin de semana.

Abierta la participación para el IGF 2008: 10ma. edición del Festival de Juegos Independientes

IGF Logo La 10ma. edición del Festival de Juegos Independientes (Independent Games Festival) ya publicó el calendario de eventos que culminará en la ceremonia que se dará a lugar el 20 de febrero de 2008. Ya está abierto el período de envío de juegos para considerar. Para el evento principal se recibirán juegos hasta el 1ro de octubre de este año, y para el evento estudiantil se dará oportunidad hasta el 15 de octubre. En diciembre se anunciarán los finalistas de cada categoría, y los ganadores se anunciarán durante la ceremonia. Se reciben juegos en cualquier formato: PC, consola o web. En el caso de la competición estudiantil, se incluye también a los “mods” de juegos existentes.

Si queréis saber la calidad de juegos que se mandan a este festival, definitivamente tienes que revisar la galería con lo mejor del Independent Games Festival 2007, que incluye un par de juegos que ya hemos reseñado aquí. Lo que promete es bien bueno, sin ninguna duda.

Haciendo CuteGodChigüire: Interpolaciones de variables

CuteGodChiguire: Revisión 1 La tercera revisión no tiene muchos agregados gráficos: las interpolaciones que había prometido forman parte de las animaciones del juego, pero no están implementadas todas las que quiero. Si corren el programa de esta revisión, verán que el mundo baja y sube un poco. En realidad debería subir más pero la vista llega hasta el borde del scroll, por lo que se queda allí. En este artículo explicaré un poco cómo funciona la clase de interpolaciones, llamada Tween.

Interpolaciones

Las interpolaciones están puestas en el módulo src/transitions. Allí está definida una clase llamada Tween, que se construye con los siguientes parámetros:

Tween(object, property, function, begin, finish, duration, loop = False, yoyo = False) : returns Tween

Tween es una clase que recibe un objeto, una propiedad del objeto escrita como String, una función de interpolación, el punto de inicio y el punto de fin, la duración en ticks, y dos booleanos, que dictan si la interpolación va a ciclar (loop), y si va a ciclar de inicio a fin, y de fin a inicio (yoyo = True). Por defecto los loops no se hacen. Si se utiliza un loop, por defecto se hacen de inicio y fin, y vuelven a comenzar desde el inicio.

Uso de la clase Tween

Una vez creada esta clase, la idea es llamar a su función tick() en cada intervalo de tiempo de juego para que esta misma clase actualice la variable del objeto que se le pasa. Internamente, utiliza la función setattr() de Python para lograr esto, lo que crea un gran obstáculo: no tengo manera de modificar un tipo secuencial (intentar obtener la propiedad “arreglo[0]” para un objeto que tenga una variable llamada arreglo dará error, diciendo que no existe un atributo ‘arreglo[0]’). Esto es serio porque casi todos los atributos que tengo que modificar son tipos secuenciales, ej. posiciones de objetos. Esto es algo que no había previsto cuando pensé en la clase, y será algo que mejoraré para la siguiente revisión. La revisión actual tiene un paño caliente que resuelve la cosa para esta vez pero es definitivamente mala práctica de programación (no cookie!).

El objetivo de pasar una función de interpolación es que yo pueda obtener diversos conjuntos de valores entre el inicio y el fin. Esta revisión sólo tiene la función Linear.easeNone, y la función va de inicio a fin a intervalos constantes. Bien puedo hacer (y es lo que pienso implementar) funciones cúbicas que permitan hacer transiciones con inercia. Creo que una clase de este tipo siempre cae muy bien para hacer animaciones. Me gustaría una vez que esté madura poder empacarla y distribuirla por aquí para aquellos que quieran hacer animaciones simples desde código. Por ahora requiere mucha más atención.

Conclusión

No pude completar los objetivos que me propuse para esta revisión. Me detuvo el hecho de que aún estoy terminando de entender el uso y construcción correctos de los módulos en Python. Existen también ciertas diferencias entre ActionScript y Python que me obligan a repensar algunas de las funciones de interpolación existentes (esta es la razón por la que estas funciones aún no están implementadas). Pero definitivamente lo que más frenó mis objetos fue la implementación de las operaciones sobre imágenes, que resultó ser una tarea más complicada de lo que había pensado.

Las operaciones sobre las imágenes me han costado más, pero no por la teoría, que ya la conozco. Lamentablemente la versión más reciente de Pygame, la 1.7.1, data de agosto de 2005 ( :!: ), y utiliza la librería Numeric, una librería que ha evolucionado bastante desde entonces, al punto de dejar de llamarse así y pasar a ser NumPy. Sumémosle a esto el hecho de que la documentación de NumPy es lo peor en documentación que haya visto para un proyecto de código abierto popular. Los tutoriales de Pygame para manipulación de colores que están en la página datan de 2001 ( :!: ), y utilizan funciones que sencillamente no estaban en NumPy. La solución fue instalar la librería Numeric que incluyen en la página de descargas de Pygame. Me tomó varios días averiguar que las funciones utilizadas en el tutorial que no estaban en NumPy habían sido deprecadas y eliminadas de la librería.

A pesar de ello, he logrado completar los pasos necesarios para hacer transformaciones en los colores de una imagen. Sin embargo, por alguna razón que desconozco, todavía no funciona. Para la siguiente revisión espero tener listo eso y poder explicar un poco cómo se hacen las transformaciones. Arrivederchi.

Archivos