Entrevista para la Newsletter de Visual Studio

Javier Cantón lleva vinculado a Microsoft los últimos 10 años. Reconocido MVP experto en tecnologías como DirectX y XNA centradas en el desarrollo de Videojuegos y tratamiento de imágenes, ha centrado parte de su trabajo y carrera profesional en el mundo del desarrollo vinculándose con las últimas tecnologías del entretenimiento. Licenciado en Ingeniería Informática y especializado en el tratamiento y procesamiento de imágenes en tiempo real, ha colaborado en numerosos proyectos de Microsoft y Nvidia. En la actualidad forma parte del equipo de Plain Concepts vinculado al desarrollo de juegos llamado Weekend Game Studio.

Desde el equipo de Visual Studio News nos gustaría preguntarte por tus comienzos y proyectos a lo largo de tu carrera, existe una gran expectación en la actualidad en este tipo de tecnologías dentro del ámbito de la informática y como negocio , el mundo del desarrollo de videojuegos sigue siendo una industria en crecimiento y desarrollo.

¿Cual ha sido tu trayectoria hasta llegar a tu situación actual en el mundo de los videojuegos?

Mi primer ordenador lo tuve bastante tarde, a los 12 años y más tarde a los 14 años empecé a desarrollar juegos con un grupo de amigos que nos hacíamos llamar “Studios Tortuga”. El primer juego fue una aventura gráfica llamada “El secreto de la Esfinge” y lo desarrollamos usando Delphi 2.0. Pronto me empezó a entusiasmar la idea de crear juegos en 3D como aquellos profesionales a los que jugaba, pasé bastante tiempo probando tecnologías Allegro, Div2, DarkBasic pero no fue hasta descubrir Blitz3D (engine que usaba DirectX 7) cuando nos planteamos crear nuestro primer juego en 3D Se llamó “Mantigoras”, aquí podéis ver un vídeo sobre él:

“Mantigoras” el primer proyecto en 3D

Con este proyecto aprendimos muchas cosas, por ejemplo que debes intentar estimar lo mejor posible el alcance de un proyecto en su fase inicial porque sino siempre se complica.

Continuamos aprendiendo tecnologías y lenguajes de programación como c++ y entonces buscamos otra herramienta de desarrollo con la cual pudiéramos llegar más lejos y hacer posible todas las ideas que pasaban por nuestras mentes. La herramienta elegida se llamó Cipher (un engine en c++), al cual tuvimos que añadirle varias librerías de física 3D y red. Con todo esto ya estabamos preparados para afrontar un nuevo proyecto que se llamó “Mexus”, otro vídeo:

Mexus, juego online desarrollado en C++/OpenGL

Tras terminar este proyecto, comencé mis estudios de Ingeniería Informática en la Universidad de Sevilla. Durante los años de universidad formé parte del primer Club .NET de Microsoft en España, lo cual me ayudó a mejorar profesionalmente perdiendo el miedo a hablar en público y dar conferencias. Mi primera charla en el Club .NET consistió en una tarjeta electrónica que había desarrollado y que la usaba para comunicar un PC con cualquier aparato eléctrico (apagar/encender), pero no quedaba ahí el invento ya que el objetivo fue mostrar cómo encender un árbol de navidad desde una PDA la cual se conectaba contra un PC a través de un “web service” y este a su vez encendía las luces del árbol utilizando la mencionada tarjeta electrónica.

También participé 3 veces en el concurso Microsoft Imagine Cup, formando equipo con diferentes personas. El primero proyecto en el que participé se llamó “S.I.M.A.P” que consistía en un sistema inteligente para Parkings, de forma que desde un PC o PDA podías acceder a un servicio que te informaba de cual era el parking más cercano con plazas libres, y así asegurarte que había sitio a tu llegada.

