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

Feliz año y lo que se viene en 2009

Un saludo a todos los lectores de este blog y un abrazo de año nuevo. Este blog se acerca pronto a su tercer cumpleaños, y quería compartir con ustedes lo que pienso acerca de él y sobre lo que nos espera ahora en 2009.

Este blog representa para mí muchas de las ideas y opiniones que he tenido acerca de los videojuegos y su producción. El nombre mismo viene de lo que pensaba de los videojuegos en el momento que fundé el blog en 2006.

Chigüire. El animal lo escogí porque quería que el mismo nombre denotara el origen de este blog. Bam, ahí está, un chigüire y ya, más venezolano imposible; aunque el animal también vive en Colombia y le dicen chigüiro.

Literario. Porque pensaba que los juegos son una forma de expresión literaria. Como quien escribe un libro, pensaba que un juego produce las emociones que produce por su historia y que los juegos debían aspirar a temas más maduros. Hoy en día pienso que no es por donde se comienza un videojuego; es solamente un producto de su diseño, que se incorpora después de pensar en algo más importante: el mecanismo del juego, que es el que en realidad produce o facilita las emociones de las que hablo. Aún pienso que debe aspirar a temas más maduros. En fin, esto podría dar para un tema separado :-) Una demostración de este concepto está en el primer review que hice, el de Quake I.

¿Qué hay para 2009? Para mí, que creo que estado sentado demasiado tiempo escribiendo en este blog y haciendo uno que otro juego de vez en cuando, es hora de salir de él. No, no hablo de abandonarlo, hablo de que debe tener más presencia física. El Game Jam que estoy organizando con la IGDA creo que es un primer paso para que los desarrolladores que están escondidos por ahí se paren y participen.

Me gustaría escribir dentro de un año que tenemos una comunidad local de personas que quieren desarrollar juegos, ya sea por dinero o no. Que tú, que estás aún en bachillerato, o que ingresaste a X carrera porque quieres hacer juegos en un futuro, que dejes de soñar y comiences a hacer juegos aquí y ahora mismo. Un juego completo, no importa su tamaño.

Entretennos, sorpréndenos, demuéstranos a todos que sí se puede hacer. No necesitas un gobierno que te apoye, necesitas personas que te apoyen. Aquí están. No necesitas tener que irte del país para hacer juegos, puedes hacerlo aquí mismo con las herramientas disponibles a través de Internet. Aquí hay tan solo unas. Quizás no tengas acceso a la última tecnología, pero ella no sirve de mucho si no has comenzado desde el principio. Quizás no tengas acceso a los gráficos más sorprendentes, pero va a ser nuestra tarea convencer a los diseñadores gráficos que se unan.

Edúcate en la materia. Comienza a leer más. No sólo en diseño y programación. Los juegos se alimentan de todo, y de todo lo que tenga una razón, un por qué. No necesitas un pensum sobre el desarrollo de videojuegos (aunque una materia o dos caigan bien), necesitas hacer un juego completo. Sólo eso te enseña qué es lo que se debe saber para hacerlo.

Eso sí, las conferencias en el exterior no caen mal tampoco. He aquí un par a las que puedes ir sin tener que pagar la inscripción, que suele ser costosa. El 28 de enero finaliza el período para optar para el voluntariado del Game Developers Conference que se dará a lugar el 23 de Marzo en San Francisco, California. Esto si ya no eres estudiante. Si eres estudiante puedes optar por una beca de la IGDA. Si te interesa más la computación gráfica, está el voluntariado estudiantil de SIGGRAPH 2009, cuyo período de inscripción finaliza en febrero. He sido voluntario estudiantil en SIGGRAPH, y es una experiencia que te abre los ojos con respecto a lo que se puede hacer en una industria. Si deseas saber más sobre esta experiencia lee este post.

Finalmente, no dejes de hablar con otros como tu, el foro del chapter Caracas de la IGDA es un buen comienzo. Existen otros foros en los que es necesario hablar inglés. Hablar inglés es un requisito ineludible, apréndelo. Desde aquí todo el apoyo para finalizar el 2009 de una manera diferente. Desde aquí seguiré escribiendo lo que se pueda, que siempre queda :-) Salud.

El evento del Global Game Jam en Facebook

Ahora en Facebook está el evento del Global Game Jam. Únete. :-)

El Caracas Game Jam ahora cuenta con lista de correo

El Caracas Game Jam ahora cuenta con una lista de correo en Google Groups. Si estás interesado en participar en un evento donde debes crear un juego en 48 horas únete y di en la lista qué software vas a usar para hacer tu juego.

