Compartir a través de


Instalación de DirectX para desarrolladores de juegos

Este artículo está pensado para abordar algunas de las preguntas comunes sobre el entorno de ejecución de DirectX y el uso de DirectSetup para instalar DirectX.

Importante

El SDK de DirectX heredado está al final del ciclo de vida, pero sigue estando disponible para admitir los antiguos juegos, tutoriales y proyectos. Los nuevos proyectos no deben usarlos. El uso del SDK de DirectX heredado requiere el uso de DirectSetup en desuso para componentes como D3DX9, D3DX10, D3DX11, XAudio 2.7, XInput 1.3 y XACT. Para obtener más información sobre el estado actual del SDK de DirectX, consulte ¿Dónde está el SDK de DirectX?, y la entrada de blog Not So Direct Setup.

DirectX Runtime

El entorno de ejecución de DirectX consta de componentes principales y componentes opcionales.

Los componentes principales, como Direct3D y DirectInput, se consideran parte del sistema operativo. Los componentes principales de DirectX 9.0c no han cambiado desde la actualización summer 2004 del SDK de DirectX y coinciden con lo que se publicó con Microsoft Windows XP SP2, Windows XP Pro x64 Edition y Windows Server 2003 SP1. Windows Vista incluye DirectX 10, que admite el modelo de controlador de pantalla de Windows (WDDM) y Direct3D 10.x. Windows 7 y Windows Vista admiten DirectX 11, que admite Direct3D 11, Direct2D, DirectWrite, el dispositivo de representación de software WARP10 y los niveles de características de 10level9. Consulte Api de gráficos en Windows para obtener más detalles.

Los componentes opcionales se publican en actualizaciones del SDK de DirectX y incluyen D3DX, XACT, XAudio2, XINPUT, DirectX administrado y otros componentes de este tipo. Muchos de los componentes opcionales se actualizan periódicamente para integrar los comentarios de los clientes y exponer nuevas características.

Número de versión de DirectX

El número de versión de DirectX, como 9.0c, solo hace referencia a la versión de los componentes principales, como Direct3D, DirectInput o DirectSound. Este número no cubre las versiones de los distintos componentes opcionales que se publican en el SDK de DirectX, como D3DX, XACT, XINPUT, etc.

Por lo general, el número de versión de DirectX no es significativo, excepto como referencia rápida a los bits en tiempo de ejecución principales. Este número no se debe usar para comprobar si el tiempo de ejecución de DirectX correcto ya está instalado, ya que no tiene en cuenta los componentes opcionales de DirectX.

Bibliotecas de DirectX

En el pasado, los componentes opcionales del SDK de DirectX, incluido D3DX, se publicaron como bibliotecas estáticas. Sin embargo, ahora se publican como bibliotecas de tipo dinámico (DLL) debido al aumento de la demanda de mejores prácticas de seguridad. Los archivos DLL permiten el mantenimiento del código publicado anteriormente. Si estos componentes se implementaran como bibliotecas estáticas, no habría forma de que Microsoft solucione los problemas de seguridad encontrados después de la versión.

A medida que se agregan o cambian características a los componentes opcionales, los nombres de los archivos DLL correspondientes también se cambian para asegurarse de que no se produzca ninguna regresión a los juegos existentes que usan componentes liberados. Los archivos DLL de cada componente residen en paralelo y los desarrolladores de juegos pueden elegir exactamente qué versión dll usa el juego vinculando a la biblioteca de importación correspondiente.

Aunque asegurarse de que los archivos DLL están instalados en un sistema no es tan fácil como simplemente vincular a bibliotecas estáticas, se han realizado algunos cambios en el SDK de DirectX para solucionar el problema del modelo dll:

  • El redistribuible DirectX se puede configurar para que contenga solo los componentes que requiere la aplicación para minimizar los tamaños de distribución y multimedia.
  • La carpeta redistribuible, Archivos de programa\SDK de DirectX\Redist\, ahora contiene un archivo archivador (.cab) para todos los componentes opcionales posibles, por lo que no es necesario profundizar en un SDK anterior para encontrarlos.
  • La instalación del PROPIO SDK instala todos los componentes opcionales posibles.
  • Un redistribuible DirectX que contiene todos los componentes opcionales está disponible tanto como un instalador basado en Web como un paquete descargable; consulte el Centro para desarrolladores de DirectX (DirectX) para obtener más información.

Instalación de DirectX por el instalador del juego

Los siguientes son los procedimientos recomendados para agregar la instalación de DirectX al instalador de un juego:

Término Descripción
Instale los componentes redistribuibles cada vez.
El proceso de instalación de un juego debe instalar los componentes redistribuibles de DirectX durante cada instalación única sin permitir que los usuarios lo desconten. Si permites no participar, algunos usuarios adivinarán que no lo necesitan y, si lo hacen, el juego no se ejecutará.
Deje que el instalador de DirectX compruebe si hay componentes opcionales.
No suponga que los componentes opcionales más recientes ya están instalados en un sistema, ya que Windows Update y Service Packs no proporcionan ninguno de los componentes opcionales de DirectX. Debe instalar el entorno de ejecución de DirectX ejecutando dxsetup.exe directamente o llamando a DirectSetup.
Se configura de forma silenciosa.
Inicie la configuración en modo silencioso para que los usuarios no omitan accidentalmente la actualización del entorno de ejecución de DirectX. Para ello, inicie dxsetup.exe con el siguiente comando:
   path-to-redistributable\dxsetup.exe /silent
