jueves, 16 de diciembre de 2010

ENTREVISTA A JAVIER CANTÓN MVP DE XNA


Javier Cantón es MVP de XNA y miembro de Plain Concepts, estudio que ha desarrollado el excelente juego Bye Bye Brain ¿Javier podrías hacer una breve presentación sobre tí?
Me llamo Javier Cantón Ferrero. Estudié la licenciatura de Ingeniería Informática y desde siempre me apasionaron los gráficos en tiempo real, durante mis estudios colaboré en proyectos con empresas como Microsoft y Nvidia. También fundé una comunidad de desarrolladores de XNA llamada XNACommunity y actualmente trabajo en Madrid para PlainConcepts Game Studio.

¿Cómo surgió tu iniciativa de desarrollar aplicaciones para Windows Phone 7?Como MVP en DirectX/XNA tuve acceso prematuro a prototipos de Windows Phone 7 y al XNA Framework 4.0, ya que participé junto a compañeros de Microsoft en varias conferencias de lanzamiento de la plataforma. Hasta entonces trabajaba en Sevilla para una empresa llamada Syderis Technologies desarrollando un framework basado en XNA para superficies multitáctiles. Hace unos meses que empecé a trabajar en PlainConcepts Game Studio donde están apostando muy fuerte por el desarrollo de juegos para Windows Phone 7, por lo que la iniciativa como tal estuvo antes de que llegara.

¿Puedes darnos algunos detalles de tus actuales desarrollos?Actualmente continuamos con el desarrollo de Bye Bye Brain, un juego al estilo Tower Defence pero muy diferente a los vistos hasta el momento. Está ambientado en un mundo donde los zombies se apoderan de todo y cada vez quedan menos sin infectar, solo algunos valientes luchan contra ellos en un intento por evitar la extinción de la raza humana.

Yo empecé a trabajar en este proyecto bastante tarde cuando ya estaba prácticamente terminado, y mi labor se ha centrado principalmente en tareas de optimización para conseguir mejores tiempos de carga y una mejor tasa de fps.

Como en cualquier otra aplicación de tiempo real que se quiera optimizar la primera tarea fue medir y analizar todo el código para detectar cuáles son las que consumen más tiempo y por lo tanto donde interesa optimizar. Una vez detectadas y ordenadas por prioridad buscamos la forma de optimizarlas empezando por la primera ya que el margen de mejora aquí será mayor que en el resto del código.
Estas optimizaciones pueden ser a nivel del lenguaje C#, reduciendo el número de líneas de código, aplicando Manual Inline, simplificando el código o cacheando valores para evitar que el GC salte continuamente.

También pueden ser a nivel gráfico. La forma más rápida de optimizar gráficos 3D es reduciendo el render, es decir, reduciendo el número de cosas que se dibujan. Para ello en el mundo de los videojuegos existen infinidad de técnicas, como técnicas de LOD, técnicas de Culling, que intenta reducir el coste de cada llamada a Draw y el número de estas. También es importante evitar los cambios de contexto agrupando objetos similares a la hora de dibujarlos.

Por último para exprimir al máximo el rendimiento gráfico del hardware del teléfono es importante balancear de la forma más eficiente posible el paralelismo entre la CPU y la GPU, esto por ejemplo en Bye Bye Brain llevó al equipo a usar CPU Skinning en vez de GPU Skinnning.

Hace pocos días hemos lanzado una nueva versión de Bye Bye Brain en la cual se han incluido muchísimas cosas, entre ellas las más visibles son una intro, un sistema de highscores local y mundial, más niveles de juego y más de 20 minijuegos diferentes para “hypear” (así lo llamamos dentro del equipo).

Bye Bye Brain Intro from riacosta on Vimeo.


Por lo que desde aquí aprovecho para animaros a todos a probarlo aquí.

Bye Bye Brain ha sido posible gracias a un gran equipo con los que me siento muy cómodo trabajando: Pablo Pelaez, Luis Guerrero, Ricardo Acosta, Rodrigo Díaz y Jonathan Hall.

