Skip to main content

Pourquoi baser le code d’entrée de mon titre sur GameInput ?

GameInput est une plateforme d’entrée pouvant être mise à jour. Grâce à elle, Windows peut mieux abstraire la diversité des périphériques d’entrée disponibles sur le marché et continuer à améliorer leur prise en charge au fil du temps par le biais de mises à jour de la plateforme. En utilisant GameInput, votre titre sera automatiquement mis à jour pour fonctionner avec les nouveaux périphériques grâce aux versions de Windows et du matériel. En outre, GameInput donne accès à des fonctionnalités plus récentes qui n’étaient pas disponibles auparavant sur Windows, comme les gâchettes à impulsion, et offre une meilleure prise en charge de fonctionnalités telles que l’haptique et les capteurs. En utilisant GameInput, votre titre peut tirer parti de ces fonctionnalités avec un minimum de modifications du code.

Quelles plateformes GameInput prend-il en charge ?

GameInput est disponible sur :
  • XBOX (V.1+ à partir du GDK 2510)
  • Windows 10 (version 19H1/mise à jour de mai 2019 et ultérieures)
  • Windows 11
Bien que GameInput v.0 fasse partie du Windows SDK et du Microsoft Game Development Kit (GDK), la compilation avec des versions plus récentes nécessite l’utilisation du package NuGet, aussi bien pour la console que pour le PC. Le runtime GameInput v.1+ est disponible sur console à partir du GDK 2510, mais son utilisation nécessite de compiler et de lier avec l’en-tête et la bibliothèque du dernier package NuGet GameInput. La dernière version de l’API pour PC et console est toujours disponible dans le package NuGet Microsoft.GameInput.

Ai-je besoin de versions différentes pour XBOX et PC ?

Non, la même API GameInput fonctionne sur toutes les plateformes. À partir du GDK 2510, la dernière API GameInput est disponible à la fois sur XBOX et sur PC, avec les mêmes en-têtes et binaires fournis dans le package NuGet Microsoft.GameInput. Le programme d’installation de GameInput n’est requis que sur PC, car le runtime est inclus dans le GDK sur XBOX.

GameInput fonctionne-t-il avec des moteurs couramment utilisés comme Unreal Engine ?

Oui, même si le niveau d’intégration varie selon le moteur. Certains moteurs intègrent nativement la prise en charge de GameInput sous forme de plug-in, tandis que d’autres s’appuient sur un exemple ou un plug-in natif que vous intégrez vous-même.
  • Unreal Engine : la prise en charge de GameInput est fournie avec le moteur sous la forme d’un ensemble de plug-ins, à partir d’Unreal Engine 5.4. Game Input Base fournit les fonctionnalités et l’interface de base, Game Input (Windows) les implémente pour Win64 et WinGDK, et XBOX Common Game Input les implémente pour XBOX One et XBOX Series X|S. Activez ces plug-ins dans votre projet pour acheminer les entrées via GameInput sur PC et sur console. Pour plus d’informations, consultez Plug-ins Microsoft GDK pour Unreal Engine.
  • Godot : l’exemple XBOX Godot inclut une GDExtension qui lie GameInput à Godot, y compris un pont entre GameInput et les systèmes Input et InputMap de Godot. Il s’agit d’une intégration de référence que vous compilez et adaptez à votre projet, et non d’une fonctionnalité intégrée au moteur. Pour plus d’informations, consultez Bien démarrer avec Godot.
  • Unity : aucun package Microsoft GDK n’expose actuellement GameInput à Unity sur PC ; les jeux Unity sur PC lisent donc généralement les entrées via le Unity Input System. Sur XBOX Series X|S et XBOX One, le package GXDK Input System pour Unity ajoute des fonctionnalités propres à la console au Unity Input System. Pour plus d’informations, consultez Packages GDK pour Unity.
Si votre moteur ne fournit pas d’intégration GameInput, ou si vous souhaitez utiliser des fonctionnalités de GameInput que votre moteur n’expose pas, vous pouvez appeler GameInput directement depuis du code natif à l’aide du package NuGet Microsoft.GameInput.

Mon application ne trouve pas GameInput : que dois-je vérifier ?

  1. Vérifiez que le runtime GameInput est installé sur l’ordinateur cible. Pour les versions v.1 et ultérieures, cela nécessite un package Microsoft.GameInput, que l’utilisateur peut installer à partir du package MSI inclus dans le package NuGet Microsoft.GameInput. Pour installer la dernière version du package, vous pouvez également exécuter winget install Microsoft.GameInput depuis une invite de commandes avec élévation de privilèges.
  2. Assurez-vous que votre application est liée à la bonne bibliothèque GameInput. La dernière version du package NuGet garantit que votre projet utilise le bon binaire GameInput sur les différents points de terminaison et plateformes.
  3. Vérifiez que votre version de Windows prend en charge GameInput (19H1 ou ultérieure).

Est-il difficile de porter du code XInput vers GameInput ?

De nombreuses fonctions XInput ont un équivalent direct dans GameInput, ce qui simplifie le portage de l’une à l’autre. La principale différence est que GameInput utilise des interfaces C++ au lieu de fonctions C simples. GameInput offre également des fonctionnalités supplémentaires non disponibles dans XInput, comme l’accès aux gâchettes à impulsion des manettes XBOX One et d’autres périphériques similaires.

Comment porter du code DirectInput ou Raw Input ?

GameInput fournit un chemin d’interface dans la structure GameInputDeviceInfo. Ce champ est le même que celui utilisé par l’API DirectInput, ce qui permet aux applications de continuer à utiliser leur code DirectInput existant pour l’énumération des périphériques et la récupération d’informations, tout en migrant la lecture des entrées et les autres fonctionnalités vers GameInput. Pour plus de détails, consultez le guide de portage GameInput.

Quel est le rôle du service GameInput ?

Le service GameInput est chargé d’arbitrer l’accès aux périphériques d’entrée du système et de fournir des couches de compatibilité et d’abstraction utiles aux autres applications. Entre autres, le service GameInput :
  • Gère le filtrage et la synchronisation des entrées
  • Fournit les mises à jour de la plateforme et les améliorations des pilotes de périphériques
  • Arbitre l’accès aux périphériques d’entrée entre les instances clientes de GameInput
Le programme d’installation garantit que le runtime est correctement inscrit et que le service est configuré correctement pour des performances optimales.

Puis-je appeler GameInput depuis mon thread de rendu ?

Oui, presque toutes les fonctions GameInput peuvent être utilisées en toute sécurité dans des contextes sensibles au temps comme les threads de rendu. La principale exception est GameInputCreate, que vous devez appeler lors de l’initialisation de l’application.

Voir aussi

Présentation de GameInput Gestion des versions de l’API GameInput Portage de XInput vers GameInput
Last modified on October 6, 2026