o llamando a DirectSetup y no mostrando ninguna interfaz de usuario.
Combinar aceptaciones del CLUF.
Si pides al usuario que acepte un CLUF, combina eso con la solicitud de aceptación del CLUF de DirectX al instalar en modo silencioso para que se solicite la aceptación de los EULA una sola vez. Se debe preguntar antes de instalar algo para que si el usuario no acepta, no terminará con una instalación parcial y con errores.
Solo tiene que ejecutar dxsetup o llamar a DirectSetup.
Dado que el número de versión de DirectX no hace referencia a nada excepto a los componentes principales de DirectX, no compruebe una versión instalada antes de ejecutar dxsetup.exe o llamar a DirectSetup. Además, no compruebe la existencia de un archivo para probar si ya hay instalado un componente opcional, ya que esto normalmente no determinará correctamente cuándo existe un componente, pero necesita actualizarse. Sin embargo, el paquete de instalación de DirectX determinará rápidamente esto y realizará la acción correcta.

Paquetes de instalación pequeños

Puedes crear paquetes de instalación más pequeños para DirectX quitando el contenido de la carpeta redistribuible de DirectX hasta el conjunto mínimo de archivos necesarios para que el instalador funcione y conservando los componentes adicionales que usa el juego.

En función de las especificaciones mínimas, es posible que ni siquiera necesite incluir los archivos principales del gabinete directX 9.0c en la carpeta redistribuible de los medios de instalación. Una gran mayoría de las instalaciones de Windows XP tienen Service Pack 2, que incluye los componentes principales de DirectX 9.0c, por lo que la operación de instalación de DirectX será muy rápida y no requerirá un reinicio. El paquete más pequeño que se puede crear es de aproximadamente 3 MB y se puede comprimir a aproximadamente la mitad de ese tamaño. Un paquete como este contiene una versión del archivo DLL D3DX y requiere que DirectX 9.0c ya esté presente.

El conjunto mínimo de archivos necesarios para compilar un paquete redistribuible son los siguientes archivos, ubicados en la carpeta Redist del SDK de DirectX (Archivos de programa\SDK de DirectX\Redist):

  • dxsetup.exe
  • dsetup32.dll
  • dsetup.dll
  • dxupdate.cab

Agregue a estos archivos de archivador para los componentes que desea instalar. Si necesita que los usuarios de la aplicación ya tengan DirectX 9.0c, no es necesario incluir DirectX.cab o dxnt.cab, que constituyen la mayor parte del requisito de espacio. DirectX.cab solo es necesario para Windows 98 y Windows ME; dxnt.cab solo es necesario para Windows 2000, Windows XP y Windows XP SP1; y dxdllreg_x86.cab solo es necesario para Windows 2000, Windows XP RTM, Windows XP SP1 y Windows Server 2003 RTM. Además, si no usa DirectShow o supone que ya está instalado, puede omitir BDA.cab, BDANT.cab y BDAXP.cab.

Nota

Puede suponer que los usuarios de la aplicación ya tienen DirectX 9.0c si se instaló mediante una versión anterior de la aplicación, obliga a los usuarios a actualizar manualmente a través del Instalador web o supone que tienen Windows XP SP2 o posterior.

Siguiendo con este ejemplo, si usa solo la versión de 32 bits de D3DX para abril de 2006, puede agregar Apr2006_d3dx9_30_x86.cab. Si usa la versión de 32 bits de agosto de 2006 de 32 bits de XINPUT, agregue Aug2006_xinput_x86.cab.

Si tiene una aplicación nativa de 64 bits, deberá agregar las versiones de _x64. Sin embargo, si tiene una aplicación de 32 bits que se ejecuta en un sistema operativo de 64 bits, las versiones de 32 bits de los archivos DLL funcionarán.

Después, puede distribuir este paquete de archivos e iniciar DirectSetup en modo silencioso o ejecutar dxsetup.exe en el shell de comandos en modo silencioso. Recuerde no proteger este paquete mediante ninguna comprobación de versiones de los archivos y asegúrese de que los usuarios no pueden optar por no ejecutar la configuración de DirectX. Cualquiera de estos eventos crea un proceso de instalación fallible.

Implementación interna del entorno de ejecución de DirectX de depuración

Los entornos de ejecución de depuración de los componentes de DirectX se instalan cuando se instala el SDK de DirectX, pero la instalación del SDK en cada equipo de prueba puede resultar difícil. Debes diseñar el proceso de instalación para copiar los archivos DLL del tiempo de ejecución de depuración desde Archivos de programa\Microsoft DirectX SDK\Developer Runtime\architecture\ a Windows\system32\ o a la carpeta del juego.

Sin embargo, se recomienda encarecidamente no copiar simplemente los archivos DLL en tiempo de ejecución liberados, ya que es fácil olvidar quitarlos para el producto final. En su lugar, coloque los archivos de instalación de DirectX en una carpeta compartida y ejecute el programa de instalación de forma silenciosa desde la carpeta compartida.

aplicaciones de Puente de dispositivo de escritorio

Puente de dispositivo de escritorio aplicaciones que usan D3DX9, D3DX10, D3DX11, XAudio 2.7, XInput 1.3 o XACT deben descargar el marco Microsoft.DirectX.x86 o Microsoft.DirectX.x64 para implementar estos componentes heredados del SDK de DirectX en paralelo. Como alternativa, puede quitar todas estas dependencias(consulte la Guía para desarrolladores para la versión redistribuible de XAudio 2.9 y las entradas de blog Living without D3DX y XINPUT y Windows 8).