¿En el desarrollo de juegos en XNA cuál consideras que es la etapa o proceso más crítica?Para un juego Indie lo más complejo puede ser la decisión del diseño inicial, el cual sea lo suficientemente escalable para que luego se eviten muchísimos quebraderos de cabeza, y no se descubra tras muchas horas de trabajo que la estructura montada no soporta lo que se quería hacer. Esto puede ser solventado con un mayor conocimiento de la plataforma por ejemplo leyendo códigos de otros proyectos.

Para un desarrollo más profesional “lo complicado no es hacer el juego, sino conseguir que vaya rápido”, para lo que se necesita una gran experiencia sobre la plataforma .NET y el chasis básico establecido por Microsoft en los teléfonos. Esto es necesario aunque estemos hablando de los teléfonos con mejor hardware del mercado, ya que cuanto más se tiene más se quiere.

No es lo mismo optimizar un código escrito en C que un código escrito en C#. Los conocimientos sobre por ejemplo el Garbage Collector del .NET Compact Framework son esenciales para conseguir buenos resultados en desarrollos de juegos 3D que intenten exprimir al máximo el hardware del teléfono.

¿Qué grandes ventajas dirías que tiene el desarrollo de juegos basados desarrollos en XNA, respecto de los desarrollos que se pueden realizar para otras plataformas móviles?Pues para empezar el no necesitar un hardware especial para realizar juegos. También es importante el hecho de que se apueste fuertemente por desarrollos Indie ofreciendo gratuitamente para estudiantes la publicación de juegos gracias a la plataforma DreamSpark, por la cual los estudiantes se ahorran los 99$ anuales que cuesta publicar aplicaciones. Y la más importante ya mencionada anteriormente, sus herramientas de desarrollo se integran a la perfección con Visual Studio ofreciéndote una gran productividad al tenerlo todo integrado en el mismo IDE, tanto el código como los Asset.

¿Qué breves consejos le darías a desarrolladores independientes que están empezando a plantearse desarrollar juegos o aplicaciones para WP7?Si no conocen nada de la plataforma .NET, sería muy recomendable que tuvieran algo de paciencia y empezaran por leerse algún libro sobre C# y la plataforma .NET. Una vez tengan estos conocimientos, ya podrán adentrarse en el desarrollo de juegos con XNA 4.0.
También sería recomendable que empezaran por desarrollos en 2D y tras afianzar esta parte de la API fuese cuando intentaran otros desarrollos en 3D.

La regla número uno es tener paciencia, “no empezar la casa por el tejado” y saber medir muy bien tus posibilidades y las de tu equipo. Al principio a todos se nos ocurre la maravillosa idea de hacer un juego AAA y terminamos fracasando, seguramente muchos hemos necesitado fracasar en el intento para creerlo pero bueno, si a alguien le es útil yo lo dejo dicho. Es mucho mejor empezar por juegos más simples que nos permitan dejarles un buen acabado, que empezar un proyecto demasiado grande del que terminaremos aburriéndonos.

Y por supuesto que se unan a la comunidad de desarrolladores de XNA en Español, llamada XNACommunity en donde aprenderán mucho y podrán colaborar y contactar con otros desarrolladores con las mismas inquietudes.

Si puedes adelantarnos algo ¿Puedes adelantarnos algo de tus futuros desarrollos para WP7?No, lo siento.

¿Quieres añadir algo más que creas interesante para los usuarios interesados en WP7?
Podéis saber más sobre Javier Cantón y sus desarrollos en su web.

Le damos las gracias a Javier por concedernos amablemente esta entrevista y le deseamos a él y atodo el equipo de Plain Concepts que sigancosechando un gran éxito en el Marketplace de WP7 como lo están consiguiendo con Bye Bye Brain, que en mi opinión es el mejor desarrollo que ha puesto un listón alto para todos los juegos independientes de WP7.

Puedes ver más abajo algunas imágenes de Bye Bye Brain.








Si quieres desarrollar Apps para WP7 recuerda visitar el Centro de Desarrollo de MSDN para WP7 en español

No hay comentarios:

Publicar un comentario