Un modelo de negocios para videojuegos en Venezuela

Foto por Inti

Llega un momento en el que uno debe pensar en cómo conviertes eso que te gusta en un negocio. Conseguir un modelo de negocios no es una tarea sencilla para ningún tipo de emprendimiento. Las complicaciones aumentan para un emprendimiento de videojuegos, que tiene que ver con el entretenimiento, una necesidad no básica, a diferencia de otros tipos de software.

En Venezuela existe el agravante de que la piratería está sumamente extendida. Este tipo de mercado, en el que un producto con mucho volumen de venta es un indicativo de su buena calidad o utilidad, realmente no nos sirve de mucho a los que vivimos de vender software. No es el objetivo de este artículo tratar este problema, que tiene raíces sociales y culturales.

Modelo publicitario

Si nos vamos por la primera solución que nos venga a la cabeza a esta situación, entonces tendríamos que pensar en la publicidad. Al estilo de las versiones gratuitas de Angry Birds, o muchos juegos basados en Flash, el juego se distribuye gratuitamente y nuestra retribución será a través de un sistema de publicidad que contratemos o hagamos de cero. Si tu juego es un éxito, más gente lo jugará y tendrás más ganancias por publicidad,y si se «piratea» el juego, el ingreso será aún mayor, simple, ¿no? Pero esta metodología tiene sus consideraciones que vamos a ver a continuación.

Dejemos de lado de antemano la opción de desarrollar un sistema de publicidad por ser un proyecto que requiere por sí mismo un gran esfuerzo. Si a eso te quieres dedicar, bien podrías sincerarte y decir que no estás haciendo un juego. Dicho esto, sistemas de publicidad para Flash existen desde hace algún tiempo, como Mochi Media o Armor Games. Emplear uno tiene la ventaja de que el sistema ya está hecho, e incluso algunas de ellas tienen sus métodos para promocionar los juegos más populares o rentables. Por otro lado, el gran porcentaje del ingreso por publicidad en estos sistemas se los lleva la empresa, y esto nos deja en un compromiso muy fuerte si quieres independizarte, y es la fuente de poder de muchas de estas plataformas.

Daniel Cook, desarrollador de videojuegos, lo explica muy bien en inglés. Ya sean las plataformas para Flash, o Facebook, o las tiendas de aplicaciones del iPhone, o de Android, o de las consolas populares, existe un ciclo de vida en todas ellas, en las que inicialmente deben ganar popularidad. Para ganar esta popularidad, deben esperar a que aparezca un buen juego en esta plataforma, que sea popular y dé dinero. Cuando sale este juego, se convierte en el Shirley Temple de los desarrolladores: la plataforma promociona el juego hasta la saciedad, haciendo que otros desarrolladores sigan su ejemplo (¡podrías ser tan exitoso como ellos!) y la gran demanda de poner su juego en la plataforma le da a los dueños de la misma un mayor poder de negociación.

Esta foto sólo está para decirte que leas la presentación de Cook. Vale la pena.

La realidad es que estos mercados están muy saturados, por lo que los que se independizan son únicamente los que tienen una popularidad muy grande. Unos pocos puestos debajo del Top 10, y la rentabilidad del juego disminuye exponencialmente. Con esto no quiero decir que no se utilicen las plataformas, después de todo, se puede percibir algún ingreso, pero definitivamente no te dará para comer para el resto de tu vida. Eso, o haces un juego con un timing impresionante.

Una nota aparte: la piratería es posible con los juegos en Flash. Es común en las páginas donde la publicidad es servida fuera del juego, escuchar los casos donde un portal republica el juego en su propia página, con sus propios banners publicitarios. Los desarrolladores toman medidas para evitar la reproducción del juego fuera de dominios aprobados por el mismo.

Advergames

Los advergames tienen un apartado especial. Los advergames son hechos por desarrolladores a petición de agencias publicitarias, que enmarcan el juego dentro de una campaña, por lo que el juego se beneficia del público que se interesa por la misma. La retribución económica suele venir con la publicación del juego, y es una cantidad fija previamente acordada, por lo general sin otros ingresos posteriores.

Screenshot de la página de Maizoritos, con un juego hecho en Venezuela.

En Venezuela ha sido una buena fuente de ingresos para varios desarrolladores. Según Manuel Herrera, desarrollador de videojuegos, el interés por hacer advergames ha aumentado en los últimos 5 años, y casi todas las agencias de publicidad de Caracas tienen proyectos que involucran elaborar advergames. El año pasado en la ceremonia de los premios ANDA, Asociación Nacional De Anunciantes, otorgó por primera vez premios para la categoría de juegos online.

Entre las desventajas que se pueden encontrar al hacer esta clase de juegos es que los tiempos de elaboración de una campaña publicitaria son extremadamente cortos. Jorge Padua, desarrollador de videojuegos, considera que las agencias deben darle una mayor importancia a la elaboración de juegos en comparación con el método tradicional de comerciales en televisión. Debido a la poca importancia dada y a los apretados tiempos, hacer un juego novedoso se percibe exageradamente riesgoso por el tiempo de desarrollo, yéndose por clones de juegos conocidos, o con mecánicas sencillas y probadas. Depende del desarrollador elaborar una propuesta que pueda cumplir con el tiempo que especifique la agencia.

