Windows Installer para desarrolladores de juegos
Muestra cómo se puede usar Windows Installer para instalar juegos en máquinas de usuario final. Windows Installer ofrece compatibilidad completa con una interfaz de usuario personalizada, así como para la aplicación de revisiones.
Microsoft Windows Installer es la API preferida para instalar software en equipos basados en Windows. Aunque muchas de las características de Windows Installer están diseñadas para admitir la implementación de aplicaciones empresariales en un entorno corporativo, Windows Installer también es completamente adecuado para instalar juegos en máquinas de usuario final. Las principales ventajas de usar Windows Installer para la instalación de juegos son:
- Desinstalación confiable
- Capacidad de instalar contenido a petición
- Compatibilidad con la interfaz de usuario completamente personalizada
- Aplicación de revisiones eficaz
En este artículo se proporciona información general sobre Windows Installer, específicamente destinado a desarrolladores de juegos. Para obtener documentación detallada sobre las características y las API mencionadas en este artículo, consulte la SDK de Plataforma para Windows.
- Información general
- Conceptos clave de Windows Installer
- Estados de instalación
- Instalación a petición
- Personalización de la interfaz de usuario
- Aplicación de revisiones
- Otros recursos
Información general
Todas las configuraciones basadas en Windows Installer usan un archivo de base de datos de instalación denominado archivo MSI para describir cómo se va a instalar la aplicación. El archivo MSI contiene información sobre qué archivos, claves del Registro, accesos directos de escritorio, asociaciones de archivos y otros elementos de la aplicación se van a instalar. Los archivos reales que se van a instalar se pueden comprimir dentro del propio archivo MSI, agrupados y comprimidos en archivos "archivadores" independientes o almacenados en otro lugar en el medio de instalación como archivos individuales sin comprimir. El archivo MSI también puede hacer referencia a acciones personalizadas implementadas externamente, con el fin de permitir acciones para las que el archivo MSI no permite de forma nativa.
Opcionalmente, un archivo MSI puede contener una interfaz de usuario para guiar al usuario a través del proceso de instalación. Esta interfaz de usuario es adecuada para la mayoría de las aplicaciones. Sin embargo, tiene la apariencia de una aplicación normal de Windows, y muchos desarrolladores de juegos prefieren tener su aplicación de configuración mantener la apariencia del propio juego, con el fin de proporcionar una experiencia de usuario final más coherente. Para admitir este escenario de interfaz de usuario totalmente personalizado, una aplicación de instalación puede desactivar la interfaz de usuario integrada de Windows Installer y controlar toda la interfaz de usuario. La API de Windows Installer expone un mecanismo de devolución de llamada para permitir que se notifique a una interfaz de usuario de configuración personalizada el progreso de la instalación, así como eventos importantes, como las solicitudes de cambio de disco.
Windows Installer no es una solución de un extremo a otro para crear configuraciones. Solo es una API que un programa de instalación puede usar para realizar la instalación real de archivos, claves del Registro, accesos directos de escritorio y otros elementos de la aplicación. Las versiones recientes de todas las principales herramientas de configuración comercial (por ejemplo, InstallShield, WISE y Microsoft Visual Studio) admiten Windows Installer. Estas herramientas proporcionan interfaces de usuario cómodas para crear la configuración de un juego, pero se basan en la API de Windows Installer para realizar gran parte de la instalación real. Estas herramientas también se pueden usar solo para compilar una base de datos MSI que contenga el paquete de instalación, que luego se puede instalar desde una interfaz de usuario de configuración personalizada. Como alternativa a las herramientas de terceros, la API de Windows Installer proporciona todas las funciones necesarias para crear y manipular una base de datos MSI mediante programación, y la SDK de Plataforma para Windows incluye una herramienta de edición de bases de datos MSI sin hueso denominada Orca.
Conceptos clave de Windows Installer
Estos son los componentes y características de Windows Installer.
Componentes
Una aplicación se compone de uno o varios componentes, identificados por un identificador de componente GUID. Un componente es una unidad atómica; está completamente instalado o no está instalado en absoluto. Un componente puede constar de un único archivo, varios archivos, claves del Registro, accesos directos de escritorio o alguna combinación de ellos. Los recursos (archivos, etc.) dentro de un componente deben ser únicos para ese componente, no pueden contener el mismo recurso. Un componente nunca se instala explícitamente; solo se instala como parte de una característica (consulte lo siguiente).
Características
Una característica es un grupo de componentes, identificado por un identificador de característica GUID. A diferencia de los componentes, varias características pueden contener el mismo componente. Se instalará un componente compartido entre varias características si se instala alguna de esas características y solo se quita cuando se han desinstalado todas las características que hacen referencia al componente. La instalación de una característica se puede realizar automáticamente como parte de la instalación de un producto, o bien se puede realizar manualmente mediante la API MsiConfigureFeature .
Aunque algunos juegos tienen varias "características" que se pueden instalar de forma independiente, el concepto de Windows Installer de una característica sigue siendo útil. Puesto que una característica de Windows Installer no es más que una colección de componentes que se pueden instalar juntos, los juegos pueden usar características para agrupar todo el contenido necesario para una fase determinada del juego. Por ejemplo, un juego orientado a nivel podría definir una característica por nivel, que consta de todo el contenido necesario para ese nivel. Esto permitiría que el juego instale el contenido de un nivel a la vez desde dentro del propio juego, en lugar de instalar todo el contenido para todos los niveles durante la instalación inicial.
Estados de instalación
Cada componente o característica tiene un estado de instalación asociado, que determina si el componente o la característica está disponible y, si es así, donde se instalan los archivos del componente o la característica. Los posibles estados de instalación de una característica son:
-
Ausente
-
La característica no está instalada y, por tanto, no es accesible.
-
Local
-
La característica está disponible y se instala para ejecutarse desde el disco duro local.
-
Origen
-
La característica está disponible y se instala para ejecutarse desde el medio de origen original (normalmente un CD o DVD).
-
Anunciado
-
La característica no está instalada, pero se puede instalar a petición mediante la API MsiConfigureFeature . Cuando la característica se instala realmente, se puede instalar en el estado Local o Source.
Un componente puede tener cualquiera de los estados anteriores, excepto "Anunciado". Si un componente forma parte de una característica anunciada, el componente aparecerá como "Absent" hasta que se instale la característica.
Instalación a petición
Windows Installer permite a una aplicación marcar las características como Anunciadas, lo que significa que la característica aún no está instalada, pero está disponible para instalarse en tiempo de ejecución si es necesario. La instalación de características en tiempo de ejecución se conoce como "Instalar a petición". Los juegos pueden usar Install on Demand para reducir drásticamente el tiempo necesario para la configuración inicial del juego aplazando la instalación del contenido del juego hasta que sea necesario en tiempo de ejecución. El retraso necesario para instalar el contenido en tiempo de ejecución a menudo puede estar parcialmente o completamente oculto al realizar la instalación a petición en un subproceso en segundo plano, mientras que el usuario está ocupado de otro modo con el juego.
Personalización de la interfaz de usuario
Aunque Windows Installer proporciona una interfaz de usuario predeterminada que guía al usuario a través de la instalación de la aplicación, esta interfaz es similar a la de una aplicación estándar de Windows. Muchos desarrolladores de juegos prefieren que su interfaz de usuario de instalación tenga la misma apariencia que el propio juego, para proporcionar al usuario un sabor del ambiente del juego. Para admitir esto, Windows Installer permite que su interfaz de usuario integrada esté completamente deshabilitada, lo que permite al desarrollador proporcionar una interfaz de usuario completamente personalizada.
El programa de instalación personalizado deshabilita primero la interfaz de usuario integrada de Windows Installer mediante la API MsiSetInternalUI para establecer el nivel de interfaz de usuario en INSTALLUILEVEL_NONE. A continuación, llama a la API MsiSetExternalUI para especificar una función de devolución de llamada a la que se llamará durante el proceso de instalación para notificar al programa de instalación de eventos clave durante la instalación.
A continuación, se inicia el proceso de instalación real mediante una llamada a la API MsiInstallProduct . Esta API acepta una cadena de parámetro que permite al autor de la llamada especificar valores para las propiedades con nombre. Estas propiedades se pueden usar en la propia base de datos de instalación para personalizar cómo se va a instalar la aplicación. Estas propiedades se pueden usar para especificar:
- Directorio al que se va a instalar la aplicación
- Qué características se van a instalar localmente y cuáles se van a instalar para ejecutarse desde el CD/DVD (por ejemplo, para habilitar la elección entre una instalación mínima y una instalación completa)
- Si la aplicación debe instalarse para todos los usuarios de la máquina o solo para el usuario actual
Durante el transcurso de la instalación, el programa de instalación usa los mensajes de notificación enviados a su función de devolución de llamada para determinar cuándo actualizar su interfaz de usuario de indicador de progreso, cuándo pedir al usuario que inserte el siguiente CD o cuándo notificar al usuario sobre un error en el proceso de instalación.
Aplicación de revisiones
Windows Installer permite aplicar revisiones a las aplicaciones instaladas aplicando un archivo de revisión. Un archivo de revisión contiene los nuevos archivos que agregará la revisión, los archivos modificados por la revisión y una lista de cambios que se realizarán en la base de datos de instalación. Para conservar espacio, en lugar de almacenar el contenido completo de un archivo cambiado por la revisión, el archivo de revisión contiene realmente solo las diferencias entre la versión original del archivo y la nueva versión del archivo.
Para crear una revisión, necesita la imagen de configuración de cada una de las versiones de la aplicación desde las que desea actualizar la revisión, así como la imagen de configuración de la nueva versión actualizada de la aplicación. Una imagen de configuración consta de la base de datos MSI y de todos los archivos de datos reales de la aplicación. La mejor manera de crear una imagen de configuración para una nueva versión de la aplicación es copiar la imagen de instalación de la versión anterior de la aplicación y, a continuación, realizar los cambios necesarios para actualizar esa copia a la versión revisada.
Una vez que tenga todas las imágenes de configuración necesarias, puede crear las revisiones mediante Msimsp.exe, que es una herramienta de creación de revisiones disponible como parte del SDK de plataforma. La herramienta solicitará las ubicaciones de cada una de las imágenes de configuración y, a continuación, determinará cómo representar eficazmente las diferencias entre las versiones sucesivas. La salida de la herramienta es el archivo de revisión final (identificado por la extensión MSP). Para instalar la revisión mediante programación, llame a la API MsiApplyPatch . El usuario también puede instalar la revisión manualmente haciendo doble clic en el archivo MSP en el Explorador.
Otros recursos
- Para obtener información detallada sobre la API de Windows Installer, consulta Windows Installer.
- Para obtener información sobre los procedimientos recomendados para la instalación de juegos, consulta Instalación y mantenimiento de juegos.