Llevaba un tiempo tocando MonoGame por encima para trastear y hacer pequeñas pruebas, ya que XNA me sigue pareciendo una herramienta, junto C# y .NET, muy potente a día de hoy para desarrollar, y sobre todo en juegos. El único inconveniente que le veo todavía a MonoGame es la necesidad forzosa de necesitar de XNA para poder realizar la compilación de assets, y que dicha tarea solo sea posible desde Windows, lo cual mata en parte la idea de usar MonoGame para desarrollar desde Linux o Mac, ademas de lo incomodo que es tener un proyecto a parte para tener que ir compilando los assets y pasarlos después al proyecto de MonoGame.
Otro problema que me encontré con MonoGame en Windows fue que en Windows XP, por un lado, el driver de audio, OpenAL, no se instalaba correctamente (se soluciona haciendo la instalación manual) y que las llamadas a OpenGL fallaban (problemas con la versión de OpenGL de Windows XP creo recordar). En Windows 8.1 las llamadas a OpenGL funcionaban sin problema, el proyecto renderizaba gráficos, pero el audio, sin dar error alguno, no funcionaba. Por este motivo me pareció más lógico dejarme de experimentos raros y tirar a por lo seguro sobre Windows, usar XNA, como solución nativa junto con DirectX, y así de paso matar dos pájaros de un tiro: el framework para desarrollar el código multiplataforma desde Windows (para luego portarlo a MonoGame) y la compilación de assets.
Pero con XNA había un pequeño problema y era el de no poder instalar XNA en versiones de Visual Studio que no fueran la 2010. Actualmente trabajo en Windows 7 y Windows 8.1 desde Visual Studio 2013, y aunque existen formas para lograr que nuevas versiones de Visual Studio puedan cargar y gestionar proyectos de XNA 4.0 bien es cierto que esto obliga a instalar, si o si, o Visual Studio 2010 o el Windows Phone SDK 7.1, que también incluye Visual Studio 2010. A mi sinceramente, no me apetece tener dos Visual Studios instalados, con toda su parafernalia que instala debajo, ocupando mucho espacio en el disco duro, solo para poder usar un framework como XNA, así que me puse a investigar y he logrado encontrar una manera viable de poder instalar manualmente XNA 4.0 para funcionar en Visual Studio 2013 sin tener que instalar antes Visual Studio 2010 o el Windows Phone SDK 7.1.
Vayamos con el proceso:
- Primero necesitaremos descargar el paquete de instalación de XNA 4.0 Game Studio desde el siguiente enlace: xnags40_setup.exe
- Una vez descargado, procederemos a extraer su contenido en una carpeta ejecutando la siguiente llamada: xnags40_setup.exe /x
- Nos vamos a la carpeta donde hemos extraído los archivos y ejecutamos el paquete de instalación redists.msi (estos paquetes no mostraran ninguna ventana o información durante el proceso de instalación, por lo que salvo que ocurra algún error, no se mostrara mensaje o información alguna durante su ejecución)
- Ahora nos desplazaremos a la carpeta donde se esta instalando XNA 4.0. Dado que la ruta cambia según si usas una versión de 32bits o de 64bits, pondré literalmente ambas rutas para quien lo necesite:
- Windows 32 bits:
C:\Program Files\Microsoft XNA\XNA Game Studio\v4.0\Setup\
- Windows 64 bits:
C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\Setup\
- Windows 32 bits:
- Una vez en la carpeta, ejecutaremos los siguientes paquetes de instalación, en principio por este orden. No os preocupéis si fallara alguno de los 2 primeros. Para desarrollos de escritorio dudo que alguien vaya a necesitar los servicios de XBox Live, pero como no tengo claro si luego los proyectos darían problemas al ejecutarse en Visual Studio, por si acaso tratar de instalarlos:
- XLiveRedist.msi
- xnaliveproxy.msi
- xnags_platform_tools.msi
- xnags_shared.msi
- Dado que el paquete que falta, xnags_visualstudio.msi, no es posible instalarlo sin tener Visual Studio 2010 en la maquina, y este es el que contiene las plantillas de proyecto y de assets, así como extensiones de proyecto para Visual Studio, no preocuparse. Dicha carpeta y su contenido, la he subido comprimida en ZIP y la podéis bajar desde este enlace: xnags40_project_templates_asset_templates_from_vs2010.zip
- Ahora ejecutaremos el ultimo instalador. Este sera necesario para que el Content Pipeline funcione en el proceso de compilación de los proyectos:
- Windows 32 bits:
C:\Program Files\Microsoft XNA\XNA Game Studio\v4.0\Redist\XNA FX Redist\xnafx40_redist.msi
- Windows 64 bits
C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\Redist\XNA FX Redist\xnafx40_redist.msi
- Windows 32 bits:
Llegados a este punto, XNA 4.0 debería estar instalado en el sistema con todo lo necesario para funcionar a la hora de desarrollar con el bajo Visual Studio, salvo por que faltan las extensiones y plantillas de proyecto. Dichas extensiones y plantillas son las que vienen en el ZIP que habéis descargado en el punto 6 de la lista anterior. Ahora explicare los pasos para instalar dichas plantillas y configurarlo de forma que Visual Studio 2012 o 2013 puedan detectarlas y mostrarlas como plantillas de nuevos proyectos. En este punto voy a detallar los pasos tanto para las versiones Express de Visual Studio, detalle que siempre obvian en otros artículos o webs, y los pasos para el resto de versiones, ya que varían rutas y comandos:
- Instalado ya XNA 4.0 y lo necesario para funcionar con Visual Studio, procedemos a descomprimir el contenido del ZIP que hemos descargado en el punto 6 del proceso anterior. Ese contenido lo copiaremos en la siguiente ruta (como la carpeta de destino no existirá, tendréis que crearla) y variara según la versión de Visual Studio que tengáis instalada:
- Si tienes instalado Visual Studio 2012 Express:
- Windows 32 bits:
C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\WDExpressExtensions\Microsoft\XNA Game Studio 4.0
- Windows 64 bits:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\WDExpressExtensions\Microsoft\XNA Game Studio 4.0
- Windows 32 bits:
- Si tienes instalado Visual Studio 2013 Express :
- Windows 32 bits:
C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\WDExpressExtensions\Microsoft\XNA Game Studio 4.0
- Windows 64 bits:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\WDExpressExtensions\Microsoft\XNA Game Studio 4.0
- Windows 32 bits:
- Si tienes instalado Visual Studio 2012 Professional o superior:
- Windows 32 bits:
C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\XNA Game Studio 4.0
- Windows 64 bits:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\XNA Game Studio 4.0
- Windows 32 bits:
- Si tienes instalado Visual Studio 2013 Professional o superior:
- Windows 32 bits:
C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\XNA Game Studio 4.0
- Windows 64 bits:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\XNA Game Studio 4.0
- Windows 32 bits:
- Si tienes instalado Visual Studio 2012 Express:
- Una vez copiado los archivos, abrimos con un editor de texto el archivo extension.vsixmanifest. En el veremos la siguiente estructura XML:
<SupportedProducts> <VisualStudio Version="10.0"> <Edition>VSTS</Edition> <Edition>VSTD</Edition> <Edition>Pro</Edition> <Edition>VCSExpress</Edition> <Edition>VPDExpress</Edition> </VisualStudio> </SupportedProducts>
Donde pone Version, cambiaremos el valor a nuestra versión de Visual Studio instalada, 11.0 para Visual Studio 2012 (independientemente de si es Express o no), y 12.0 para Visual Studio 2013.
- En el caso de tratarse de las ediciones Express, deberéis añadir la siguiente linea antes del cierre de la etiqueta </VisualStudio>:
<Edition>WDExpress</Edition>
- Para que Visual Studio reconozca las nuevas plantillas de proyecto y aplique los cambios, ejecutaremos el siguiente comando desde la consola de texto de Windows. Pulsar Windows + R para mostrar la ventana de Ejecutar y llamar al cmd.exe. Si os diera error de acceso denegado o similar al ejecutar el comando, ejecutar cmd.exe con privilegios de administrador:
- Visual Studio 2012 Express:
- Windows 32 bits:
“C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\WDExpress.exe” /setup
- Windows 64 bits:
“C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\WDExpress.exe” /setup
- Windows 32 bits:
- Visual Studio 2013 Express:
- Windows 32 bits:
“C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\WDExpress.exe” /setup
- Windows 64 bits:
“C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\WDExpress.exe” /setup
- Windows 32 bits:
- Visual Studio 2012 Professional o superior:
- Windows 32 bits:
“C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe” /setup
- Windows 64 bits:
“C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe” /setup
- Windows 32 bits:
- Visual Studio 2013 Professional o superior:
- Windows 32 bits:
“C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe” /setup
- Windows 64 bits:
“C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe” /setup
- Windows 32 bits:
- Visual Studio 2012 Express:
- El ultimo paso consiste en eliminar 2 archivos temporales, extensionSdks.en-US.cache y extensions.en-US.cache, en la siguiente ruta:
- Visual Studio 2012 Express:
C:\Users\tu usuario\AppData\Local\Microsoft\WDExpress\11.0\Extensions\
- Visual Studio 2013 Express:
C:\Users\tu usuario\AppData\Local\Microsoft\WDExpress\12.0\Extensions\
- Visual Studio 2012 Express:
-
- Visual Studio 2012 Professional o superior:
C:\Users\tu usuario\AppData\Local\Microsoft\VisualStudio\11.0\Extensions\
- Visual Studio 2012 Professional o superior:
-
- Visual Studio 2013 Professional o superior:
C:\Users\tu usuario\AppData\Local\Microsoft\VisualStudio\12.0\Extensions\
- Visual Studio 2013 Professional o superior:
Una vez completados estos pasos, Visual Studio os debería mostrar las plantillas para nuevos proyectos de XNA 4.0 y estar todo listo para poder trabajar con ello.
Este proceso descrito bien sirve para desarrollos de juegos para escritorio, en teoría, sin ningún problema. Aunque también se instalan las plantillas de XBox360 y Windows Phone 7, dado que la instalación de XNA no es completa (falla uno de los paquetes referentes a los servicios de XBox Live por ejemplo) yo no me arriesgaría y usaría si o si Visual Studio 2010 y la instalación limpia de XNA 4.0 para proyectos de XBox360. Para desarrollos de Windows Phone 7.8 con XNA (que también son soportados en Windows Phone 8) el Windows Phone SDK 8 o Visual Studio 2012/2013 para Windows Phone, todavía incluye las plantillas de XNA para Windows Phone (e independientemente también instala XNA) por lo que es actualmente, la única vía posible para desarrollos Windows Phone 7.8 con XNA que existe (que yo recuerde, desde el Windows Phone SDK 7.1 ya no funcionaba el proceso para hacer deploy en terminales Windows Phone).
En resumen, este proceso descrito esta pensado para proyectos de juegos de escritorio que se quieran portar más adelante a MonoGame en Linux y Mac, permitiendo trabajar cómodamente desde Windows.
Para finalizar este articulo, os dejo unas capturas de pantalla de Visual Studio 2013 Express en Windows 8.1 donde se ven las plantillas de proyecto de XNA 4.0, el proyecto de juego para Windows montado y ejecutándose, y algunas opciones y configuraciones especificas de proyectos XNA:
Referencias en donde encontré la información con la que he escrito este articulo:
- Aaron Stebner’s WebLog – Steps to install XNA Game Studio 4.0 without using the setup bootstrapper
- Stack Overflow – How to install XNA game studio on Visual Studio 2012?
Editado: Corregida una pequeña errata en las rutas en el ultimo paso.
2 comentarios sobre “Como instalar XNA 4.0 en Visual Studio 2013 sin instalar Visual Studio 2010 o Windows Phone SDK 7.1”