18 de febrero de 2011

Bon dia a la Vila del Pingüí!

Cuánto tiempo, ¿no? No es que me haya olvidado del blog... bueno, sí. Pero es que realmente no he hecho gran cosa por mi cuenta desde que empecé a trabajar en Novarama...

En este tiempo han pasado muchísimas cosas. Entre ellas, colgamos la demo del Vapor Mayhem (en realidad el link ya estaba en los enlaces de la derecha desde hace tiempo, pero no lo había anunciado), la empresa ha sacado inviZimals Shadow Zone siendo una vez más un gran éxito y se ha "presentado" nuestro nuevo juego, Reality Fighters para NGP. Lo poco que se ha podido ver se puede encontrar en la demo reel que Sony mostró en la presentación de la consola, alrededor del segundo 47:



Es el primer juego en el que realmente he participado, así que espero que salga todo estupendamente.

Ah, y me he independizado, pero eso no tiene mucho de interesante...

¿Y por qué rescatar el blog? Pues en realidad no sé si es un "rescate", pero desde hace poco poseo un iPhone 4 y he empezado a trastear poco a poco con él... Lamentablemente ya no dispongo del tiempo libre que tenía hace un par de años, pero tengo un par de cosas en mente (y una de ellas en código!) que posiblemente comparta por aquí dentro de poco.

Por ahora no me he metido en el tema gráfico en iPhone, pero ya llegará...

26 de octubre de 2009

La cuelgo o no? :S

Más o menos ya he dejado lista la mini-demo que he estado probando estos días. Lo malo es que tampoco es que sea nada novedoso o medianamente espectacular, y para acabar de rematarlo tampoco es que sea un ejemplo de buen rendimiento... Básicamente en lugar de intentar cuadrar un shadow map para toda la escena al estilo de lo que hice para el Vapor Mayhem, genero un pequeño shadow map para cada objeto que castea sombra, luego hago un render normal para pintar la escena y por último, para cada shadow map vuelvo a pintar aquellos objetos que reciben la sombra con alpha blending y la operación de MIN para oscurecer las partes sombreadas. Total, que por ejemplo para 4 objetos tengo que pintar el suelo (si no se hace self-shadowing) 5 veces para mostrar todas las sombras, lo cual no mola demasiado.

Así que ahora no se si colgar la demo, si intentar mejorarlo o directamente olvidarme de ello... Por lo menos se pueden pintar sombras relativamente molonas con shadow maps de tan sólo 64x64...

23 de octubre de 2009

¡Por fin se acabó! ¡Por fin casi empezó! Por favor, ¿puedes parar?

Bueeeeeno.... Han pasado muchas cosas en los últimos días. Por un lado, ya terminé el Master de Videojuegos! Tenemos por ahí un link a MegaUpload con el juego, pero faltan un par de cosillas y que esté subido a un sitio así es super cutrero, así que no lo pondré por aquí hasta que no esté hospedado en un lugar decente y siendo la versión final de verdad. Al final estoy bastante contento con el resultado (aunque como siempre, hay muchas cosas que podrían haber salido mucho mejor), y creo que la parte que más me interesaba a mí y en la que más tiempo que trabajado (los gráficos) ha quedado bastante apañada, sobre todo con todas las limitaciones que había, tanto restricciones de hardware (lo del Shader Model 2.0 de las narices) como de tiempo, ya que no sólo me podía dedicar a ello.

Por otro lado, por fin he conseguido un trabajo en el sector del videojuego! Tampoco quiero ponerme en plan niña chillona histérica ni nada por el estilo (además que nunca me he puesto a contar cosas personales en este blog) pero estoy realmente contento. A partir del día 2 de noviembre empezaré a currar en Novarama (que próximamente estrenará Invizimals para PSP) con gente como Rubén que ya conocía de XNACommunity, y que como recordarán algunos le he fusilado vilmente algunos grandes trabajos como el importador de MD5 y Cal3D para XNA. Lamentablemente me temo que no podré contar nada lo que haga allí, pero mira, es lo que hay. :P

Por último, se nota que llevo mucho tiempo haciendo lo mismo todos los días (currar en el proyecto del master), porque fue empezar las "vacaciones" y entrarme una especie de ansiedad chunga en plan yonqui del curro. Total, que me tuve que poner a añadir algunas cosas nuevas al juego (arreglar un bug en Vista, añadir que se pueda jugar con un FOV panorámico en resoluciones 4:3, y un par chorradas más) porque estaba increíblemente aburrido en casa. Ni siquiera tenía ganas de encender las consolas y claro, la gente normal o tiene clase o está currando, así que era realmente duro no hacer nada en todo el día. xD

