Permalink | Archivado en: Alma Geek, Campus Party, Desarrollo de videojuegos, Destacados
Este post llega con bastantes meses de atraso, concretamente los que han transcurrido desde la última Campus Party hasta hoy. En mi clan nos inscribimos en el área de Desarrolladores y participamos en el concurso de desarrollo rápido de videojuegos, aka “Crea un videojuego en 3 días sin dormir”. La experiencia fue muy positiva y aprendimos muchas cosas, así que quiero compartir algunos consejos para aquellos que alguna vez participen en una competición parecida.
De nada sirve hacer un videojuego si no es divertido. En nuestro caso, los organizadores del concurso propusieron cuatro conceptos (Atracción/Repulsión, Música, Luz/Oscuridad y Contracción/Expansión), de los cuales teníamos que elegir dos para basar la jugabilidad del videojuego en ellos.
Nos pasamos toda la primera noche proponiendo ideas (a cual más absurda) y no nos fuimos a dormir hasta encontrar una que nos gustara: un plataformas multiplayer en el que los jugadores se tuvieran que matar los unos a los otros. El concepto de Atracción/Repulsión estaba representado en las armas de los jugadores: el muñeco que controlaban tenía el poder de atraer/repeler objetos y usarlos en contra de los adversarios. En cuanto al de Contracción/Expansión… simplemente hicimos que cada personaje pudiera cambiar el tamaño, y esto afectaría a la física de las atracciones y repulsiones (por ejemplo, si te lanzaban un objeto, te desplazabas menos si eras más grande).
En resumen, habíamos perdido medio día (1/6 del tiempo total de desarrollo) simplemente pensando, pero teniendo en cuanta que buena parte del éxito del proyecto se basaría en eso, considero que el tiempo está bien invertido.
Cuantas menos tareas tengas que dependan de otras, mejor, ya que podrás trabajar en paralelo con el resto de tu equipo. Esto parece algo obvio, pero es crucial: si para lo que tienes que hacer ahora, tienes que esperar a que Fulanito acabe lo suyo, y Fulanito está durmiendo, estás jodido. 72 horas (o 24, o una semana) son muy pocas para permitirse el lujo de no hacer nada, aunque sea durante media hora.
En nuestro caso, dividimos las tareas según nuestras habilidades (más que deseos personales). En nuestro equipo de cuatro personas, las cosas estaban tal que así:
Como veis, dos de nuestros programadores no tenían experiencia previa con el compilador/motor que empleamos. Así que Ernesto se metió manos a la obra a aprender los fundamentos del lenguaje y desarrolló toda la interfaz/menús del juego. El otro programador, Zyope, desarrollaba en Delphi, así que se puso a programar el editor de niveles con esa herramienta. Ferminho, que era el que más experiencia tenía con BlitzMax, se encargó del juego en sí: física, multiplayer, etc (pobret la que le cayó encima). Y en cuanto a mí… quedé relegada al puesto de “Pinta y Colorea”, qué remedio.
Como veis, las funciones de cada uno eran prácticamente independientes, así que podíamos trabajar más o menos a nuestro ritmo, siemple que cumpliéramos el plazo final.
Cuanto menos código tengas que escribir, mejor. Cuantos menos gráficos tengas que dibujar, mejor. Para esto, hay que simplificar y reutilizar todo lo que se pueda.
Por ejemplo, en un principio en el juego iban a haber diferentes objetos que se pudieran arrojar. Al final nos decidimos por uno sólo (nos ahorrábamos gráficos y programación): cajas de madera. Ferminho empezó a programar la física de las cajas, pero apareció un bug que provocaba que algunas de las cajas no se balancearan bien y quedaran suspendidas en equilibrio sobre una esquina (o rotando indefinidamente). Nos íbamos quedando sin tiempo, así que… ¿qué hizo Ferminho? Cambió las cajas (cuadradas) por bolas (esferas), de forma que pudo eliminar la rotación de estas.
Otro ejemplo, referente a los gráficos. Aquí tenéis concept art del juego:

Como veis, los muñecos tienen una forma extremadamente simple, para facilitar el dibujo y animación. Pero aún así, no fue suficiente. Los gráficos originales son aún más simples: no tienen manos, y cada muñeco no tiene un elemento distintivo (en la ilustración uno aparece con pinchos, otro con cuernos, otro con manchas…), sólo se diferencian en el color.

Y sí, un verdadero alarde de originalidad en los nombres (estaba perra y tenía sueño, què voleu…).
Si durante la competición, hablas y te interesas por lo que hacen tus compañeros (o rivales, según el punto de vista), te divertirás más, te motivarás más, aprenderás más, harás amigos, recibirás feedback y te ayudarán.
En la Campus Party, todos los que participábamos en el concurso estábamos sentados cerca, así que con frecuencia nos íbamos visitando los grupos unos a otros. Con esto nos motivábamos más (“¡Eh, no veas qué pasada de juego están haciendo estos, tenemos que hacer el nuestro todavía mejor!”) y además, fomentábamos el buen rollito, ayudándonos los unos a los otros. Por ejemplo, EJSainz (antiguo desarrollador de Pyro) estaba agobiadillo con el tema de los gráficos y se había olvidado su tableta digitalizadora en Barcelona: yo le dejé la mía. Él, a su vez, nos proporcionó un montón de feedback. Así que ya sabes, si ayudas a los demás, tú también recibirás ayuda.

