29/07/2016
Si estás inmerso en el desarrollo de videojuegos para el ecosistema de Microsoft, ya sea para PC o para consolas Xbox, es muy probable que te hayas topado con un archivo llamado MicrosoftGame.config. Este fichero, que a primera vista puede parecer un simple archivo de configuración más, es en realidad la piedra angular que define cómo tu juego interactúa con el sistema operativo, la Microsoft Store y los servicios de juego. Entender su propósito, estructura y gestión no es solo una buena práctica, sino un requisito indispensable para empaquetar, publicar y aprovechar al máximo las capacidades que ofrece el Microsoft Game Development Kit (GDK).

Este artículo es una inmersión profunda en el universo de MicrosoftGame.config. Exploraremos qué es, por qué se creó, cómo se estructura y las herramientas que tienes a tu disposición para trabajar con él de manera eficiente. Desde la configuración inicial en Visual Studio hasta la gestión de múltiples versiones para diferentes plataformas, aquí encontrarás todo lo que necesitas saber para dominar este componente crucial de tu proyecto.
¿Qué es MicrosoftGame.config y por qué es importante?
En esencia, el MicrosoftGame.config es un archivo de manifiesto en formato XML diseñado específicamente para videojuegos. Su función principal es almacenar toda la información de configuración específica de tu título. Piensa en él como el DNI de tu juego: contiene su identidad (nombre, editor), sus elementos visuales para el sistema (iconos, logos, pantalla de carga) y la configuración de características avanzadas como el contenido descargable (DLC).
Quizás te preguntes, ¿no existía ya un archivo para esto? Sí, y se llama AppXManifest.xml. Durante años, este fue el manifiesto estándar para todas las aplicaciones de la Microsoft Store. Sin embargo, su esquema se volvió increíblemente complejo para dar cabida a todo tipo de aplicaciones, desde herramientas de productividad hasta juegos. Para los desarrolladores de videojuegos, navegar por este manifiesto era una tarea propensa a errores y poco productiva.
Aquí es donde MicrosoftGame.config brilla. Se creó para ofrecer un esquema de manifiesto más simple, centrado exclusivamente en las necesidades de los desarrolladores de juegos. Al utilizarlo, trabajas con una estructura más limpia y accesible. Cuando llega el momento de empaquetar o registrar tu juego, las herramientas del GDK validan tu MicrosoftGame.config y generan automáticamente el complejo y bien formado AppXManifest.xml por ti. Esto te permite concentrarte en lo que importa: la configuración de tu juego, no en la burocracia del manifiesto.
La Anatomía de un MicrosoftGame.config
Para entender cómo funciona, lo mejor es ver un ejemplo básico. Cuando creas un nuevo proyecto de juego en Visual Studio con el GDK, se genera un archivo por defecto (normalmente llamado MicrosoftGameConfig.mgc) que luego se renombra a MicrosoftGame.config en la compilación. Este es un ejemplo simplificado de su estructura:
<?xml version="1.0" encoding="utf-8"?> <Game configVersion="1"> <Identity Name="41336PublisherName.ExampleGame" Publisher="CN=A4954634-DF4B-47C7-AB70-D3215D246AF1" Version="1.6.0.0"/> <ExecutableList> <Executable Name="ExampleGame.exe" Id="Game"/> </ExecutableList> <ShellVisuals DefaultDisplayName="Example Game" PublisherDisplayName="Example Publisher" Square150x150Logo="GraphicsLogo.png" Square44x44Logo="SmallLogo.png" Description="Example Game" SplashScreenImage="SplashScreen.png"/> <!-- Otros elementos como StoreId, TitleId, Resources, etc. --> </Game>Vamos a desglosar las partes más importantes:
- Identity: Define la identidad única de tu juego en la tienda y el sistema. Incluye el nombre, el editor y la versión. Es fundamental para que servicios como los logros de Xbox sepan a qué juego pertenecen.
- ExecutableList: Especifica cuál es el archivo ejecutable principal de tu juego. Aquí también puedes definir para qué familia de dispositivos está pensado (PC, XboxOne, Scarlett) a través del atributo
TargetDeviceFamily. - ShellVisuals: Controla toda la apariencia de tu juego en la interfaz del sistema. Aquí defines el nombre que se mostrará en el menú de inicio o en el dashboard de Xbox, los logos de diferentes tamaños, la descripción y la pantalla de carga (splash screen).
- Otros Elementos: Además de estos, existen nodos para configurar el
StoreId(la identidad de tu juego en la Microsoft Store, crucial para las APIs de comercio),TitleId, recursos de localización para soportar múltiples idiomas, y configuraciones de desarrollo como puertos de red para depuración.
Creación y Gestión en tu Proyecto
Trabajar con MicrosoftGame.config en Visual Studio es un proceso muy integrado gracias al GDK. Cuando creas un proyecto para plataformas como Gaming.Desktop.x64 o Gaming.Xbox.XboxOne.x64, un archivo MicrosoftGameConfig.mgc se añade automáticamente.

