XR-115: Addition and Removal of Users or Controllers During Gameplay *

Version 1.1, 5/1/2021

Titles which support multiple users must respond to the addition and removal of users or scenarios in which an active player has no controller assigned or a controller loss during gameplay as follows:

Controller Addition: After titles have selected or have been provided the initial user and controller, titles can optionally accept input from other controllers. Titles which support multiplayer experiences should consider how an additional player or controller is added into game play and is bound to a user with XUserAddAsync. For example, 'Press A to join' or illustrating a controller silhouette on a player select screen.

Controller Removal: If the player's controller that is driving gameplay is removed during gameplay, titles must allow reestablishment of a new active controller (for example, "Press A to continue" or receiving a ControllerPairingChanged in ERA or XUserDeviceAssociationChangedCallback event in the GDK for the active user with a valid controller). Titles can also invoke system UX using XUserFindControllerForUserWithUiAsync to prompt the user to pair a controller to their user and return to gameplay.

User Addition: When using ERA or UWP, if a new user signs in, the title can add the user to the title if the title supports a multiuser experience, but the title must not automatically switch active users to the new user or interrupt the active users' experience based on a new signed-in user event.

When using the GDK (using either Simplified or Advanced User Models), users are only added when the title calls XUserAddAsync.

Primary User Removal: For titles using ERA or the GDK advanced user model, if the primary user is signed out (via the guide, SPOP or other means), the title must either remove the player from the game or reestablish a user and active controller.

For titles using the GDK Simplified User Model, the primary player being removed will result in the title being suspended at the system level.

In all scenarios, titles handle removal/closure by placing their game in a good state. This includes writing to connected storage, notifying any relevant MPSD sessions that the user has left, and bringing the user to an appropriate place for sign-in if a new user has also not been added.

Additional/Secondary User Removal: Titles can handle this event in their discretion, usually by removing the player from game play immediately or prompting the player to rejoin in the context of the multiplayer experience being used.

Implementation Guidance and Best Practices

A best practice is to pause gameplay when an active player's controller is removed.

When active users sign out, it is best practice to save as much user progress as possible so that when the users return to the experience, they are nearly back to where they left off.

If a title supports multiple signed-in users, when an active user signs out and other active users are still signed in, best practice is to allow other active users to continue the current experience as much as possible. For games, the signed-out user could be removed from gameplay entirely or replaced with a computer-driven player.

Additional Resources

Certification Test Cases

The following table shows which test cases for XR-115 apply to your title if using the GDK Simplified User Model or the GDK Advanced User Model, ERA and UWP Multiple User Applications.

Test Cases Applicable to GDK Simplified User Model Applicable to GDK Advanced User Model, ERA and UWP MUA
115-01 Addition of Users No Yes *
115-02 Removal of Controllers Yes Yes
115-03 Removal of Users No Yes

* 115-01 Addition of Users only applies to ERA and UWP Multiple User Applications. With the GDK, titles are only able to see those users that they have intentionally added. Users added via the shell are unknown to the GDK title.


115-01 Addition of Users

Test Steps

  1. Sign into Profile A and ensure no other profiles are signed in.
  2. Launch the title and progress into gameplay.
  3. At various points during the title's use, connect a second controller and sign into Profile B.
  4. Profile B attempts to provide controller input to the title.

Expected Result
ERA or UWP MUA titles must not automatically interrupt the active user's experience.

Pass Examples

  1. Titles do not automatically switch active users to the new user or interrupt the active user's experience.
  2. Game titles may choose to allow Profile B to control the title depending upon the current context.

Fail Examples

  1. The title immediately switches context to Profile B as the active user.

115-02 Removal of Controllers

Test Steps

  1. Sign into a profile and launch the title.
  2. At various points during the title's use, remove the batteries from the controller.
  3. Replace the batteries in the controller and verify that the user can continue to use the title.
  4. Repeat Steps [1] - [3] but connect a second controller rather than replacing the batteries.

Expected Result
Titles must respond to the removal and addition of controllers correctly.

Pass Examples

  1. The active user should be able to continue using the title following the removal or addition of a controller.
  2. The user is prompted to re-establish a new active controller (for example, "Press A to continue" or by invoking the system UX).

Fail Examples

  1. Users are unable to continue using a title following the removal of a controller.

115-03 Removal of Users

Test Steps

  1. Sign into Profile A and ensure no other profiles are signed in.
  2. Launch the title and progress into gameplay.
  3. At various points during the title's use, sign out of Profile A.
  4. Verify that the title either invokes the account picker or returns the user to the front end.
  5. Where possible, interact with the title in the following ways:
  • Sign into Profile A and ensure that the title does not further interrupt the user's experience.
  • Sign into Profile B and ensure that the title updates to the context of the new user.

Expected Result
The title must either remove the player from the game or re-establish a user and active controller. If the player is removed from the game, the title should be left in a good state. This includes writing to connected storage, notifying any relevant MPSD sessions that the user has left, and bringing the user to an appropriate place for sign-in if a new user has also not been added.

Pass Examples

  1. The title removes the player from the game and returns to the front end.
  2. The title allows the user to re-establish a new user and correctly updates to the relevant user context.

Fail Examples

  1. The title fails to react to the change in user state.
  2. The title continues to use Profile A's user state after a new profile is selected.