Foto de un tigre, por DrBartje. Tiene cierta relación con el tema.

Comercializando los juegos

Hablemos de aquellos que tienen una idea para un juego que quieren comercializar. O de aquellos que quieren lanzar un juego que involucre propiedad intelectual nueva. O de alguien que ha encontrado la pericia y la utilidad de desarrollar herramientas para hacer juegos. O incluso de personas que ya llevan un aprendizaje como empresarios, y que sienten que deben armar un plan que les permita un ingreso más estable. En Venezuela existen empresas que se ubican en estos grupos.

Screenshots de Gwen The Magic Nanny, por Teravision Games y Grimm, por Hecticus

Los casos de Teravision Games y Hecticus Software me parecen interesantes porque apuestan por el outsourcing de partes específicas de un proyecto (desarrollo o arte) para empresas en el exterior. Ya sea construyendo el software o haciendo trabajo gráfico, esta es una buena manera de tener un ingreso preestablecido en un contrato.

Entre las desventajas que veo, es que se hace necesario elaborar una red de contactos (las empresas no van a llegar de afuera a buscarte), además de depender de la situación de las demás empresas. La situación de crisis como la que ocurrió en 2007 afectó la industria de los videojuegos, con repercusiones en todas las empresas a todos los niveles.

Juan Carlos Ramírez, de Hecticus, propone la especialización de las actividades de la empresa. En el caso de Hecticus, una empresa cuyo fuerte es el desarrollo, se asocia con compañías que se dedican a la parte creativa y del game design.

Por otro otro lado, está la elaboración de herramientas para desarrolladores. Generalmente estas son empresas que ya han tenido experiencia desarrollando juegos, y en medio del proyecto han elaborado herramientas que posteriormente pulen y comercializan como productos. En Venezuela también tenemos eso: The Complot elaboró una herramienta de debugging para XNA llamada Gearset. Fue lanzada la semana pasada, y tiene 15 días de trial.

Screenshots de Gearset, de The Complot

Para las empresas que desean hacer un juego con nueva IP (propiedad intelectual, léase con personajes e historias completamente originales, y no tomadas de una licencia) el camino es bastante cuesta arriba. En esto coinciden Jorge Padua, desarrollador de videojuegos, y Enrique Fuentes, director de Teravision Games. Se suele seguir el modelo de Editor (Publisher, en inglés) – Desarrollador, en el que el desarrollador se encarga de llevar a cabo de elaborar el juego, y el editor de la parte de comercialización, distribución y mercadeo. En muchos casos el editor financia también el desarrollo del juego.

En palabras de Jorge, el problema está en que un desarrollador que no tenga un récord de desarrollo probado tiene que elaborar el juego, o el demo de un juego, por su propia cuenta, lo cual requiere en el mejor de los casos un mínimo de 6 meses de desarrollo. Luego de hacer esto, se pasa a una etapa en la que hay que convencer al editor de financiar el proyecto. Todo esto sin recibir ingreso alguno (porque no se tiene producto alguno para comercializar).

Tanto Jorge como Enrique afirman que hace falta en Venezuela que exista capital de riesgo (o Venture Capital, en inglés) que sea capaz de invertir grandes cantidades de dinero a cambio de parte de las ganancias del proyecto. Enrique pone como ejemplo un país como Canadá y Jorge, a Colombia, países que están haciendo grandes esfuerzos para atraer empresas del sector tecnológico.

Considero que es tarea de todos los venezolanos mejorar las condiciones del país para que veamos esta clase de inversiones.

Más allá del juego como un producto: juegos como servicio

Los juegos como servicio es un área de la industria que todavía se está definiendo, puesto que es algo que se está aplicando desde hace muy poco. La idea principal detrás de este modelo de negocio está en que en vez de vender el juego como un producto único e inalterable una vez lanzado, el juego se actualice a lo largo del tiempo y en respuesta a la reacción de la audiencia que lo juega. Esto no aplica para los juegos que hasta ahora se actualizan solamente para corregir bugs. Esto abarca la actualización de contenido y mecánicas dentro del juego. Puede que el juego necesite o no una conexión constante a Internet.

En un artículo anterior habíamos hablado de juegos que necesitan una conexión a Internet. Por su estructura, el control de acceso reside en el servidor, por lo que se dificulta la tarea de poder acceder al juego sin pagar, y paliando así el problema de la piratería. Sin embargo, un juego como éste es complejo, hará falta un plan de ejecución para todo el ciclo de vida del juego, desde su inicio hasta darle continuidad y frescura a lo largo del tiempo, si es que tiene éxito.

Baboom Games surgió a partir de Teravision Games como una empresa para hacer juegos sociales.

¿Por qué es complejo? Sus implicaciones van más allá de los aspectos meramente técnicos de los que hablamos en ese artículo. Según Enrique Fuentes, se debe pensar en cómo recoge dinero ese juego, lo que se conoce como esquema de monetización. A diferencia de un producto empacado en una caja, la mayoría de los juegos llamados sociales (léase: juegos de Zynga, Playfish, o de Baboom Games) se pueden jugar gratuitamente, obteniendo dinero a través de los micro-pagos.

Además de ello, Enrique considera que el costo de la infraestructura necesaria para escalar el juego en grandes dimensiones puede estar bastante fuera del alcance de desarrolladores noveles.

