GameInputRedist.dll, dans le même répertoire que l’exécutable de votre jeu. C’est ce qu’on appelle le chargement latéral (sideloading). Un runtime chargé latéralement permet à votre jeu d’utiliser les fonctionnalités et les correctifs de 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 où une version plus ancienne est installée. Ce modèle est semblable à celui utilisé par le DirectX Agility SDK.
Le chargement latéral est pris en charge sur PC et sur les consoles XBOX. Sur XBOX, le chargement latéral 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, comme 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 demeure 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 latéral lorsque l’installation du composant redistribuable n’est pas pratique, par exemple lorsque votre canal de distribution ne permet pas d’exécuter des programmes d’installation, ou sur les ordinateurs de développement et de test.
Obtention du runtime pouvant être chargé latéralement
Le package NuGet Microsoft.GameInput contient le runtime pouvant être chargé latéralement aux emplacements suivants.
Le package NuGet ne copie pas ces fichiers dans votre sortie de génération. Ajoutez à votre processus de génération ou de création de package 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é latéralement utilise ce processus auxiliaire pour recevoir les entrées du clavier et de la souris. Un runtime chargé latéralement utilise uniquement le proxy qui se trouve à côté de lui, jamais celui d’un composant redistribuable installé. Si le proxy est absent, le runtime se rabat sur la réception des 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é latéralement. Effectuez l’édition de liens avecgameinput.lib du package NuGet et appelez GameInputCreate comme d’habitude. La première fois que GameInputCreate est appelée, le chargeur de gameinput.lib recherche le runtime GameInput aux emplacements suivants :
- Le runtime intégré au système (inbox),
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é latéralement,
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é latéralement 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 des entrées en arrière-plan revendique également les boutons système, ce qu’un runtime chargé latéralement ne peut pas faire. - Le focus d’entrée n’est pas géré par le service GameInput; GameInput ne filtre donc pas les entrées de façon cohérente selon que votre jeu a le focus ou non. Selon l’appareil, votre jeu pourrait 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 réagir aux entrées, ou installez le composant redistribuable GameInput.
- Dans les versions v1 à v3 de l’API,
IGameInput::SetFocusPolicyaccepte uniquementGameInputDefaultFocusPolicyetGameInputEnableBackgroundInput. Les autres stratégies de focus, y compris toute combinaison d’indicateurs, sont ignorées. - Dans les versions v1 à v3 de l’API,
IGameInput::RegisterSystemButtonCallbackéchoue avecGAMEINPUT_E_FEATURE_REQUIRES_INSTALL(0x838AD02B). Dans la version v4 de l’API, les boutons système sont signalés dans les lectures de typeGameInputKindSystemButton, qui fonctionnent avec un runtime chargé latéralement. 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é latéralement. - Testez votre jeu avec et sans le composant redistribuable GameInput installé.
- Si votre jeu nécessite des entrées en arrière-plan ou un comportement de focus cohérent sur PC, installez le composant redistribuable GameInput au lieu du chargement latéral du runtime, ou en plus de celui-ci. 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
