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.
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.
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:
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.
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.
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.
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 😛 .
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.
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.
Tengo el placer de anunciar la publicación de los Niveles 7 y 8 de la traducción al español del curso online Game Design Concepts, escrito por Ian Schreiber en el verano de 2009 para todos los interesados en aprender sobre el diseño de juegos a través de la elaboración de prototipos de juegos de mesa.
Inicié el trabajo de traducción poco tiempo después de iniciado el curso, pero múltiples ocupaciones me impidieron seguir con el trabajo. Estoy ahora continuando con el trabajo de traducir 20 artículos grandes, por lo que la velocidad es un tanto lenta. Pueden conseguir los artículos traducidos al español en http://gamedesignconcepts.pbworks.com/Spanish.
UPDATE: El salón del evento ha sido cambiado del Edificio Cincuentenario al Auditorio de Biblioteca, el cual se encuentra en el Edificio de Biblioteca (al lado del Centro Loyola, donde está el Aula Magna) en la Planta Baja.
Este Sábado 7 de Mayo de 2011 en la Universidad Católica Andrés Bello de Caracas el grupo de interés Python Caracas ha organizado un Día Python, un evento especial en el que se le dará difusión al lenguaje de programación Python y las diversas librerías que están construídas sobre este lenguaje. Ya que en este blog somos fans del lenguaje (y es requisito para el curso universitario que dicto), estaré dando una charla sobre PyGame a las 2 de la tarde. Les recomiendo que asistan a todas las charlas y talleres que puedan, desde las 9AM hasta las 5PM, en el Auditorio de Biblioteca, el cual se encuentra en el Edificio de Biblioteca (al lado del Centro Loyola, donde está el Aula Magna) en la Planta Baja. La entrada es completamente libre y para todo público.
La agenda de charlas y talleres es la siguiente:
Charlas:
09:00AM – Bienvenida y apertura.
09:00 – Python: Breve historia – Yris Ochoa.
09:30 – Aplicaciones de Escritorio con Python – Camilo Torres.
10:00 – Desarrollo Web con Django – Tomás Henríquez.
11:00 – Python Para Programadores – Jesús Gómez.
12:00M – Almuerzo.
01:00 – Python 3 – Ponente todavía por anunciar.
02:00 – Desarrollo de Videojuegos con Python – Ciro Durán.
03:00 – OpenERP – Nhomar Hernández.
04:00 – Python vs El Mundo – Carlos Gustavo Ruíz
05:00PM – Cierre.
Talleres:
9:00 AM- Pruebas Unitarias con Python – Jesús Gómez.
Desconozco si dispondremos de streaming en vivo, aunque estamos organizándonos para poder grabar la mayor parte de las charlas y poder publicarlas posteriormente. Si deseas difundir el evento lo puedes hacer a través del evento en Facebook. Anímate a aprender un lenguaje divertido y sencillo de aprender. Desde acá agradezco al grupo Python, y en particular a Israel Fermín por los buenos oficios en la logística de este evento.
La UCAB Caracas queda en Antímano, al final de la Av. Teherán. La universidad dispone de amplio estacionamiento, y se puede acceder a pie a pocos metros de la Estación de Metro Antímano.