XNA: el poder de crear

Llevaba tiempo queriendo escribir sobre XNA. Y creo que a raíz de que tocáramos el tema en el podcast ha surgido la oportunidad que no pienso desaprovechar, ya que me parece una de las mejores y más accesibles formas de crear nuestro propio videojuego.

Lo prometido es deuda, así que si estáis interesados en saber un poquito más de esta estupenda plataforma de desarrollo de videojuegos, ya sea porque os han hablado de ella, o bien porque escuchasteis nuestro programa y acabasteis intrigados, acompañadme en este artículo en el que intentaré desgranar los aspectos más interesantes de XNA y lo que podemos llegar a conseguir si aprendemos a usarlo. Nos vemos tras el salto…

¿Qué es XNA?

Microsoft anunció una nueva herramienta para el desarrollo de videojuegos, y lo hizo, como no, en la Game Developers Conference, allá por el año 2004. Dos años más tarde, el 14 de marzo de 2006, fue liberada la primera versión utilizable, aunque todavía faltaba un largo camino por recorrer hasta conseguir el amplio conjunto de utilidades en el que se ha convertido XNA.

XNA son las siglas de XNA’s Not Acronymed, o lo que es lo mismo, que no significa nada. Tras esta curiosa y atractiva nomenclatura, nos encontramos con una plataforma de desarrollo de videojuegos creada por Microsoft para facilitar las tareas de programación, diseño, pruebas y distribución de juegos creados por aficionados y desarrolladores independientes.

De esta forma, cualquier persona con conocimientos de desarrollo en la plataforma .NET (uno de los frameworks de desarrollo más utilizadas actualmente en el mundo) y que tuviera nociones de la teoría de la creación de videojuegos, podría conseguir resultados de una forma rápida e intuitiva. Con XNA, el único límite serían las ganas, las habilidades, y la imaginación.

Ventajas y limitaciones

Los programas creados con XNA se ejecutan en un entorno administrado denominado XNA Framework (y que no es más que una especialización del Microsoft .NET Framework de propósito general), que se interpone entre el desarrollador y el hardware del sistema, permitiéndonos acceder a los recursos del mismo sin tener que conocer todos sus entresijos. Es decir, que no necesitamos conocer programación avanzada o de bajo nivel para poder crear nuestros programas.

Por un lado esto es positivo ya que nos abstrae de todas esas tareas que los programadores tienen que realizar, como por ejemplo acceder o gestionar la memoria del sistema o bien despejar y recolectar los recursos utilizados por nuestras aplicaciones. .NET Framework (y por lo tanto, XNA) se encarga de todo eso para nuestra tranquilidad. A cambio, la desventaja de utilizar código administrado (es decir, seguro) es que nunca, por muy optimizado que esté el llamado entorno de ejecución, podremos igualar el rendimiento y la potencia del software generado utilizando código nativo.
Con esto quiero decir que se pueden obtener resultados muy llamativos, cuyo máximo exponente es la pareja de juegos de Dishwasher, pero es prácticamente imposible que nadie en el mundo pueda diseñar y desarrollar un juego como Gears of War utilizando XNA.

Que se necesita para utilizar XNA

Además de los conocimientos necesarios de desarrollo en .NET y de acceso a material gráfico de calidad, y por supuesto de conocer las bases del diseño de un videojuego, necesitaremos ciertas herramientas para poder empezar a crear nuestro videojuego. Primeramente, necesitaremos el susodicho XNA Framework, que nos aportará las librerías y clases especializadas para la creación de videojuegos, desde manejo de scrolls y gráficos en 2D hasta implementaciones de motores de física y gráficos 3D. Para desarrollar nuestro juego, utilizaremos uno de los entornos de desarrollo (IDE) de Microsoft que sea compatibles con XNA, oficialmente Visual Studio Express y todas las versiones de Visual Studio a partir de 2005. Lo normal será, pues, utilizar el famoso y versátil C#, un lenguaje de programación de última generación, de propósito general y ampliamente utilizado en todo tipo de tareas de desarrollo de software. No obstante, cualquier lenguaje del marco .NET que genere código administrado para dicha plataforma sería compatible con XNA, lo que significa que podríamos utilizar Visual Basic .NET para programar nuestro juego, por ejemplo.

Además de esta opción, Microsoft publicó la suite de desarrollo XNA Game Studio (en sus ediciones profesional y express), que integra todas las herramientas necesarias para diseñar, programar, probar y publicar nuestros juegos, al contrario que los entornos de desarrollo detallados anteriormente, que al ser de propósito general, carecen de dichas opciones. Con Game Studio tendremos a nuestro alcance todo lo necesario para “hacer la magia”. Utilizando XNA Game Studio podremos desarrollar funcionalidades de Xbox LIVE para nuestros juegos, y generar versiones para Windows, Xbox 360, Zune y el reciente  Windows Phone.

Y os preguntareis: ¿qué hago después de crear mi propio videojuego? Pues bien, el siguiente y último paso sería la distribución. Primero, debéis saber que para desarrollar y ejecutar juegos en entornos Windows no es necesario pagar nada. Por el contrario, si será necesario hacerlo para el resto de plataformas (Xbox 360 y Windows Phone). Para ello, Microsoft creó una comunidad de desarrolladores denominada Club de Creadores de XNA (actualmente llamado App Hub), que permite publicar y hacer publicidad de los juegos generados utilizando esta plataforma, previo pago de una cuota anual de 99$ USA.

Conclusiones

En este artículo, hemos abordado esta interesante plataforma de desarrollo de videojuegos para aficionados o desarrolladores independientes. Desde su origen y evolución hasta explicar sin entrar en demasiados términos técnicos (creedme, es muy difícil evitar esto, ya que hablamos de desarrollo de alto nivel) lo que se puede y no se puede hacer con XNA. Finalmente hemos tratado un poco las posibilidades de distribución que nos ofrece Microsoft para nuestras creaciones. Espero que os haya iluminado las dudas que os hubieran surgido y pido perdón si he omitido o equivocado alguna información, ya que como dije en nuestro podcast, este tema lo he tocado siempre desde un punto de vista superficial. Os insto, no obstante, a que comentéis y preguntéis lo que queráis. Intentaré estar a la altura.

Os dejo con algunos vídeos de juegos XNA que quizás no conozcáis.

The Sugar Killerz

[yframe url=’http://www.youtube.com/watch?v=ww4eEZsqai4&feature=player_embedded#at=24′]

Oozi: Earth Adventure

[yframe url=’http://www.youtube.com/watch?v=LHNUYkRyi_E&feature=player_embedded#at=18′]

Zombie Death Zone

[yframe url=’http://www.youtube.com/watch?v=tBhMKsLl6DE&feature=player_embedded#at=17′]

Salir de la versión móvil