Finalmente, menciona la importancia de incluir el importante rol del analista. Como se dijo inicialmente en esta sección, los juegos como un servicio necesitan responder ante la audiencia, por lo que se hace necesario la medición de sus actividades. Esto requiere un conocimiento (en estadística, principalmente) y una serie de herramientas para este fin.

Les dejo un video que se asemeja a lo que es el desarrollo de un servicio online: (enlace al video)

El caso de la repatriación

Aquí comenzamos a notar las primeras piedras de tranca ante la venta de un producto o servicio, ya sea por ventas de modelo publicitario u otros. Debido a que la actividad de desarrollo de videojuegos no está muy extendida, no tiene sentido servir solamente al casi inexistente mercado venezolano: se hace necesario vender al exterior también. Pero los venezolanos estamos sujetos desde 2003 a un control de cambios que impide la libre circulación de dólares en el país, una situación que ha afectado hasta a compañías con productos exitosísimos, los cuales ante la incapacidad de repatriar su dinero, toman la decisión de retirarse del mercado. Los desarrolladores de tecnología están en un negocio que les permite ganar dinero en dólares, así que podrían convertir ese ingreso en Bolívares, pero la diferencia cambiaria representa una pérdida de capital y una desventaja ante desarrolladores de otras partes del mundo.

Dolores de cabeza para el venezolano que hay un mundo más allá de Venezuela

Probablemente me arriesgue a que los comentarios se vuelvan un campo de batalla de críticas a CADIVI, pero el hecho es que la cantidad tan absurda de burocracia que hay que atravesar en esta institución previene a pequeños empresarios de poder acceder a la moneda que nos permite nada más y nada menos que comerciar con el resto del mundo.

Bonus: la Ley de Prohibición de Videojuegos y Juguetes Bélicos

Una razón de peso por la que los videojuegos no han despegado en Venezuela ha sido la inseguridad jurídica. Esta inseguridad llegó a su punto máximo cuando en 2009 se aprobó la Ley de Prohibición de Videojuegos y Juguetes Bélicos, sobre la que hemos hablado en este blog desde hace tiempo.

Originalmente cuando escribí este ensayo, no la mencioné, y fue lo primero sobre lo que mis correctores me llamaron la atención. Que por qué no había escrito sobre ella.

Fundación Filantropía

La omisión no fue intencional, aunque tampoco fue por ignorancia sobre el asunto. He estado involucrado como parte de la Fundación Filantropía desde sus inicios, y hemos hecho un duro trabajo para que los videojuegos sean reconocidos como una actividad y un hobby legítimos dentro del país. Hemos conversado con diversas instituciones del país y nos hemos dado cuenta de varias cosas:

  • SENCAMER, la institución encargada de la metrología en el país, y en particular de los códigos arancelarios que identifican los diversos productos que se importan y pasan por aduana, no posee un código arancelario claro para los videojuegos.
  • No existen cifras oficiales en la importación de videojuegos y consolas. Las consolas que se importan oficialmente en el país son catalogadas como «línea marrón», no muy distinto a un reproductor de DVD. Esto significa que la mayoría de las consolas que están en el país son importadas por particulares.
  • En general, se ignora completamente la actividad de desarrollo de videojuegos. No se considera como algo que se esté haciendo en Venezuela.

Esto no significa que no se pueda hacer nada en el campo de desarrollo de los videojuegos. Cuenta una parábola que dos vendedores de zapatos que van a un país africano, y cada uno telegrafía de vuelta a la empresa. Uno dijo «no hay oportunidad de para vender, nadie tiene zapatos», y el otro dijo «¡gloriosa oportunidad para vender!, nadie tiene zapatos aún». Existe aún mucho por hacer, y la motivación está en ver que la actividad de desarrollo de videojuegos sea una actividad factible. La manera de influenciar en el país es dedicándose a desarrollar, y no sólo me refiero a videojuegos, sino a básicamente cualquier tipo de empresa.

Conclusión

En conclusión, no hay camino fácil para emprender con los videojuegos. Sin embargo, existen oportunidades y seguirán aumentando a medida que hayan más desarrolladores y gente demostrando talento. Existen alternativas para desarrollar juegos. Obviamente no las conozco, porque si no ya la estaría aplicando yo y estaría nadando en dinero.

José Rafael Marcano, presidente de Mediatech Games Studio, comenzó operaciones en los años 90, y su producto educativo estrella «Umi», vendió 200.000 copias hasta el año 2005. Cuenta que la piratería y la diversificación de las plataformas distintas a las PC detuvo esta modalidad de negocio. Ahora está buscando desarrollar para iOS y Android, y cree firmemente en desarrollo de su propia IP, haciendo personajes nuevos y situaciones nuevas, ya que aunque es riesgoso, si el negocio tiene éxito, el éxito es sólo de él y su empresa. También trabaja desde 1995 con el Museo de los Niños, cosa que me parece genial.

Hace falta mucha creatividad y concentración para poder determinar un modelo viable. En el mundo de los negocios casi nadie implementa el modelo que pensaba inicialmente, sino que se lanza una versión inicial, y las sucesivas conversaciones formadas a partir el producto le permiten al emprendedor ir refinando el producto y orientarlo hacia el éxito. Que este ensayo sirva de punto de partida para vuestras conversaciones.

