- Qui a effectué une action dans le jeu ?
- Qui obtient le succès ?
- Qui effectue l’achat ?
Différences de modèle utilisateur entre l’ERA XBOX One et le Microsoft Game Development Kit (GDK)
Que vous développiez un nouveau titre Microsoft Game Development Kit (GDK) ou que vous portiez un titre existant de l’ERA XBOX One, l’implémentation de la gestion des utilisateurs et des périphériques d’entrée peut prêter à confusion si vous êtes habitué au modèle utilisateur de l’ERA XBOX One.- Les titres qui ont besoin d’utilisateurs, par exemple lorsque des sauvegardes de jeu ou des succès sont nécessaires, doivent établir un utilisateur principal. Cet utilisateur principal est une construction propre au titre et n’est pas fourni par le système.
- Le titre ne connaît que les utilisateurs ajoutés via un appel à XUserAddAsync. Le titre n’est informé d’aucune action effectuée par le système pour les utilisateurs qu’il n’a pas ajoutés.
- Lorsqu’un périphérique précédemment associé à un utilisateur du titre est associé à un utilisateur que le titre ne connaît pas, le titre est uniquement informé d’un événement d’association de périphérique, sans nouvel utilisateur.
- Si un périphérique qui n’était pas associé à un utilisateur du titre est associé à un autre utilisateur qui n’a pas non plus été ajouté avec XUserAddAsync, le titre n’est pas informé de l’événement d’association.
- Le sélecteur de compte se comporte différemment selon la façon dont il a été ouvert (Guide système ou XUserAddAsync).
L’exemple UserManagement couvre la gestion des utilisateurs et le comportement d’association des périphériques d’entrée
dans une grande variété de situations de jeu. Il gère également les exigences XR relatives aux utilisateurs
et aux périphériques d’entrée. Pour plus d’informations sur les exemples, consultez
Exemples du Microsoft Game Development Kit.
Comment identifier un utilisateur donné
Les jeux utilisent l’ID local pour interagir avec les périphériques d’entrée. L’ID local est un identificateur qui reste associé à l’utilisateur pendant toute sa durée de vie dans la session de jeu. L’ID local est utilisable dans tous les processus que le jeu lance ou si le jeu appelle XLaunchNewGame. N’utilisez pas l’ID local pour identifier un utilisateur d’une session de jeu à l’autre. Pour obtenir l’ID local d’un utilisateur, utilisez la fonction XUserGetLocalId.Comment identifier un périphérique d’entrée particulier
Les périphériques de jeu, tels que les manettes, les sticks arcade et les volants, possèdent tous un ID de périphérique unique représenté par une structure APP_LOCAL_DEVICE_ID. Cet ID de périphérique est conservé d’un lancement du jeu à l’autre et lors des redémarrages du système. L’ID de périphérique est différent pour deux jeux différents exécutés sur le même système. Si vous utilisezXInput sur la console, vous pouvez obtenir l’ID de périphérique à l’aide de
XInputGetDeviceId.
Si vous utilisez GameInput, vous pouvez obtenir l’ID de périphérique à partir du
membre deviceId de l’objet GameInputDeviceInfo renvoyé par
un appel à IGameInputDevice::GetDeviceInfo.
Modèle utilisateur
Lorsqu’un titre a besoin d’utilisateurs, par exemple lorsque des sauvegardes de jeu ou des succès sont nécessaires, le titre est entièrement responsable de l’établissement d’un utilisateur principal. Cet utilisateur principal doit être conservé même lorsque plusieurs utilisateurs sont autorisés à se connecter. Le titre doit également permettre de changer l’utilisateur principal si nécessaire. Une méthode pour y parvenir consiste à proposer une invite Changer d’utilisateur qui ouvre un sélecteur de compte avec XUserAddAsync. Le sélecteur de compte répertorie tous les utilisateurs qui se sont déjà connectés sur la console, comporte un bouton Ajouter pour se connecter à de nouveaux comptes et permet de connecter des utilisateurs invités temporaires. N’importe lequel de ces comptes d’utilisateur peut être sélectionné, quelle que soit la véritable identité de l’utilisateur. Le système prend en charge les utilisateurs qui choisissent de jouer en tant que quelqu’un d’autre de cette manière. Les titres Microsoft Game Development Kit (GDK) n’ont pas une connaissance complète des utilisateurs du système. Les utilisateurs ne peuvent être ajoutés à un titre que via un appel à XUserAddAsync. Les utilisateurs ajoutés de cette manière sont les seuls avec lesquels le titre peut interagir. Le système n’informe pas le titre des actions effectuées pour les utilisateurs que le titre n’a pas ajoutés. Par conséquent, le titre doit tenir sa propre liste d’utilisateurs. Le sélecteur de compte peut être ouvert de deux façons différentes : depuis le Guide système et via XUserAddAsync. Ce sélecteur se comporte différemment dans ces deux cas :L’ensemble des utilisateurs connectés à un titre est toujours un sous-ensemble des utilisateurs
connectés au système. Un titre ne peut pas avoir d’utilisateurs connectés que le système n’a pas connectés.
En revanche, le système peut avoir des utilisateurs que le titre ne connaît pas.
Associations de périphériques d’entrée
Le Microsoft Game Development Kit (GDK) permet d’associer n’importe quel nombre de périphériques d’entrée aux utilisateurs. Cela peut poser problème lors du portage de titres plus anciens qui supposent un mappage 1:1 entre utilisateurs et périphériques. Les associations de périphériques sont généralement effectuées via le sélecteur de compte. Le périphérique d’entrée qui sélectionne l’utilisateur dans l’interface utilisateur est associé à cet utilisateur. Les associations peuvent également changer dans d’autres cas, par exemple lorsqu’un utilisateur est déconnecté ou lorsque XUserAddAsync est utilisé sans interface utilisateur via les options AddDefaultUserSilently et AddDefaultUserAllowingUI. Le sélecteur de compte se comporte également différemment pour les associations selon la façon dont il a été ouvert :
Si l’utilisateur a été automatiquement connecté au titre sans sélecteur de compte par un appel à
XUserAddAsync utilisant l’une des options AddDefaultUserSilently ou
AddDefaultUserAllowingUI, les associations de périphériques d’entrée dont disposait le système
sont communiquées au titre.
Pour être averti des modifications d’association de périphériques des utilisateurs, vous pouvez inscrire un rappel
XUserDeviceAssociationChangedCallback avec la
méthode XUserRegisterForDeviceAssociationChanged. Vous pouvez
également appeler XUserFindForDevice pour rechercher l’association d’un périphérique spécifique.
Comme le titre ne peut connaître que les utilisateurs ajoutés avec
XUserAddAsync, les rappels et méthodes d’association de périphériques ne peuvent renvoyer que les utilisateurs
que le titre a précédemment ajoutés.
Mise en correspondance de l’utilisateur avec un point de terminaison audio par défaut
Des casques ou des microphones sont fréquemment utilisés avec les jeux. Voici quelques questions importantes à se poser.- L’utilisateur dispose-t-il d’un casque ? Si oui, quel casque est-il susceptible d’utiliser ? Quel est le point de terminaison audio de rendu des communications par défaut ?
- Un microphone est-il associé à l’utilisateur ? Quel est le point de terminaison de capture des communications par défaut ?
