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.
Hola, cuanto tiempo!
Os invito a disfrutar de
un video musical que han hecho ex-compañeros de Dygra, para un concurso de The Prodigy. Estupenda realización, estilo y narrativa, va como un guante al video. Y con final sorpresa! Votad! :)
En noviembre, en esos huecos y tiempos muertos de 5-10 minutos que surgen en el dia a día, me entretuve programando un raytracer en Python.
Motivos:
1. Reaprender python
2. No se necesita un motivo para hacer un raytracer!
El código es muy chapucero. Hice lo mínimo para conseguir lo que quería, en cada momento. Al final, llegué a implementar (no de forma general):
- Esferas y planos,
- Componentes difusa y especular,
- Reflexión,
- Ambient Occlusion (con coloreado, a lo Final Gathering)
- AntiaAliasing básico
No hay mejor forma de testear un raytracer que por sus imágenes, y estas son todas las que hice durante el desarrollo:
Las imágenes van avanzando solas, a menos que pases el ratón por encima.
Podría dejar el código para descargar, pero me da vergüenza, es muy chapucero y sucio :P Si alguien lo quiere, que me lo pida personalmente, y no tendré problema en pasárselo.
Vaya año más movido... viajé a Canarias, Granada, Menorca, Madrid, Guimaraes, París, y dentro de casa, conocí las estupendas playas de Ézaro y Carnota.
Me mudé a las afueras de Santiago, a una urbanización donde pude disfrutar de unas fresas exquisitas, extraidas de la minihuerta de la casa, y estupendas patatas de Coristanco de una señora que las ofrece a domicilio :D
Estuve en Dygra Films, pasé por un ERE, y acabé en Bren Entertainment (donde estoy ahora).
Siempre se puede hacer más, pero no me quejo con los proyectos que he llevado a cabo: La aplicación de Trenes para el iPhone, la página web de Sergio Casas, el rediseño de mi (esta) web, diseños de personajes y posters de dos películas, LUXI -juego ganador de ArtFutura-, otro juego flash para la Xunta (próximo a presentarse), mattepaintings para una TV-Movie de la TVG,
En progreso tengo una serie de miniaplicaciones para la nueva edición de un libro de varios profesores de la USC, y una aplicación de iPhone para GesBiblo y la Xunta de Galicia.
Objetivos para el 2010: Ser más selectivo, e intentar enfocarme en algún area en concreto :P
Feliz año a todos!! y cuidado con las uvas, las cargan de sulfato!
:)