* Agradecimientos a Enrique Fuentes, Manuel Herrera, José Rafael Marcano, Jorge Padua, Jorge Palacios, Julián Rojas, Cristian Caroli, Juan Campa y Juan Carlos Ramírez por el excelente feedback que recibí de ellos al mostrarles un preliminar de este ensayo.

Charla de Google I/O: Programación de juegos con Google Web Toolkit

Google está apostando a HTML5 fuertemente. Veo con buenos ojos todo el esfuerzo que se está haciendo para equiparar las herramientas que se disponen en estas tecnologías abiertas con otras que existen desde hace ya algún tiempo (como Flash), y seguiremos viendo cosas muy interesantes.

En el siguiente video, veremos cómo se puede utilizar Google Web Toolkit, y una nueva librería llamada ForPlay para crear aplicaciones en HTML y JavaScript utilizando el lenguaje Java. El enlace al video está acá y el video lo vean embebido a continuación. También está disponible este resumen escrito de la presentación (PDF).

Haciendo videojuegos con Flixel, veSeminar web el 3 de septiembre de 2011 (Fecha cambiada)

En auténtico papel milimetrado

ACTUALIZACIÓN: Cambio de fecha del 20 de agosto al 3 septiembre, por motivos fuera de mi alcance 🙁

El mes de agosto septiembre tendremos actividad 🙂 el sábado 3 a las 3PM (Hora Venezuela GMT-4:30) estaré dando un seminario web llamado «Haciendo videojuegos con Flixel«.

Flixel es una librería open source para hacer juegos que es completamente gratuita para uso personal o comercial. Está escrito completamente en ActionScript 3, y diseñado para ser utilizado con herramientas libres de desarrollo. Flixel, a diferencia del uso común en Flash de gráficos vectoriales, se concentra en el uso de gráficos raster, o bitmaps, haciendo un trabajo de dibujo muy rápido. En el seminario veremos qué estructuras de código ofrece Flixel para facilitar la creación de videojuegos y elaboraremos un sencillo juego de plataformas.

Este seminario forma parte de los veSeminars, organizados por AUGVenezuela, el Adobe User Group que tiene como objetivo promocionar la agrupación y el talento de venezolanos. Existen otros seminarios previos al mío sobre otros productos de Adobe, por lo que te invito a pasar por la página y ver el calendario.

Con respecto al del Flixel, se darán más detalles para el acceso por esta página y por mi cuenta de twitter, @chiguire.

Construyendo castillos en el aire: cómo no comenzar a hacer tu primer juego

air-castle El desarrollo de un videojuego, para el que nunca ha hecho antes uno y quiere comenzarlo, es una tarea que parece muy sencilla, o muy complicada. Al no conocer las sutilezas del desarrollo, el novato puede terminar de dos maneras: o desarrollando un conjunto de rutinas muy pequeñas que no lo van a llevar por ningún lado (un «motor») o tratando de hacer algo que está muy fuera de su alcance (léase MMORPG, Juego de Facebook, etc.). O las dos cosas. (Ilustración por Papasama)

Esta es una situación recurrente debido a que no suele ser notoria la cantidad de esfuerzo que se aplica para un proyecto como lo es un videojuego. Un videojuego es como un acto de magia en varios sentidos: se prepara un acto para sorprender al jugador/espectador, y lo que parece sencillo en la superficie, por debajo ha llevado una gran cantidad de trabajo.

Cuando yo comencé, yo caí en el primer caso: como me gustaban los juegos de aventura estilo LucasArts, decidí hacer un conjunto de rutinas que me permitieran elaborar uno. El proyecto se llamaba FAGE (FAGE is not an Adventure Game Engine) y lo único que tuvo hasta hace algunos años era una página en Sourceforge.net, sin una sola línea de código escrita.

Otros caen en el segundo caso, y terminan también sin escribir mucho código, o sólo lo básico. El alcance del proyecto es tan grande que no saben por dónde atacar, o cómo comenzar, y dejan el proyecto a medias. El castillo en el aire nunca termina de materializarse.

Como en los juegos, hacer videojuegos es una habilidad que tiene que entrenarse desde el principio. Puedes hacer al menos 10 juegos sumamente sencillos. Puede que te parezcan una estupidez, pero muchos de estos juegos son recordados por una razón. Estudia cómo están hechos y podrás ver que los juegos más complejos habrán tomado prestado de éstos y habrán construido sobre ellos.

Publicada traducción al español del Nivel 9 de Game Design Concepts

El trabajo de traducción al español del excelente curso online gratuito de diseño de juegos Game Design Concepts continúa. Ahora el Nivel 9 sobre Historias y Juegos ha sido publicado y se une a la lista de artículos:

Además de ello, tenemos a varios traductores que se han unido al equipo, encargado cada uno de un artículo. Le doy la bienvenida a: Julián Rojas, Luis Miguel Delgado, Nadia Labeikovsky, Milagro Feijoo y  Guillermo Schiappucci. Yo continúo con el trabajo en otros niveles y editando y coordinando el trabajo del equipo.

