- Qui a effectué une action dans le jeu?
- Qui obtient le succès?
- Qui effectue l’achat?
Différences de modèle d’utilisateur entre l’ERA de XBOX One et le Microsoft Game Development Kit (GDK)
Que vous développiez un nouveau titre avec le Microsoft Game Development Kit (GDK) ou que vous portiez un titre antérieur de l’ERA de XBOX One, la mise en œuvre de la gestion des utilisateurs et des périphériques d’entrée peut être déroutante lorsqu’on est habitué au modèle d’utilisateur de l’ERA de 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 au moyen d’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 qui était auparavant associé à un utilisateur du titre est associé à un utilisateur que le titre ne connaît pas, le titre est seulement 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 devient 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 du système ou XUserAddAsync).
L’exemple UserManagement couvre la gestion des utilisateurs et le comportement de jumelage des périphériques d’entrée
dans une grande variété de situations de jeu. Il gère aussi les exigences XR liées 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 au sein de la session de jeu. L’ID local est utilisable dans tous les processus que le jeu génère 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, comme les manettes, les manettes d’arcade et les volants, ont tous un ID de périphérique unique représenté par une structure APP_LOCAL_DEVICE_ID. Cet ID de périphérique persiste d’un lancement du jeu à l’autre et entre les 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 retourné par
un appel à IGameInputDevice::GetDeviceInfo.
Modèle d’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 maintenu même lorsque plusieurs utilisateurs peuvent se connecter. Le titre doit aussi permettre de changer l’utilisateur principal au besoin. Une façon de le faire serait d’offrir une invite Changer d’utilisateur qui ouvre un sélecteur de compte avec XUserAddAsync. Le sélecteur de compte affiche la liste de tous les utilisateurs qui se sont déjà connectés à 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 façon. Les titres du Microsoft Game Development Kit (GDK) n’ont pas une connaissance complète des utilisateurs du système. Les utilisateurs peuvent plutôt seulement être ajoutés à un titre au moyen d’un appel à XUserAddAsync. Les utilisateurs ajoutés de cette façon sont les seuls avec lesquels le titre peut interagir. Le système n’informe pas le titre des actions effectuées pour des utilisateurs que le titre n’a pas ajoutés. Par conséquent, le titre doit maintenir sa propre liste d’utilisateurs. Le sélecteur de compte peut être ouvert de deux façons différentes : à partir du guide du système et au moyen de 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.
Toutefois, le système peut avoir des utilisateurs que le titre ne connaît pas.
Associations des 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 à un utilisateur. Cela peut représenter un défi lors du portage de titres plus anciens qui supposent une correspondance 1:1 entre les utilisateurs et les périphériques. Les associations de périphériques sont généralement établies au moyen du sélecteur de compte. Le périphérique d’entrée qui sélectionne l’utilisateur dans l’interface utilisateur devient associé à cet utilisateur. Les associations peuvent aussi changer dans d’autres cas, par exemple lorsqu’un utilisateur est déconnecté ou lorsque XUserAddAsync est utilisé sans interface utilisateur au moyen des options AddDefaultUserSilently et AddDefaultUserAllowingUI. Le sélecteur de compte se comporte aussi différemment en ce qui concerne 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 au moyen d’un appel à
XUserAddAsync utilisant l’une des options AddDefaultUserSilently ou
AddDefaultUserAllowingUI, les jumelages de périphériques d’entrée dont disposait le système
sont communiqués au titre.
Pour être averti des changements d’association de périphériques des utilisateurs, vous pouvez inscrire un rappel
XUserDeviceAssociationChangedCallback avec la
méthode XUserRegisterForDeviceAssociationChanged. Vous pouvez
aussi appeler XUserFindForDevice pour rechercher l’association d’un périphérique précis.
Puisque le titre ne peut connaître que les utilisateurs ajoutés avec
XUserAddAsync, les rappels et méthodes d’association de périphériques des utilisateurs ne peuvent retourner que les utilisateurs
que le titre a déjà ajoutés.
Faire correspondre l’utilisateur à un point de terminaison audio par défaut
Les casques d’écoute ou les microphones sont souvent fournis avec les jeux. Voici quelques questions importantes à se poser.- L’utilisateur a-t-il un casque d’écoute? Si oui, quel casque utilise-t-il probablement? Quel est le point de terminaison audio de rendu des communications par défaut?
- L’utilisateur a-t-il un microphone qui lui est associé? Quel est le point de terminaison de capture des communications par défaut?