Independientemente del resultado de la competición, habrás ganado estas cosas:
Y es que el haber desarrollado un videojuego es siempre una satisfacción enorme. Citando las palabras de Ferminho:
Estamos muy orgullosos de lo que hemos conseguido [...]. No nos ganamos la vida desarrollando juegos (o no todavía), y nos gusta esto; pero estamos acostumbrados a proyectos a medio terminar, grupos con ilusiones que se difuminan con el tiempo, falta de tiempo… y este concurso ha sido algo como darle una patada a todo eso, y demostrarnos que si queremos, podemos.
Si tenéis curiosidad por el juego, podéis descargaros los binarios para Windows y para Linux (el código fuente lo liberaremos cuando limpiemos los bugs y pulamos un poco el juego). Una de las bases del concurso era escribir un blog contando el desarrollo, así que aquí lo tenéis.
PD: Ganamos, por cierto.
Si quieres hacer un trackback, usa esta TrackBack URI
Los párrafos y saltos de línea se ponen de forma automática. La dirección de e-mail no se mostrará nunca. Se permiten las siguientes etiquetas XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Pues como debe haber molado, yo creo que uno de los ambientes mas productivos que pueden haber es cuando esta toda la gente del equipo en un mismo lugar totalmente metidos en el tema.
He intentado probar el juego, pero el archivo .tar.gz esta mal y no descomprime.
Comentario de Hermann — 18-03-07 7:27 pm
Aiya!
¿Y no puedes liberar el código aunque sólo sea para generar un binario para Linux PowerPC?
Tuvo que ser bestial, la envidia me corroe
.
Comentario de Shock — 18-03-07 8:10 pm
Qué de grandes verdades. Sólo puedo decir que estoy más que de acuerdo, (sobre todo en las citas del tal Ferminho xD) y que fue un placer trabajar contigo, lo volvería a hacer sin dudarlo ^^
Escuchad sus sabias palabras!
PD: habrá que mirar qué le pasa a ese paquete de la versión Linux, es verdad, está jodido :/
Comentario de Ferminho — 18-03-07 11:19 pm
También hay que comentar que conviene dormir de cuando en cuando, yo dormí tan poco que el último día tenía la cabeza a punto de estallar
Me has quitado la idea del post, aunque seguramente lo escriba igualmente porque mis consejos van por otro lado
Por cierto, los menús los despaché el último día, los dos anteriores me los pasé descifrando la librería de multiplayer que lleva blitzmax: conexión, sincronización, etc… Total, para que al final no diese tiempo a implementarlo para la entrega xD
Este año la competición de desarrollo rápido no es para móviles y no exclusivamente de juegos. Ya veremos si de aquí a julio me lía alguien paraparticipar
Comentario de Ernesto Jiménez — 19-03-07 2:18 am
Y para cuando la versión para OS X?!!
Yo quiero probarlo!
Comentario de RuonorY — 19-03-07 7:47 am
Suscribo la petición para la versión OSX.
Comentario de ArchEnemy — 19-03-07 8:42 am
Versión para OS X si alguien me regala un MacBook con el que pueda compilar…
Comentario de BenKo — 19-03-07 11:17 am
La verdad es que creo que el ego, junto con el sexo, son las fuerzas que mueven el mundo.
Y está bien que nombres que se gana ego al hacer esas cosas, porque si no fuera por el ego… ¿Qué sería de los hackers? ¿Y del Open Source? ¿Y de los mods? ¿Y de la Scene?
Ego todo ello. Yo como buen budista, sanguijuela total ^^ Mi ego se mide en euros.
Comentario de Guachuguo — 20-03-07 7:11 pm
Molón el post ^^
Comentario de zyope — 25-03-07 6:46 pm
Que envidia!! siempre dejo los proyectos a medio terminar :S
felicitaciones!!
Comentario de JaViS — 10-04-07 7:19 pm
Antes que nada, los felicito por el trabajo que han hecho. Terminar algo así en tan poco tiempo no es nada sencillo. En verdad que tambien les envidio tanto el haber participado, como el haber terminado. En donde vivo no he escuchado de ninguna Campus Party
Comentario de P-los — 16-04-07 10:31 pm
Hi, donde esta la pagina de ferminho ? Que recuerdos aquellos tiempos de divx y fenix ;P
El tutorial de los marcianitos y eso !! Arà unos siete años como passa el tiempo, veo que aun no habeia pasado a los juegos 3D juas Un saludoooo
Comentario de Yuse — 17-04-07 11:01 am
Que grande
yo tambien kiero, pero no se si seria capaz de programar un videojuego tan currau, todavia me queda mucho por aprendr de programacion
Sabeis de algun sitio donde haya tutoriales para programar juegos??
Comentario de Nasgor — 18-05-07 10:54 am
felicidades bien hecho yo voy a hacer un juego para graduarme de ingeniero espero que me vaya bien je je
Comentario de alex — 09-06-07 2:38 am
Bua! un juego en 72 horas! vaya record! Si q me suena eso de proyectos a medio terminar (de ahi el nombre de mi blog) y falta de tiempo y sobre todo que un proyecto q tienes por hobby se vuelve un trabajo y al final lo dejas como todo buen geek, pero sip, ese concurso de fast coding tiene toda la pinta de ser muy motivante. Este año me quede sin campus pero el que viene no falla, y participaremos
Comentario de ferdy182 — 18-08-07 1:18 am