Encontronazos con ActionScript 3: Creando un hola mundo

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. En el artículo anterior les expliqué cómo se establecía un ambiente de desarrollo con FlashDevelop y el SDK gratuito de Flex. Una buena noticia que no había anunciado en aquel entonces es que también es posible montar este mismo ambiente en Linux: el SDK viene de caja para funcionar con Linux, y FlashDevelop se puede (con unos trucos) ejecutar para este sistema operativo. Así que no hay excusas para no desarrollar para el pingüino :-) .

Manos a la obra

Vamos a hacer un simple SWF que muestre un cuadro de texto. Lo primero que haremos en FlashDevelop será crear un proyecto nuevo en el que irá nuestro código. Hacemos click en Create New Project para esto.

1-create-project

Pondremos el nombre del proyecto, que lo titularemos “HolaMundo”. La ubicación del proyecto dependerá mucho de la configuración de tu máquina, pero yo recomiendo tener una carpeta con todos los proyectos.

2-new-project

Puede que parezca que hacer un proyecto sea demasiado para un simple HolaMundo. Además que en Flash es simplemente cuestión de crear un .fla. Pero el hecho es que este tipo de organización ayuda mucho en el futuro. Yo en el pasado ya he tenido muchos casos de proyectos en Flash qeu vuelvo a abrir y tengo un amasijo de imágenes y .fla en distintas revisiones. Créeme que soy responsable al afirmar que esto te va a ayudar. Palabra de programador.

Una vez creado el proyecto veremos que ya FlashDevelop había abierto un archivo nuevo. Vamos a darle nombre de una vez a este archivo guardándolo. En este archivo lo guardaremos específicamente con el nombre de “HolaMundo.as”. Tiene importancia y luego veremos por qué.

Dentro de HolaMundo.es escribiremos el siguiente código:

package {
    import flash.display.MovieClip;
    import flash.text.TextField;
    public class HolaMundo extends MovieClip {
        public function HolaMundo() {
            var c : String = "Hola Mundo"
            agregarTexto(c);
        }
        private function agregarTexto(cadena:String) : void {
            var textField:TextField = new TextField();
            textField.text = cadena;
            textField.x = 10;
            textField.y = 10;
            stage.addChild(textField);
        }
    }
}

Ahora abriremos las propiedades del proyecto haciendo click secundario sobre el proyecto HolaMundo (AS3), y seleccionado la opción Properties… en el menú desplegable. En la primera pestaña llamada Output, tendremos especial cuidado de nombrar el archivo de salida en la opción Output File.

3-project-properties

Cerraremos el cuadro presionando OK. Ahora probaremos la película abriendo el menú Project -> Test Movie.

4-test-movie

Si sale una ventana pidiéndote abrir la configuración del contexto de AS3, significa que no le has indicado a FlashDevelop dónde está el compilador de Flex. Vuelve al artículo anterior para asegurarte que lo has hecho bien.

5-as3-context

Si todo va bien, vas a ver en una nueva pestaña la película que hemos creado, un SWF con un cuadro de texto que dice “Hola Mundo”:

6-hola-mundo

¿Qué hemos hecho?

Con el modelo de ActionScript 3, ahora tenemos un MovieClip base (en Flash CS3 se llama Document Class). Este MovieClip es una clase que define un montón de cosas que nos permiten reproducir animaciones como las que hacíamos en Flash. En este caso lo usaremos como contenedores para mostrar gráficos en pantalla.

En este ejemplo sólo he creado un objeto de tipo cuadro de texto (TextField), le he puesto contenido, y le he asignado una posición. Un TextField es uno de los tantos tipos de objetos gráficos que se pueden incluir en una película. Me incliné por él debido a que es simple de utilizar y demuestra rápidamente el punto de crear objetos gráficos y agregarlos al MovieClip. Veremos en otro artículo que la adición de otros objetos gráficos es muy similar.

Queda entonces explicar qué significa el objeto stage dentro del código. El MovieClip base está unido a un objeto gráfico especial que representa la ventana donde se reproduce el SWF. Este objeto es el Stage, y la ventaja de definirlo así consiste en que el stage es accesible desde cualquier punto de la jerarquía de MovieClips. Esta jerarquía la expliqué en un artículo sobre Display Lists hace algún tiempo.

En un próximo artículo haremos algo un poco más complicado, creando formas y figuras y animándolas a través de código.

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.