GameInputRedist.dll, dans le même répertoire que l’exécutable de votre jeu. On parle alors de chargement indépendant (sideloading). Un runtime chargé de manière indépendante permet à votre jeu d’utiliser les fonctionnalités et correctifs GameInput avec lesquels il a été généré et testé, même sur un système où le composant redistribuable GameInput n’est pas installé ou dont une version antérieure est installée. Ce modèle est similaire à celui utilisé par le SDK DirectX Agility.
Le chargement indépendant est pris en charge sur PC et sur les consoles XBOX. Sur XBOX, le chargement indépendant nécessite le GDK d’octobre 2025 (2510) ou une version ultérieure, et il permet à votre jeu d’utiliser une version d’API plus récente que celle prise en charge par le runtime du GDK, par exemple l’API v4 avant le GDK d’octobre 2026. Pour plus d’informations, consultez GameInput sur les consoles XBOX.
L’installation du composant redistribuable GameInput reste la méthode privilégiée pour déployer GameInput sur PC. Un runtime installé prend en charge toutes les fonctionnalités de GameInput, est partagé par toutes les applications et est mis à jour indépendamment de votre jeu. Utilisez le chargement indépendant lorsque l’installation du composant redistribuable n’est pas pratique, par exemple lorsque votre canal de distribution ne prend pas en charge l’exécution de programmes d’installation, ou sur les ordinateurs de développement et de test.
Obtention du runtime pouvant être chargé de manière indépendante
Le package NuGet Microsoft.GameInput contient le runtime pouvant être chargé de manière indépendante aux emplacements suivants.
Le package NuGet ne copie pas ces fichiers dans la sortie de votre build. Ajoutez à votre processus de génération ou d’empaquetage une étape qui copie les fichiers correspondant à votre plateforme et à votre architecture cibles à côté de l’exécutable de votre jeu.
Sur PC, déployez également
GameInputRawInputProxy.exe dans le même répertoire que GameInputRedist.dll. Le runtime chargé de manière indépendante utilise ce processus auxiliaire pour recevoir les entrées du clavier et de la souris. Un runtime chargé de manière indépendante utilise uniquement le proxy situé à côté de lui, jamais celui d’un composant redistribuable installé. Si le proxy est absent, le runtime reçoit les entrées du clavier et de la souris dans le processus de votre jeu.
Sélection du runtime
Vous n’avez pas besoin de modifier votre code pour utiliser un runtime chargé de manière indépendante. Liez avecgameinput.lib à partir du package NuGet et appelez GameInputCreate comme d’habitude. Lors du premier appel à GameInputCreate, le chargeur de gameinput.lib recherche le runtime GameInput aux emplacements suivants :
- Le runtime intégré à Windows,
GameInput.dll, dans le répertoire système. - Le runtime du composant redistribuable installé,
GameInputRedist.dll, dans le répertoire système ou dans le répertoire où le composant redistribuable GameInput est installé. - Le runtime chargé de manière indépendante,
GameInputRedist.dll, dans le répertoire de l’exécutable du jeu.
Limitations
Sur PC, certaines fonctionnalités de GameInput dépendent de composants qui ne sont présents que lorsque le composant redistribuable GameInput est installé, comme le service GameInput qui gère le focus d’entrée. Lorsque votre jeu utilise un runtime chargé de manière indépendante sur PC, les limitations suivantes s’appliquent. Ces limitations ne s’appliquent pas aux consoles XBOX.- Les appels à IGameInput::EnableBackgroundInput avec
truen’ont aucun effet, car l’activation de l’entrée en arrière-plan revendique également les boutons système, ce qu’un runtime chargé de manière indépendante ne peut pas faire. - Le focus d’entrée n’est pas géré par le service GameInput ; GameInput ne filtre donc pas systématiquement les entrées selon que votre jeu a le focus ou non. Selon le périphérique, votre jeu peut recevoir ou non des entrées lorsqu’il n’a pas le focus. Si votre jeu dépend d’un comportement de focus cohérent, vérifiez s’il a le focus avant de traiter les entrées, ou installez le composant redistribuable GameInput.
- Dans les versions d’API v1 à v3,
IGameInput::SetFocusPolicyaccepte uniquementGameInputDefaultFocusPolicyetGameInputEnableBackgroundInput. Les autres stratégies de focus, y compris toute combinaison d’indicateurs, sont ignorées. - Dans les versions d’API v1 à v3,
IGameInput::RegisterSystemButtonCallbackéchoue avecGAMEINPUT_E_FEATURE_REQUIRES_INSTALL(0x838AD02B). Dans la version d’API v4, les boutons système sont signalés dans des lectures de typeGameInputKindSystemButton, qui fonctionnent avec un runtime chargé de manière indépendante. Pour plus d’informations, consultez IGameInputReading::GetSystemButtonState.
Recommandations
- Utilisez la même version du package NuGet pour l’en-tête GameInput,
gameinput.libet le runtime chargé de manière indépendante. - Testez votre jeu avec et sans le composant redistribuable GameInput installé.
- Si votre jeu nécessite l’entrée en arrière-plan ou un comportement de focus cohérent sur PC, installez le composant redistribuable GameInput au lieu de charger le runtime de manière indépendante, ou en complément. Pour plus d’informations, consultez GameInput pour PC et console avec NuGet.
Voir aussi
GameInput pour PC et console avec NuGetGameInput sur les consoles XBOX
Gestion des versions de l’API GameInput
Notions fondamentales de GameInput
Référence de l’API GameInput