Y bueno, al final creo que ya voy a dejar por cerrado definitivamente el juego y como prometí anteriormente, he empezado otra vez a probar algunas cosas en XNA. Esta vez incluso traigo prueba gráfica. Todavía no se dónde me va a llevar, pero por ahora el tema va de sombras:


Stay tuned!

14 de octubre de 2009

Boss Teaser

A falta de 3 días para la entrega final del máster, acabamos de añadir la cinemática de presentación del jefe final del juego, con erótico resultado (o no). Faltan detalles y el texturizado final del personaje, pero creo que ha quedado bastante apañao. :P



Ahora un último empujón y luego... a descansar unos días mientras se deciden ciertas cosas. :D

18 de septiembre de 2009

Si ya lo sabía yo...

... que en último momento habría alguna cosa nueva. En fin... al final a última hora un componente importante de Vapor Mayhem ha sufrido una transformación bastante evidente:

Sí, ya no es ese modelo gris enorme con ciertas zonas brillantes que se ve en el video. Por suerte ha logrado entrar en la demo de Art Futura, pero por desgracia en el video que se tenía que entregar se ha quedado como estaba. Bueno, es lo que hay...

Por cierto, para cuando pongamos una demo lista para descargar, yo logro sacar el logro de Graphics Whore a 1024x768 sin despeinarme. ¿Podréis vosotros? Ya se verá cuando salga... xD

17 de septiembre de 2009

El verano se acabó...

O al menos lo parece por el tiempo que hace, hemos pasado de sudar todo el día a tener incluso fresco al salir a la calle en apenas un par de días. Y bueno, ha sido un verano durillo aunque me regalé una semana de vacaciones, que nunca vienen mal y aún menos si se pasan en la siempre divertida Granada.

Pero bueno, que aunque el ritmo de trabajo no ha sido tan intenso como en otras épocas y hemos tenido alguna baja temporal o casi total, no nos hemos estado tocando los huevos. Dentro de poco se celebra el Art Futura y hoy hemos terminado (al menos por la parte de programación) la primera versión de la demo que presentaremos al concurso de videojuegos. Es posible que nos dejen hacer una segunda entrega poco antes de que empiece el festival, pero por ahora esto es lo que tenemos:

Vapor Mayhem Art Futura Demo from Alex Urbano on Vimeo.


En el video sólo aparecen imágenes de gameplay pura y dura, pero hay muchos añadidos que no salen reflejados en la imagen tales como:

- Logros (esto si que se ve :P)
- Gestión de usuarios
- Highscores
- Reproducción de video
- Bitmap fonts
- Intros de imágenes
- Tutorial del disparo rítmico

Cuando tengamos la versión definitiva ya haré un video como los anteriores, mostrándolo todo, pero por ahora nos quedaremos con éste.

Por la parte de gráficos, que ya se sabe que es lo que más me interesa, ha habido algunos añadidos y cambios, aunque por lo general no son tan vistosos como algunas de las cosas hechas en entregas anteriores. Resumiéndolo mucho, los añadidos son:

- Rayos: un efecto bastante molón de rayos animados, que además permiten ser configurados al gusto del usuario y por tanto los podemos usar para varias situaciones como los relámpagos de la tormenta, para mostrar que un enemigo está a punto de sucumbir, y para indicar que el élite está dando órdenes a sus subordinados. Tienen algunos problemas de orientación, pero por lo general creo que quedó bastante apañao.

- Distorsión de explosión: al estilo de las esferas-escudo, cuando se produce una explosión hay un efecto de distorsión como si fuera una onda expansiva. Es el resultado de una tarde de rallada harto de buscar cómo solucionar algunos bugs.

