Perdidos en Cooperalia ~ 1 year ago
Hace tiempo que no doy noticias. La verdad es que este comienzo de año ha sido bastante estresante, llegando a solapar tres proyectos a la vez (además de mi trabajo de 8 horas en Bren). Poco a poco estos proyectos se van finalizando, y empiezo a ver la luz al final del túnel.
Uno de estos proyectos es un juego Flash que realicé con Orge, Dani Montero, David García y Julio Iglesias para Cooperativas de Galicia, que solicitaron un juego que fomentara la idea de la cooperación. Tras darle vueltas a varias opciones, optamos por realizar una versión moderna y simplificada del clásico Lost Vikings. Tres compañeros, cada uno con sus habilidades, deben cooperar para pasar cada una de las 15 pantallas del juego.
David se ocupó de la música, Dani de los gráficos (con puntuales aportaciones de Julio), Orge del guión, coordinación, diseño de niveles y gameplay, yo me ocupé de toda la programación.
Creo que lo más difícil del juego fue saber poner los límites, y diseñar el gameplay del juego. Dado el tiempo de desarrollo que teníamos (sobre dos meses) y el tipo de juego que se quería hacer, sabíamos que no iba a ser un juego simple y típico de Flash, pero tampoco podíamos irnos por las ramas y pretender -como suele pasar- hacer un Machinarium. Había que poner los límites, tanto en cantidad de música y efectos, en gráficos, y en complejidad de programación.
Finalmente fuimos quienes de llegar a buen puerto, y aunque en la lucha contra el tiempo siempre se sale perdiendo, y quedaron muchas cosas por mejorar y por realizar, creo que es un producto bastante decente.
Mis agradecimientos a Orge, Dani, David y Julio (buen trabajo a todos!), y a los familiares y allegados que sufrieron nuestras ausencias.
:)
Datos técnicos para los interesados y curiosos:
En cuanto a lo que me toca -programación-, fue un proyecto muy interesante. Al comienzo lo más complicado fue el tema de las colisiones con el terreno -un terreno totalmente arbitrario e irregular-, para lo que tuve que realizar bastantes pruebas y prototipos. Luego estuvo interesante la organización y precarga de todos los assets y niveles, y por último, la gestión de todo el gameplay, las relaciones y dependencias entre los objetos, etc.
- Las colisiones de los personajes con el escenario se realizan con elemento_del_escenario.hitTestPoint(punto_personaje)
Los elementos del escenario pueden ser los suelos/techos, las paredes, las plataformas, objetos, etc. y cada personaje puede tener hasta 9 puntos de colisión (en las mismas posiciones que las casillas de un tres en raya).
- Todos los sprites (jugadores, enemigos, objetos, etc.) del juego van juntos en un swf, a modo de librería. Cada pantalla va en un .swf independiente, y simplemente contiene los fondos y clips 'bien nombrados' que indican dónde van los assets del swf librería.
- Ficheros/clases utilizados: Enemy.as, Item.as, Target.as, Entity.as, KeyPoll.as, Food.as, Level.as, G.as, Player.as, InventoryItem.as
Los gordos son Level.as, que gestiona todo el loop principal, colisiones y lógica del juego, y Player.as, que gestiona los movimientos y acciones de los jugadores.
- Toda la música y sonidos están en mp3 externos, para que David pudiera modificarlos y probar cómo quedan en el juego.
- A grandes rasgos: 3000 líneas de código indocumentado, 10 MB de sonido, y 4MB de gráficos.