El segundo proyecto fue muy divertido. Se llamó “Step By Step”, para los que lo desarrollamos fue el predecesor de “Kinect”, ya que utilizábamos 2 webcams para capturar los movimientos de una persona en 3D, esta información la utilizábamos posteriormente para evaluar la corrección de ciertos ejercicios de rehabilitación. Este proyecto fue todo un éxito y conseguimos ganar la final de Microsoft Imagine Cup en España e ir a la final internacional en India.

El último proyecto con el que participe en Imagine Cup también se convirtió en mi proyecto fin de carrera. Consistía en un dashboard que se instalaba sobre el sistema operativo el cual estaba centrado en niños que estudiaban a distancia y que necesitaban utilizar el sistema solo con movimientos de cabeza o similares. Aquí os dejo un vídeo de las primeras pruebas que hacia con la WebCam de la pantalla del portátil (todo esto con Kinect hubiese sido mucho más fácil):

Primeras pruebas de gestos

 

Durante los años de universidad aprendí varias tecnologías de Microsoft útiles para el desarrollo de videojuegos como MDX o XNA junto a Visual Studio, lo cual me impulsó a crear una comunidad llamada XNACommunity a la cual se unieron varios desarrolladores de videojuegos. En ella aprendíamos y compartíamos técnicas, artículos y ejemplos.

Durante los últimos años de carrera me interesé mucho por dos productos de Microsoft que me fascinaron, el Kinect y la predecesora de “SUR40 (la mesa multitáctil de Microsoft), y para un trabajo de una asignatura junto a dos compañeros nos propusimos crear nuestra propia mesa multitáctil. El resultado fue el que podéis ver aquí:

Estas investigaciones me llevaron a trabajar durante mis últimos años de carrera en una empresa llamada Syderis, donde desarrollamos una mesa multitáctil (la solución hardware y software). Aquí puede verse un resultado mucho más profesional tras un año de trabajo para crear el software (NUIFramework) que permitía desarrollar aplicaciones 2D de forma simple pero que estuviesen aceleradas por DirectX:

Mesa multitáctil

Este fue el producto estrella pero también realizamos otros proyectos interesantes como un probador de gafas virtuales. La mayoría de los proyectos en los que allí trabajé fueron desarrollados utilizando principalmente XNA y Visual Studio.

Una vez terminé mis estudios de Ingeniería, me hicieron una oferta para venir a Madrid a trabajar en Plainconcepts y siguiendo con el refrán de rodearse de gente muy buena para aprender y mejorar me vine a trabajar a Madrid. El primer proyecto en el que participe fue un juego para Windows Phone 7 llamado “ByeByeBrain”. El juego tuvo una aceptación bastante buena y por ello nos pusimos manos a la obra para crear una segunda versión mejorada y que pudiéramos explotar en varias plataformas. Nació entonces “ByeByeBrain App-ocalypse” y la idea de crear un motor multiplataforma llamado Wave Engine que nos permitiera desarrollar videojuegos para todas las plataformas móviles utilizando C# y Visual Studio.

ByeByeBrain App-ocalypse fue desarrollado en unos 6 meses por un equipo de 3 personas aunque tuvimos varias colaboraciones importantes en diferentes aspectos del proyecto, programación, diseño o testing.

ByeByeBrain App-ocalypse

 

En todas estas aventuras conocí a muchísima gente de la cual he aprendido mucho, “creo que la mejor forma de aprender y superarse es rodeándote de gente muy buena”, también creo que en esto he tenido siempre mucha suerte ya que todos estos proyectos hubiese sido imposible realizarlos por mi solo.

 

¿Como habéis conseguido que ByeByeBrain App-ocalypse se convierta en un proyecto tan conocido?