- Manchas de aceite: Cuando un enemigo explota, deja una serie de manchas de aceite en el suelo. En realidad era sólo una prueba para comprobar si podía hacer el efecto y no quería darle un uso real, pero al final quedó medianamente vistoso. Podría haberlo hecho mucho más chulo, pero dudo que me entrara en Shader Model 2 (si, aún estamos con esa mierda de restricción), así que al final lo dejé tal y como está ahora. Pasa bastante desapercibido. :(

- Mejoras en shadow mapping: básicamente se ha reducido mucho el flickering que se producía al mover la cámara a nivel sub-texel. En los "pannings" de la cámara se han eliminado por completo, pero en la rotación de la misma aún queda bastante trabajo. Probé un método para eliminarlo por completo, pero hacía que se utilizara mucho peor el shadow map, así que prefería algo de flicker en vez de sacrificar resolución de la sombra. Igualmente, el filtro de las sombras sigue vibrando, así que si está activado la mejora se aprecia poco. Aún así me puse muy contento con la mejora. :)

- Motion blur: esto no es realmente un añadido, ya que lo había implementado para el juego hace mucho. Poco después lo volví a suprimir porque no estaba contento con el resultado. En un principio había seguido un artículo del GPU Gems 3 que ofrecía un método sencillo para hacer motion blur para cambios de cámara funcionando sólo como un post-proceso. La verdad es que cumplía su cometido, pero tenía varios fallos. Para empezar sólo servía para los movimientos de cámara, lo cual está bien pero no me satisfacía en absoluto, yo quería blur con objetos en movimiento! Así que volví a los orígenes, volví a la técnica que ya había usado en el pasado. Como quizás alguien recuerde (looooool) este método tenía ciertos fallos... pues bien, los he conseguido solucionar sin perder mucho rendimiento, y lo he montado en el juego de tal manera que también tenemos per-object motion blur. Para ser sinceros no llega al nivel del Crysis, pero para haberlo hecho en una mañana la verdad es que estoy muy contento con el resultado. :) En el video no se ve muy bien, pero estaba activado. ;)

Y bien, por ahora nada más. Ah, si... aunque no lo parezca, no me olvido de XNA. Es más, tengo algunas cosas en mente... Ya queda menos.

2 de julio de 2009

Tercera entrega finiquitada!

Joer, desde la segunda que no escribía nada por aquí. Aunque en el video que voy a poner abajo parece que ha habido relativamente poco avance, puedo asegurar que se han añadido un montón de cosas nuevas, algunas de ellas no muy detectables a simple vista. También es cierto que quizás esta vez hemos bajado un pelín el ritmo, pero ahora la cosa ya tiene mejor pinta. También nos hemos dado cuenta de que la parte final del puente es increíblemente sosa, pero ya tenemos algunas ideas para mejorarlo, y seguramente en un par de días ya esté mucho mejor que lo que verán en la entrega... En fin, es lo que pasa cuando estás con estas cosas, que el juego te cambia un huevo de un día para otro. Ale, aquí dejo el video, recomendado verlo en HD. ;)

Vapor Mayhem Demo 3 from Alex Urbano on Vimeo.

5 de mayo de 2009

Segunda entrega finiquitada!

Ayer por fin hicimos la segunda entrega del master. Esta vez no hemos ido tan apurados como la primera vez y el resultado ha sido bastante bueno a mi parecer, pero no por ello es el momento de relajarse. Ahora ya toca empezar a hacer cosas para que de la sensación de ser un juego más pulido y "profesional", y eso siempre es dificil. Dejo un video de la demo que entregamos. :)

Vapor Mayhem Demo 2 from Alex Urbano on Vimeo.

13 de abril de 2009

Como canta el gran Tom Jones...

I'm alive!! And Im real! I can breath and touch and see and feel, Im alive! Pues eso, hace mucho que no cuelgo nada y como hace un par de días fue mi 25 cumpleaños, toca colgar algo de WIP del proyecto de master así en plan regalito xD. La cosa sigue para adelante, y dejo un par de capturas en las que se ven algunas de las nuevas cosas que tenemos. Adivinen en sus casas el qué!


22 de marzo de 2009

Primera entraga finiquitada!

Bueno, en realidad hace unos cuantos días de esto, pero no me había acordado de actualizar... ^^U A principios de mes hicimos la primera entrega de nuestro proyecto de master. Ahora ya está mucho más avanzado, pero dejo un video de lo que teníamos por aquel entonces:


Vapor Mayhem Demo 1 from Alex Urbano on Vimeo.

Actualmente ya tenemos mallas animadas, partículas, algún efecto más, la mecánica del QTE implementada, etc... Pero bueno, en el video ya se ven hacia dónde va el juego. Dejo unas pocas imágenes más recientes:




25 de enero de 2009

Y otro más!

Bueno, ya están implementados los tres efectos de post-proceso básicos que tendrá el juego del master. El último en caer han sido los god rays:



Creo que la imagen es bastante evidente, pero cuando tenga un rato ya grabaré un video o algo... Ahora toca a seguir con las prácticas "de verdad" que nos dijeron de hacer en clase y optimizar todos los efectos en los ratos libres... Bueno, al menos en una 8800 van perfectos. xD

20 de enero de 2009

No he podido evitarlo...

Aquí está el video del shader de HDR tal y como lo tengo ahora:



Ahora tocará dejar un poco de lado lo divertido y ponerse a hacer algo verdaderamente útil para la primera entrega del proyecto... :P

Habemus HDR!

Hoy es un día feliz para mí. Hacía mucho tiempo que quería probarlo pero hasta ahora no me había puesto a ello pero bueno, una imagen dice más que mil palabras...


Exacto, he añadido un post-proceso de HDR a la minidemo que estoy haciendo para probar efectos que usaremos en el proyecto del master. En realidad aún queda mucho por afinar y no se está teniendo en cuenta todo el rango de color que permiten representar las texturas de floats, pero por lo menos ya queda bonito y a partir de lo hecho no puede hacer más que mejorar.

13 de enero de 2009

Still Alive

Cuánto tiempo! Esta vez no voy a perder el tiempo con excusas, ya que son las de siempre... El curro, el master, las fiestas de navidad-fin-de-año-reyes, etc, etc, etc...

Pero no he estado parado del todo. Aparte de algunas pruebas no finalizadas de varios efectos interesantes, acabo de colgar la demo de sombras omnidireccionales que hice hace tiempo. Quedaban un par de aspectos por pulir, pero ya está terminada y disponible para todo el mundo en el lugar habitual.

Por otro lado he empezado a meterme en el apasionante mundo de Direct3D puro, sin usar XNA. Va a ser necesario para el proyecto del máster y como no quería que me viniese todo de nuevo, hace un tiempo me puse a probar algunas cosas por mi cuenta. Aparte de lo básico para pintar cosas, he probado algún que otro shader y ya he implementado una primera versión de uno que usaremos en nuestro juego:

Efectivamente es una detección de siluetas para dar un aspecto ligeramente cartoon al juego. No será tan evidente como en la captura, pero era sólo una prueba.

Espero que próximamente haya mucho más! ;)

18 de noviembre de 2008

Dicen que un poco de estrés no viene mal

Pero a mí me daban dos!