Nos hemos conseguido con una interesante discusión en Twitter sobre la traducción de ciertos términos. Por ejemplo, gameplay, ¿se traduce en jugabilidad, o mecánica? Si se traduce en mecánica, ¿cómo queda el término mecánica, dinámica y estética en el marco MDA? Esta es una discusión que continúa, y no hay aún términos establecidos (tal como en la discusión en inglés tampoco los hay). Lo que sí sé es que lo que estamos escribiendo tiene sentido: he escuchado a diseñadores de juegos como César Sánchez, que recientemente lanzó el set básico de su juego de robots Mekawing, hablar de su trabajo, y aunque no tienen educación formal sobre diseño, los términos que emplean son familiares. Creo que esto es algo bueno, y representa una oportunidad a todos los que estamos interesados para establecer un vocabulario común, y seguir difundiendo el diseño de juegos como un campo de estudio.

Estructura de un juego de Facebook: ¿cómo está hecho? ¿cuál es la tecnología detrás?

Ejemplos de juegos sociales
Los juegos: Farmville, de Zynga; Pirates Ahoy, de Playfish; y Social City, de Playdom.

En este artículo hablaremos acerca de la estructura tecnológica de los juegos en red, al estilo de los juegos sociales o los MMORPG. El objetivo es disipar las dudas de aquellos que quieran hacer un juego social o un MMORPG como primer proyecto (respuesta corta: no lo hagan), y las de aquellos que ya tienen idea de cómo hacer juegos, pero no saben cómo planificar o cómo formar un equipo para un proyecto de esta naturaleza. En el artículo supondremos que se está haciendo un trabajo de diseño del juego, el proceso que establece las reglas del mismo para los jugadores, y que es en gran parte responsable del alcance de la estructura tecnológica que se vaya a emplear para el juego. Para los conocedores, simplificaré algunos aspectos, pero recuerden que esto es un artículo para principiantes 😛 .

Un juego de esta naturaleza necesita 3 aplicaciones: cliente, servidor y base de datos. El cliente es el programa que suelen descargar y utilizar los jugadores, el que presenta los visuales y la interfaz para que los jugadores hagan sus acciones. Esas acciones se mandan a través de la red al servidor, el cual es el verdadero encargado de procesar las acciones y aplicar las reglas del juego. La base de datos es donde se guardan los datos de los jugadores, como su información básica, y el estado actual del juego. Las 3 aplicaciones son separadas, y pueden ser llevadas a cabo por distintas personas de un equipo, pero las 3 se complementan entre sí.

Si tomásemos como ejemplo, a Farmville, de Zynga, el cliente es una película SWF (o Flash, para los no entendidos) que muestra a los jugadores el estado de su terreno, a su avatar, y permite hacer click sobre algún terreno o elemento del juego. El servidor es el que dicta cuánto tiempo tarda el terreno en desarrollarse una vez sembrado, y cuánto tiempo tarda la cosecha fresca. Y finalmente en la base de datos se guardan los datos del jugador y del estado de su partida, para todas las veces que el jugador ingrese al juego. El siguiente diagrama resume lo anterior:

El resto del artículo explicará cada uno de estos elementos y dará algunos ejemplos de tecnologías con los que se implementan.

El cliente, o frontend

El cliente es lo que solemos ver como jugadores. Podemos descargarlo para ejecutarlo en la computadora, o jugarlo a través del navegador. En esta parte se implementa la interfaz de los jugadores, se muestran los gráficos, sonidos y mensajes de información que el servidor envía. Al mismo tiempo, el cliente no suele implementar las reglas del juego, sino que de parte del jugador elabora peticiones al servidor de las acciones que hace éste, y muestra la respuesta del servidor.

En el cliente también se implementan algunas reglas (por ejemplo, en Farmville se impide hacer click en un terreno para cosecharlo si la cosecha aún no está lista), pero el equipo desarrollador se suele asegurar de que sea el servidor el que tenga la última palabra. Esto se debe a que en el pasado las aplicaciones clientes han podido ser modificadas por entusiastas y conocedores para saltarse las reglas o aprovechar alguna información extra que provenga del servidor para hacer trampa. El mejor ejemplo de esto es que en la época de popularidad de Counter-Strike, salieron modificaciones que permitían apuntar automáticamente al enemigo o ver su posición detrás de las paredes. El cómo prevenir esto cae muy fuera del alcance de este artículo, y lo expreso sólo para informar.

¿Qué tipo de tecnologías se utilizan para implementar el cliente?

Dependiendo del conocimiento del equipo o de los objetivos del juego. Actualmente se suele caer en tres campos no exclusivos: descargable, en el navegador, y móviles.

Los descargables suelen ser aquellos juegos que tenemos que descargar en su totalidad en nuestra PC o Mac, y luego instalar en la computadora. Hacer un juego descargable tiene la principal desventaja de la distribución (convencer a alguien para que descargue nuestro juego no es fácil), y el coste de tener que hacer implementaciones distintas para cada plataforma (Windows, Mac, Linux) pero ofrece muchísima flexibilidad y libertad para implementar juegos complejos. Ejemplos de descargables: World of Warcraft, Minecraft o Terraria. Se suelen utilizar lenguajes como C++, Java, Python, en conjunto con las librerías que ofrecen las plataformas para implementar la interfaz gráfica. Existen algunos lenguajes que son multi-plataforma, como Python, Java, y Actionscript con AIR, que permiten desarrollar una sola vez y desplegar para cualquier plataforma.

