XNA Touch es una extensión de MonoTouch y MonoDroid que permite ejecutar código XNA sobre Open GL en las plataformas Mono. Traduciendo… significa que tenemos una ENORME portabilidad multiplataforma en nuestros juegos hechos con XNA!! Es decir, que nos será relativamente fácil que nuestros juegos se ejecuten en Windows, Windows Phone 7, XBOX 360, iPhone y Android.
Vale, muy bonito. ¿Pero funciona? Eso mismo me he preguntado yo… y aquí está el resultado de mis pruebas iniciales. Tengo que decid que me he sorprendido gratamente. En mi caso quiero ejecutar código XNA en iPhone (guauuuu!), así que para ello necesitamos lo siguiente:
- Un ordenador Mac con el SO Snow Leopard (imagino que también pueden valer virtualboxes y similares… pero he oído que la gente tiene muchos problemas con la tarjeta gráfica)
- Mono SDK (plataforma base)
- Mono Touch (trial gratuito, la única limitación es publicar las apps y desplegarlas en el móvil, pero se pueden ejecutar en el emulador)
- XNA Touch
- Mono Develop (IDE de desarrollo parecido a Visual Studio)
Doy por supuesto que tenemos instalado y funcionando todo lo aquí comentado. A partir de aquí en mi caso lo único que he hecho para crear un proyecto XNA para iPhone ha sido:
- Compilar XNA Touch, y guardarme bien guardada la DLL
- Crear un proyecto MonoTouch vacío, ya que, que yo sepa, XNA Touch no tiene plantillas de proyecto a día de hoy (corregidme si me equivoco)
- Añadir la clase de inicio Program.cs y la clase Game.cs (más o menos como lo haríamos en un proyecto XNA con Visual Studio de toda la vida!!)
- Agregar un directorio «Content» a la solución. Añadir archivos (en mi caso un spritefont) y modificar la propiedad «Build action» a «Content»
- Escribir nuestro código XNA usando el namespace XNATouch… y a ejecutar!
En mi caso este es el resultado de la ejecución de un sencillo código que renderiza un spritefont y lo hace girar por la pantalla, en base a uno de los propios ejemplos de XNA Touch. En nada, en 2 minutos tenemos esto funcionando:
Espero que os haya gustado. Personalmente creo que XNA Touch es un proyecto con mucho futuro. Ah por cierto, os he adjuntado el código de este pequeño proyecto de ejemplo 🙂