Como es evidente viendo el grado de actividad del blog en las últimas semanas, mis obligaciones diarias no me dejan mucho tiempo para currar en los siempre entretenidos ejemplos que tanto me gusta hacer. :( Pero hoy aprovecho esta pequeña entrada para anunciar que se ha abierto un nuevo blog donde mi grupo de master y yo iremos posteando avances de nuestro proyecto y demás chorradas que se nos ocurran (fotos a lo 'making of', arte conceptual, lloros personales, etc).

No os perdáis The Hardcade Project!

26 de octubre de 2008

Y después de tanto tiempo...

nuevo ejemplo subido! En realidad lo subí anteayer, pero no he tenido tiempo de comentarlo hasta ahora. El escogido ha sido el de toon shading, así que ya se puede trastear con él en el lugar habitual.

23 de octubre de 2008

Ahora sí

Saludad a mi nuevo amigo:


He podido hacerme con la expansión del DooM 3 y así como el Lost Soul no chutaba con el cargador de Rubén, con el Forgotten no ha habido problema, así que él será el elegido para aparecer en el ejemplo de shadow mapping omnidireccional. No sé si liarme a meter algún detalle más como alguna partícula de fuego detrás de él para que realmente parezca el foco de luz ya que no quiero complicar el tema más de lo necesario, pero ya lo decidiré.

El ejemplo de toon shading no lo he tocado demasiado, pero ayer me dediqué a limpiar un poco el código y meter alguna chorrada como diferentes modos de visualización (sin siluetas animadas, sin siluetas, con iluminacion "normal", etc). Próximamente más!

22 de octubre de 2008

Toon orgy!

Esto es un no parar. Hoy se me ha ocurrido un método para la animación de las siluetas y bueno... un video vale más que n-cientas palabras! (Es recomendable ir a YouTube y verlo en "Alta Calidad")



Lo malo es que para conseguirlo he usado VTF (Vertex Texture Fetching), así que la demo sólo funcionará en Xbox360 y PCs con gráficas nVidia a partir de la GeForce 6... Básicamente lo que hago es trasladar los vértices a través de su normal de forma "aleatoria". ¿Cómo conseguir esa aleatoriedad? Cuando se carga la aplicación, genero una textura de floats y la relleno de valores aleatorios, y luego hago un lookup de estas valores desde el vertex shader con unas coordenadas de textura que dependen de la posición del vértice y un cierto offset aleatorio que genero cada cierto tiempo (como la animación de los trazos a lápiz). Creo que ya ha llegado el momento de limpiar cosas y prepararse para subirlo... ^^

21 de octubre de 2008

Olescul efex!

Uau, esto parecen los viejos tiempos... xD Hoy he probado un par de cosas en el ejemplo de toon shading... bueno, en realidad tres cosas pero una la he dejado para más adelante.

Por un lado he añadido la animación de los trazos a lápiz que se ve en las partes sombreadas. Esto era realmente sencillo, simplemente es modificar las coordenadas de textura de los trazos cada cierto tiempo (normalmente mayor que el que se tarda en pintar un frame) según lo que dicte un número aleatorio. La verdad es que creo que queda medianamente bien, aunque según la textura usada y la cantidad de pantalla que ocupen estas zonas sombreadas, se puede notar un poco demasiado el 'tileado'... Pero bueno, yo no estoy como para ponerme a hacer texturas perfectas.

Por otro lado he cambiado la forma de dibujar la silueta. Lo cierto es que he añadido una silueta más. :P Aparte del efecto de los trazos que vi en el Valkyria Chronicles y que me inspiró para hacer este ejemplo, quería intentar otra cosa con las siluetas para que el conjunto quedara un poco más espectacular. Y eso que quería probar es lo que se ve en Okami. En este juego (y en muchos otros antiguos como Jet Set Radio) no se usa una detección de siluetas en el pixel shader como se hace hoy en día (y como estaba hecho en la foto de ayer), sino que se usa un truco bastante curioso. Se pinta la geometría normalmente con el sombreado cel "de toda la vida", y luego se giran las normales, se escala un poco el modelo y se pinta de negro. Es decir, se cambia el tipo de culling, se pinta de negro y un poco más grande y voilà, ya se ven unas bonitas siluetas. No son tan precisas como con el método más moderno, pero antiguamente era lo más rápido y además permite hacer ciertas cosas...

Esto me lleva a lo tercero que he querido probar. En los videos de Youtube no se ve demasiado bien, pero creo recordar que en Okami aparte de un cel-shading muy sencillito, se movía la geometría de las siluetas para simular el efecto de que se estaba pintando a mano toda la escena a casi cada frame. Eso fue un detalle que sencillamente me enamoró en su día. He hecho un par de pruebas para representar el mismo efecto y no me ha gustado demasiado el resultado, así que lo he dejado para más adelante. Básicamente, el problema es mover cada vértice de manera suficientemente sutil, aleatoria e independiente de sus vecinos como para que el efecto no resulte antinatural. No se, se me ocurren un par de maneras pero ya es tarde y hay que descansar.... lo justo.

Ah! Y de regalo otro video! En este se ven las siluetas "nuevas" (aunque mantengo las antiguas para que haya más detalle) y la animación de los trazos.

Culo inquieto

Si hay alguien que sigue aunque sea un poco este blog, ya se habrá dado cuenta de que mi capacidad de mantener mi atención sobre algo durante períodos medianamente prolongados de tiempo es... limitada, por decirlo de alguna manera. Y para demostrarlo, aquí está la entrada de hoy.

Todavía no he acabo de dejar lista las sombras omnidireccionales, que ya me han entrado ganas de probar otra cosa. La idea la he sacado de un juego de PS3 llamado Valkyria Chronicles. El juego en sí no me llama un carajo, pero usa un estilo de cell-shading que me gustó mucho la primera vez que lo vi. Tiene la peculiaridad de que las zonas sombreadas tienen un efecto de esbozo a lápiz que me resultó interesante, y no sé porqué hoy me ha dado por probarlo. Todavía no está acabado ni de lejos (sólo le he podido dedicar un rato), pero he avanzado lo suficiente como para tener ganas de seguir cuanto antes! ^^