Puedes añadirlo manualmente también. Si tienes un archivo de configuración existente, solo tienes que agregarlo a tu proyecto y, en sus propiedades, cambiar el "Item Type" a "Microsoft Game Config". Esto le indica a Visual Studio que debe tratarlo de manera especial: lo validará, lo copiará a la carpeta de salida renombrándolo a MicrosoftGame.config y lo registrará después de cada compilación. Esta automatización es clave para un flujo de trabajo ágil, especialmente al depurar, ya que asegura que tu juego se lanza siempre con la identidad del título correcta.
Manejando Múltiples Configuraciones
Es muy común necesitar diferentes configuraciones para distintas situaciones. Por ejemplo, una configuración para depuración con ciertas características activadas, y otra para la versión de lanzamiento (release). O quizás una configuración específica para PC y otra para Xbox Series X|S. El sistema de proyectos del GDK soporta esto de forma nativa. Puedes tener varios archivos .mgc en tu proyecto y asignar cada uno a una configuración de compilación específica. Esto se puede hacer visualmente a través de la ventana de herramientas del GDK en Visual Studio o editando directamente el archivo del proyecto (.vcxproj) para especificar qué archivo de configuración se aplica a cada combinación de plataforma y configuración.
Requisitos de Plataforma y Comportamiento de Lanzamiento
Un aspecto crucial es que debes crear un MicrosoftGame.config para cada plataforma del GDK a la que te dirijas (Gaming.Desktop.x64, Gaming.Xbox.XboxOne.x64, Gaming.Xbox.Scarlett.x64). Esto se debe a que el comportamiento del ejecutable depende directamente de la configuración del manifiesto y del dispositivo en el que se ejecuta. El atributo TargetDeviceFamily dentro del nodo Executable es el que dicta esta intención.
La siguiente tabla resume cómo se comporta el lanzamiento de un juego según la configuración del manifiesto y el dispositivo:
| Presencia de MicrosoftGame.config | TargetDeviceFamily | Dispositivo de Lanzamiento | Acción Resultante |
|---|---|---|---|
| Sí | Xbox Series X|S | Xbox Series X|S | Se lanza nativamente. |
| Sí | Xbox Series X|S | Xbox One | Devuelve un error (plataforma incorrecta). |
| Sí | XboxOne | Xbox Series X|S | Se lanza en modo de retrocompatibilidad. |
| Sí | XboxOne | Xbox One | Se lanza nativamente. |
| Sí | PC | PC | Se lanza como Win32 x64 con identidad. |
| No | N/A | PC | Se lanza como Win32 x64 sin identidad. |
| No | N/A | Xbox (Cualquiera) | Se lanza nativamente (con funcionalidad limitada). |
¿Y si desarrollo sin un MicrosoftGame.config?
El GDK permite lanzar juegos de PC y Xbox sin un MicrosoftGame.config presente. Esto está pensado para las fases iniciales del desarrollo, dándote flexibilidad antes de que necesites integrar funcionalidades que dependan de la identidad del título o de los servicios de Gaming Runtime. Un juego de PC sin este archivo se ejecutará como un ejecutable Win32 normal, pero no podrá usar logros, guardado en la nube, ni podrá ser empaquetado para la Microsoft Store. De manera similar, un juego de Xbox podrá ser desplegado y depurado, pero con un subconjunto limitado de las características del GDK. En resumen: puedes empezar sin él, pero es obligatorio para enviar tu juego a la tienda y para usar la mayoría de los servicios de juego de Microsoft.
Preguntas Frecuentes (FAQ)
¿Qué es exactamente MicrosoftGame.config?
Es un archivo de manifiesto simplificado y centrado en juegos que define la identidad, los visuales y la configuración de tu título para el ecosistema de Microsoft (PC y Xbox). Las herramientas del GDK lo usan para generar el archivo AppXManifest.xml necesario para la tienda.

¿Reemplaza por completo al AppXManifest.xml?
Para el desarrollador, sí. Tú solo trabajas con el MicrosoftGame.config. Internamente, durante el proceso de empaquetado, las herramientas del GDK lo convierten en un AppXManifest.xml completo. No necesitas editar el AppXManifest.xml directamente.
¿Necesito un archivo diferente para PC y para Xbox?
Sí, es la práctica recomendada y necesaria. Debes tener un MicrosoftGame.config para cada plataforma de destino (PC, Xbox One, Xbox Series X|S) para asegurar que los ejecutables y las configuraciones se mapean correctamente.
¿Qué pasa si no uso un MicrosoftGame.config al principio?
Puedes desarrollar y ejecutar tu juego en una fase temprana, pero no tendrás acceso a la "identidad del título". Esto significa que no podrás usar servicios de Gaming Runtime como logros, guardado en la nube, o APIs de comercio. Es obligatorio para poder empaquetar y publicar tu juego.
¿Qué herramientas me ayudan a editar este archivo?
Visual Studio ofrece soporte de IntelliSense, que te ayuda con autocompletado y validación de errores mientras lo editas. Además, existe una herramienta independiente llamada MicrosoftGame.config Editor, una aplicación con interfaz gráfica que facilita enormemente la edición y puede sincronizarse con el Partner Center para obtener automáticamente datos como tu TitleId y StoreId.
Si quieres conocer otros artículos parecidos a MicrosoftGame.config: La Guía Definitiva puedes visitar la categoría Juegos.