La versión anterior fue vendida en la tienda a un coste de 2€, pero en la nueva versión intentamos probar con otros modelos de negocio para juegos, en concreto el llamado Freemium. Consiste en que el usuario obtiene el producto totalmente gratis y los beneficios se obtiene a través de publicidad ó In-app purchase (pagos dentro de la aplicación) para conseguir objetos o desbloquear partes del juego más rápidamente. Este modelo ha funcionado mucho mejor, ya que el usuario prefiere probar tu producto y si le gusta entonces pagar. También se consigue una difusión mucho mayor que con el modelo tradicional, esto ayuda a que más usuarios prueben tu producto y ellos mismos hagan publicidad de él ya que es gratis, ¿por qué no probarlo?.

Solo en Windows Phone 7 superamos ya las 500.000 descargas y seguimos creciendo a muy buen ritmo:

image

 

Con este juego también hemos aprendido mucho sobre publicidad y sobre cómo utilizarla en tus juegos. El uso de publicidad es muy llamativo ya que supone coste 0 para el usuario final y sin embargo todo el tiempo que pase jugando se puede convertir en beneficios,. Existen muchísimos proveedores de publicidad y cada uno tiene sus puntos fuertes. Cosas en las que creo que importante fijarse antes de elegir un proveedor de publicidad:

– Cobertura: Cuando lanzamos un juego a alguno de los marketplace actuales, queremos que esté disponible a nivel mundial para aumentar el número potencial de usuarios. Si eliges un proveedor de publicidad que solo tenga anunciantes de un país estarás perdiendo mucho dinero.

– Modelo de ingreso: Existen proveedores que pagan por impresión, es decir cada vez que un anuncio se muestra, otros pagan por click en el banner y otros consisten en redes en las que entras y por cada anuncio que se muestre en tu aplicación, tu aplicación aparecerá en otros juegos de esa misma red.

– FillRate: Este indicador nos informa de cual es la probabilidad de que cuando tu aplicación pida un anuncio el servidor se lo de. Este valor es muy importante ya que si el fillrate es muy bajo por muy alto que sea el coste por impresión o por click los ingresos serán menores. Para mejorar esta cifra algunos proveedores de publicidad empiezan a integrar varios proveedores de publicidad en uno.

Además de todo esto, no existe un proveedor ideal para todas las plataformas y en todos los países. La mejor solución pasa por tener un mapa de proveedores a nivel mundial para cada plataforma, y que la aplicación sea capaz de conectarse con un proveedor u otro dependiendo del país en el que se encuentre. Como podéis imaginar no es nada fácil intentar maximizar los beneficios a nivel mundial, a nosotros nos ha costado mucho tiempo desarrollar nuestro mapa de proveedores.

 

¿En qué proyectos con Kinect has participado recientemente?

Pues recientemente en Plainconcepts desarrollamos un conjunto de demos para el evento de lanzamiento a nivel mundial de Visual Studio 2012. Una de estas aplicaciones consistía en un cliente para Windows 8 que permitía poder seguir la charla en un entorno virtual,. Me explico, durante la charla todos los movimientos del ponente eran capturados con un Kinect que estaba conectado a un servidor, así como las slides y el audio. Este servidor además tenía todos los datos de la conferencia previamente cargados como descripción, foto del ponente o cual era su avatar de Xbox.

Los asistentes al evento podían descargar en sus portátiles y tablets con Windows 8 un cliente que se conectaba al servidor de la sala por red local, el cual encontraban gracias a un servicio de Azure donde previamente se había registrado el servidor indicando cual era su IP local. Una vez establecida la conexión con el servidor de la sala, el cliente nos mostraba toda la información sobre la conferencia, las slides, el audio y el avatar de Xbox moviéndose en tiempo real tal y como el ponente lo hacía por el escenario. Al final del evento podías elegir si lanzar flores o tomates al ponente según si te había o no gustado la conferencia, y el servidor recogía el veredicto del público.

Este proyecto se realizó utilizando una mezcla de tecnologías de Microsoft, C#, XAML, C++ y DirectX. El resultado puede observarse en las siguientes imágenes:

 

W8 AppW8 App

¿Cual es el proyecto con Kinect más espectacular que has visto?