Los que se juegan en el navegador se suelen implementar en una plataforma que se ejecuta en el navegador, descargando previamente una adición que permite su ejecución. Por ejemplo, para jugar juegos en Flash hace falta descargarse el Flash Player para el navegador que utilices, y en el caso de Java, el JRE de Java. También existen juegos que no necesitan esta adición, y el servidor devuelve texto formateado en HTML, que los jugadores leen y en consecuencia hacen click sobre un enlace o botón que esté en el documento (ejemplo, Chore Wars).

Los móviles tienen su apartado especial. Muchos teléfonos celulares disponen de un navegador, por lo que son capaces de jugar juegos en HTML como los que mencionamos anteriormente. Pero también estos celulares disponen de plataformas sobre las que se pueden desarrollar juegos. Al igual que los descargables, hay que bajarlos e instalarlos en el celular, con la diferencia de que hay que tener ciertas consideraciones en su desarrollo (su poder de procesamiento no es el mismo, el teclado entre celulares cambia) y su distribución (el Apple App Store tiene restricciones sobre lo que puedes subir a su tienda, y en general en todos tienes que pagar un precio para subir tu software).

El servidor, o backend

El servidor es otra aplicación que tiene dos tareas: 1) comunicarse con el cliente, 2) validar las reglas del juego. La plataforma sobre la que se hace el servidor no tiene que ser la misma sobre la que se hace el cliente, y por eso se pueden encargar de ambos dos equipos distintos. El servidor es una aplicación que corre constantemente en una máquina esperando peticiones de los clientes. Cuando recibe una petición del cliente, traduce la petición al formato de datos que pueda entender, valida que la petición sea correcta, y devuelve una respuesta.

En ese sentido, el servidor no conoce sobre la interfaz que va a ver el jugador. El servidor no suele saber de qué mensajes mostrar, ni animaciones, sino que suele ser un proyecto bastante separado de ello. Aún así, en otra parte del servidor (o en otra computadora) se suelen guardar los elementos que necesite el cliente para ejecutarse, sobretodo en el caso de clientes que se corren en el navegador que necesitan cargar sus recursos desde la red.

Existe la posibilidad de que fuese tan exitoso de que se considere implementar otros clientes en más de una plataforma. En este caso habría que extender la primera tarea de la aplicación, comunicarse con el cliente, para que sea capaz de hablar con cada tipo de cliente, ya que cada uno tiene maneras distintas de comunicarse.

 

¿Qué tipo de tecnologías se utilizan para implementar el servidor?

Existen muchos lenguajes de programación sobre los que se pueden escribir aplicaciones pa servidores, y para cada lenguaje existe un servidor.

En el caso del lenguaje Java tenemos una implementación estándar de servidor, que es Tomcat, y varios frameworks sobre los cuales se construyen las aplicaciones, como Struts o Spring. En el caso del lenguaje Python tenemos frameworks como Django o web2py. En el caso de PHP tenemos CakePHP o KumbiaPHP. Existen otros lenguajes capacitados para escribir aplicaciones para servidores como Ruby.

Hago un repaso ligero de todos estos nombres porque es difícil realmente que un servidor para un juego sea un buen primer proyecto para aprender a utilizarlos, por lo que no tiene mucho sentido que te diga cuál plataforma es mejor.

La base de datos

La base de datos permite almacenar, obtener y relacionar información, de tal manera que se puede consultar sobre ella para obtener datos agregados. Cuando hablamos de esto, hablamos de un software de gestión de base de datos, compuesto por un servidor (¡otro!) que guarda la información, y una librería de código que utiliza nuestro servidor para comunicarse con ese servidor de base de datos. Existen varios tipos de bases de datos, pero el más utilizado de todos (y el que implementan las tecnologías más populares) es la base de datos relacional, que emplea tablas donde se ponen registros de los objetos que se guardan, y estas tablas pueden hacer referencia a otras, para poder unir la información y posteriormente poder consultarla.

¿Qué tipo de tecnologías se utilizan para las bases de datos?

Por lo general, nadie implementa un software de base de datos (muy fuera del alcance de un proyecto suficientemente grande como lo es un juego que tratamos en este artículo). El software que se adopta depende de muchos factores, como costo del software, facilidades de administración, informes de desempeño y demás características.

Entre las opciones más populares tenemos MySQL, PostgreSQL, Oracle, sin orden de preferencias. MySQL y PostgreSQL tienen la ventaja de que se dispone de una versión libre descargable, ideal para empresas con poco capital monetario. En mi experiencia, PostgreSQL ha sido más robusto para aguantar un fuerte uso que MySQL, pero la experiencia varía entre los equipos de desarrollo (ej. Facebook utiliza MySQL como base de datos). Oracle es una base de datos comercial, con una licencia de un costo inmanejable para pequeñas empresas, pero es de las más mencionadas en el campo de las bases de datos.

Conclusión

Terminado el paseo por todas los componentes necesarios para implementar un juego social, me queda decir que el objetivo de todo esto no es disuadir a aquellos que estén interesados en hacer un juego de este tipo. Quizás si debo remarcar que entre los novatos existe un gran convencimiento de que un proyecto así se puede llevar a cabo a la primera, además de un convencimiento de que el hecho de que estos proyectos atraigan tanta atención (y dinero) demuestra que no vale la pena hacer otro tipo de proyecto. Cada juego atrae a un distinto tipo de público, y así seguirá siendo (afortunadamente) a medida que las tecnologías pasen. Si no se convencen, revisen este cómic de xkcd.

A un equipo de programadores experimentados que esté interesado en embarcarse en un proyecto así le recomendaría que primero conociera las diversas tecnologías que van a utilizar para implementar el juego. Probablemente unos juegos pequeños que demuestren el uso de cada una.

Armando un juego con fisica en Python, Pygame y Pymunk (I)

En El Chigüire Literario siempre he recomendado a aquellos que están haciendo un juego por primera vez en su vida que desarrollen un juego en 2D. La reacción suele ser adversa: desarrollar un juego en 2D es como volver al pasado, en una época en la que existen los juegos 3D y han adquirido un realismo notable. Supongo que a esta percepción le debemos sumar la visión del juego 2D como el juego vieja escuela (pensemos en MegaMan) donde la sensación de juego es como la de un arcade, en contraste con los juegos en 3D ricos en interacciones físicas que se asemejan a la realidad.

La buena noticia es que esto no se limita solamente al 3D. Se han hecho excelentes librerías para tener simulaciones físicas para el caso 2D que se sientan reales. Una de estas librerías es la ya famosa Box2D, por Eric Catto, utilizada principalmente en el juego Angry Brids. Otra librería muy completa, que es la que reseñaremos en este post, es Chipmunk. Chipmunk es una librería de física de cuerpos rígidos en 2D escrita en C. Para algunos universitarios la mención de «física de cuerpos rígidos» puede causarles dolor en su cuerpo (valga el mal juego de palabras 😛 ), pero para fines de este tutorial, lo único que tenemos que comprender son los conceptos que introduce la librería y cómo se deben utilizar para nuestros fines. Al estar escrita la librería en C, significa que hay una gran diversidad de bindings a otros lenguajes de programación, por lo que podemos usar esta librería escribiendo código en el lenguaje de nuestra preferencia.

Como en este sitio nos gusta Python y PyGame, aprovecharemos Pymunk, el binding para Python que tiene Chipmunk. Es tan fácil de instalar como PyGame, por lo que en pocos instantes vas a tener el poder de crear juegos con interacciones físicas realísticas y sin tener que aprender un montón de conceptos antes de comenzar.

Sigue leyendo Armando un juego con fisica en Python, Pygame y Pymunk (I)

Prototipando ando

Ahora que se nos terminó el primer semestre de 2011 es buen tiempo para revelar lo que ha pasado en estos días.

Tengo un tutorial sobre Pygame y Pymunk con el que me he retrasado por múltiples razones, la principal de ellas es que para escribir un tutorial siempre chequeo mil referencias para asegurarme de que no estoy enseñando barrabasadas. En eso se me va el tiempo, y bueno… suelen surgir cosas que en el camino debo resolver #atenciondepajarito .

Por otro lado, he estado anotando, recolectando y rumiando ideas para juegos. De hecho, una de esas ideas la estoy implementando para ver a dónde va a llegar. Los que viven o han visitado Caracas alguna vez reconocerán algunos elementos en el siguiente screenshot:

Los que no lo conocen, es una representación de las estaciones y trenes del Metro de Caracas. El primer screenshot es el estado más reciente del juego. En algún momento del desarrollo hice un experimento para probar una perspectiva completamente 2D lateral, pero no iba a resultar para el mecanismo de juego que tengo pensado. El juego lo estoy haciendo con la librería Flixel, que está basado en Actionscript 3, y aunque puede ser confuso para los que no han hecho un juego antes, tiene buen poder para los que ya conocen algo de programación.

Tengo otras ideas para juegos que involucran algo de la idiosincracia caraqueña, pero esas ideas las revelaré cuando estén más maduradas 😛 .

The Complot busca programadores en C#, XNA o Unity

Les dejo la siguiente información de The Complot, un estudio que está fundando Juan Campa:
Estamos en búsqueda de un programador para trabajar en el desarrollo de un videojuego de alta calidad para plataformas móviles (iPhone, Android, Windows Phone). Si estás interesado en comenzar una carrera en la industria de los videojuegos esta puede ser una oportunidad para ti.

El candidato ideal debe tener las siguientes características:

  • Disponibilidad de tiempo completo (40 horas semanales) para trabajar en el este de Caracas (cerca de la Univ. Metropolitana).
  • Experiencia con *alguna* de estas tecnologías:
    • C#
    • XNA
    • Unity
  • Conocimiento *general* de algunas area de programación relacionadas a videojuegos, por ejemplo:
    • Algebra 3D (vectores, matrices, posición, rotación, etc).
    • Comportamientos modelados con máquinas de estados.
    • Conocimiento sobre assets relevantes al área (modelos 3D, texturas, efectos de sonido) y cómo funcionan en videojuegos.
    • Rendering en tiempo real.
  • Conocimiento general de ingeniería de software:
    • Patrones de diseño.
    • Diseño de software OOP (orientado a objetos).
  • Excelentes habilidades de debugging.
  • Proactivo, responsable y con muchas ganas de aprender todo lo relacionado con esta industria.

Puntos extra:

  • Cualquier habilidad relacionada será considerada. Por ejemplo:
    • Haber participado en algún proyecto relacionado.
    • Conocimiento del funcionamiento de lenguajes con memoria manejada, en especial C#.
    • Conocer bien las herramientas de debugging, en especial las de Visual Studio.
  • Ser un experto en porting de juegos de XNA a Unity!!

Responsabilidades:

Para el proyecto actual, estará encargado de hacer y ejecutar un plan
de porting de un juego de XNA (C#) a Unity Pro (También en C#) en
coordinación con un equipo de trabajo. Otras posibilidades para
proyectos futuros.

Algunos beneficios de trabajar en The Complot y en videojuegos en general:

  • Horario de trabajo flexible.
  • Ambiente de trabajo casual y entretenido.
  • Oportunidad de desarrollar ideas creativas e innovadoras.
  • Trabajar siempre con tecnología de punta.
  • Todos quieren saber de tu trabajo.
  • Desarrollas habilidades avanzadas en muchas disciplinas de la computación: computación gráfica, redes, lenguajes, interfaces, IA, ingeniería de software, sistemas operativos, discretas, física y en especial matemáticas.

Interesado? Escribe a: trabajar@thecomplot.com con tu CV e información explicando porque eres el candidato ideal. Lo más importante es que tengas ganas de trabajar y aprender bastante. El proyecto arrancará en las próxima semanas así que muevelo 😉

Si no estás disponible ahorita pero igual te gustaría trabajar en un futuro envíanos tu información que también nos interesa.

Videojuegos en las JOINCIC: «Desarrollando videojuegos en Venezuela» y «Videojuegos. Presione ENTER para comenzar»

En estas 4tas Jornadas Interuniversitarias de Ciencias de la Computación, las JOINCIC, que son del 1ro al 4 de junio de 2011, tendremos charlas sobre videojuegos y videojuegas para los interesados e interesadas 🙂 :

  • El Miércoles 1ro, a las 10:00AM: «Desarrollando Videojuegos en Venezuela«, dictada por mi persona. «Un repaso acerca del desarrollo que se ha hecho sobre videojuegos en Venezuela, y una introducción a algunas técnicas para comenzar a hacerlos, incluyendo programas para comenzar y algunos tips».
  • El Sábado 4, a las 02:30PM: «Videojuegos. Presione ENTER para comenzar«, dictada por Jorge Palacios, desarrollador de videojuegos y participante regular de los Caracas Game Jam. «Aprender a programar y desarrollar juegos es una actividad que, en Venezuela, se lleva a cabo prácticamente de forma autodidacta. La idea es brindar un plan de trabajo (orientado a programadores y aplicable a otras ramas) basado en paradigmas comprobados, con la finalidad de que todos aquellos entusiastas por el desarrollo de videojuegos (amateur o con fines profesionales) emprendan su camino de la mejor manera».
  • El Sábado 4, de 2:30PM a 4:30PM: la mesa de trabajo «Desarrollando Videojuegos con Game Maker«, dictada por mi persona. «Game Maker es un programa hecho por Mark Overmars de la Universidad de Utrecht, inicialmente para ayudar a los estudiantes de su curso de desarrollo de videojuegos, para facilitarles los aspectos operativos de los videojuegos y concentrarse en el diseño de los mismos. Hoy en día Game Maker es desarrollado y publicado por YoYo Games, y es un ambiente completo y muy popular de desarrollo de videojuegos. En esta mesa de trabajo aprenderemos a cómo hacer un juego muy sencillo con este software.»

Lamento que los horarios de mi mesa de trabajo y la de Jorge hayan coincidido. Lo que me queda por decirles es que los puestos de las mesas de trabajo suelen ser limitados, así que pregunten el primer día el procedimiento para inscribirse. Si no pueden lograrlo, tienen la charla de Jorge que será mucho más técnica que la mía del miércoles.

Otras charlas que no están directamente relacionadas con videojuegos, pero que seguramente les será de mucho interés:

  • Sabado 4, de 10:00AM a 12:00M, Mesa de trabajo: «Desarrollo de aplicaciones para iOS«, dictada por Ricardo Casanova: «Esta mesa de trabajo persigue acercar a los asistentes al mundo de desarrollo de aplicaciones para Mac, particularmente iOS. En ella se pretende dar una introducción básica al sistema operático Mac OS X, el entorno de desarrollo de aplicaciones para Mac / iOS y la realización de una app demo».
  • Jueves 2, a las 10:30AM, Charla: «La programación en la GPU: El futuro en el desarrollo de aplicaciones«, por Esmitt Ramírez: «La Unidad de Procesamiento Gráfico (GPU) es un procesador dedicado al despliegue de gráficos en 2D/3D que ayuda a la CPU en aplicaciones interactivas como juegos de video. La GPU se encuentra en las tarjetas gráficas, teléfonos móviles, tablets, consolas, etc. Recientemente ha surgido un concepto de utilizar este procesador para realizar cómputo de propósito general de forma paralela, eficiente y a bajo costo. La idea general es crear el dilema: GPU vs. CPU».
  • «Maya 3D» por Álvaro Planchart. No se da más información en la página del evento.

El costo del evento por los 4 días es de 200BsF, y si estudias en la USB o en la UCAB, te enterarás en dónde se venden las entradas, y si no, en Ticket Mundo también las puedes conseguir.