Pues sin duda el proyecto de Microsoft Research llamado Kinect Fusion,. Consiste en utilizar el Kinect a modo de escáner 3d dinámico, puedes escanear objetos en tiempo real o directamente la habitación en la que te encuentras para luego interactuar con ella. Aquí tenéis un vídeo:

La verdad es que las posibilidades de este dispositivo aun no han sido explotadas y en proyectos como este son en los que nos damos cuenta. ¿Quién nos iba a decir hace 10 años que con un dispositivo en un solo punto del espacio íbamos a poder detectar la profundidad/distancia a la que se encuentran los objetos con mayor precisión de lo que lo hacen las personas?. Los campos en los que este dispositivo se está empezando a utilizar no tiene limites. En robótica por ejemplo ha producido una revolución, ahora es mucho más fácil que los robots sean capaces de conocer su situación dentro de una habitación, distancia con los objetos o hacerse un mapa de su entorno.

¿Proyectos futuros?

Actualmente me encuentro dentro de un departamento de Plainconcepts con un grupo de compañeros espectacular de los que aprendo mucho. Estamos centrados en el desarrollo Wave Engine, un motor multiplataforma para dispositivos móviles (smartphone, tablets, consolas portátiles) con el objetivo de hacer la vida más fácil a los desarrolladores de videojuegos en estas plataformas, eliminando las barreras tecnológicas que supone desarrollar un juego para las múltiples plataformas existentes (diferentes lenguajes, librerías, IDEs, SO).

Utilizando Wave Engine el desarrollador puede centrarse en lo que realmente le gusta que es crear su juego. El problema de la plataforma destino es resuelto implícitamente al usar nuestra tecnología. El desarrollador crea una vez su juego utilizando C# y Visual Studio, y luego el proyecto se compila automáticamente para las diferentes plataformas (Windows, Windows 8, Windows Phone, IPad, IPhone, Android, KindleFire, Silverlight). Todo esto no es una idea feliz, llevamos 2 años trabajando en hacer realidad este sueño y por ejemplo ByeByeBrain App-ocalypse ya ha sido desarrollado utilizando esta tecnología, así como múltiples test y demos. Aquí os puedo adelantar algunas imágenes:

imageimage

Ahora mismo nos encontramos en fase Alpha privada (muy pocas personas tienen acceso a esta tecnología), pero para principios de 2013 se va a producir una apuesta muy fuerte por este proyecto, pasaremos a Beta pública y se realizará una ampliación importante del equipo. Esperamos que pronto empecéis a oír más sobre este proyecto y lo probéis para ayudarnos a mejorarlo.

 

En resumen, la oportunidad de desarrollar juegos y aplicaciones para Xbox y Kinect con Visual Studio, podría decir que es casi ilimitada. El potencial de estas tecnologías en muy diversos ámbitos: entretenimiento, salud, medio ambiente, ayuda a las personas discapacitadas, marketing, ventas y un largo etcétera, apenas ha empezado a descubrirse. Puedo decir sin miedo a equivocarme, que las empresas y organizaciones que sepan ver la oportunidad que representa la combinación de estas tecnologías tendrán ante sí un verdadero filón.

Have a good day.

Publicado por

jcanton

Javier is a Computer Science Engineer who has always had a passion for 3D graphics and software architecture. He learned C# almost at the same time as he learned to talk, and his first word was "base". He enjoys imparting talks about technology and has contributed in many important software and video game events. He has participated in multitude of software projects involving multitouch technologies, innovative user interfaces, augmented reality, and video games. Some of these projects were developed for companies such as Microsoft, Syderis, and nVidia. His professional achievements include being MVP for Windows DirectX and DirectX XNA for the last eight years, Xbox Ambassador, as well as Microsoft Student Partner and Microsoft Most Valuable Student during his years at college. Currently he works at Plainconcepts and he is the development team lead at WaveEngine project.

Un comentario en “Entrevista para la Newsletter de Visual Studio”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *