XR-007: Cross-Network Play, Data Usage, and Companion App Interactions

Version 1.3, 10/1/2021

Publishers are permitted to use user-specific data from Xbox Live and Xbox consoles and from other platforms on Xbox Live and Xbox consoles with the following limitations:

  • Game progress, in-game items, and statistics

    Titles can, at their discretion, sync game progress, virtual currency wallets and in-game items (including those unlocked with virtual currency) across gaming platforms and networks. As part of user progress, a title can provide holistic statistic values including unlock of achievements as long as those achievements do not require play using another platform.

  • Microsoft Store Managed Entitlements

    Digital Content or PDLC (such as a map pack or any content that provides additional gameplay) which are sold in the Microsoft Store AND across other platform stores, may not be shared/roamed across gaming networks. However, for clarity and at the title's discretion, a bundle of in-game items (such as Virtual Currency or items unlocked with VC) that are sold through the Microsoft Store and are managed by the title, may be shared/roamed across gaming networks.

    If you offer content for purchase on another platform for a game supporting Cross Progression functionality:

    Titles must:

    • offer the same or better for-sale content offers in the Microsoft Store to ensure that Xbox users are not disadvantaged (including release timing, market coverage, features, content, language and localization, and physical token card offerings); and
    • include a corresponding offer in Microsoft's Digital Content at Retail program (i.e., Code to Content) if digital codes are sold direct to consumers; and

    Titles must not:

    • intentionally direct content purchases away from the Microsoft Store, or discourage purchases from the Microsoft Store (for example, through marketing, advertising, in-store products, or affinity programs); or
    • offer such content for purchase in connection with products or experiences that do not have the same features and capabilities as the game for Xbox consoles (but, player progression and game data may be shared to such products or experiences - for example, "companion experiences").
  • Cross-platform play

    Titles can, at their discretion, enable synchronous or asynchronous cross-platform gameplay among Xbox Live users on Xbox Live-enabled platforms.

  • Cross-network and companion application play

    Titles can, at their discretion, enable synchronous or asynchronous cross-network gameplay among Xbox Live users and users of non-Xbox Live gaming networks with the following restrictions on Xbox consoles:

    • Games must visually identify Xbox Live users when playing with off-network players.
    • Games must provide a warning when users enter a game mode where cross-network players would be present.
    • Cross-network communication must be restricted based on Xbox Live safety settings as detailed in XR-015: Managing Player Communication and XR-045: Xbox network and Account Privileges.
    • Titles must not require cross network play for all multiplayer game modes.
  • User-generated content

    Beyond XR-018: User-Generated Content, the publisher is obligated to remove content and/or block a companion app user if the content or companion app user is deemed to infringe on IP or copyright or to violate the law, and/or is inappropriate for public consumption. For non-Xbox Live users, content must be:

    • Anonymous and curated by the partner; or
    • Displayed using the publisher's central account name, if the content was created by a non-Xbox Live user on a platform other than an Xbox Console. This account name must be clearly differentiated from how a user's Xbox Live account name would appear, to avoid confusion. If the publisher account is linked to an Xbox Live account, the Xbox Live account must be displayed together with the publisher account even if the content was created on another platform.

Additional Resources

Xbox Live Cross Network Multiplayer Implementation Guidance

Introduction

The below white paper describes the technical considerations for titles that wish to include a cross-network multiplayer experience that extends beyond Xbox Live players. It provides high-level guidance on title and UI design as well as policy for cross-network scenarios.

Compared to Xbox Live multiplayer experiences, cross-network multiplayer experiences allow titles to include players from other gaming networks in multiplayer experiences. These players do not have an Xbox Live identity and therefore require careful design considerations within a title. These considerations include technical aspects such as matchmaking and player representation (see Xbox Live Multiplayer Platform (NDA topic))Необходима авторизация, player identity representation, or communication permissions between game networks.

Cross-network multiplayer

Cross-network multiplayer allows titles to create multiplayer experiences across Xbox Live and other gaming networks. These experiences have to be designed to protect Xbox Live Players: the title must honor Xbox Live Safety Settings and players must be given the option to opt out of cross-network experiences.

To enable cross-network gameplay, a title has to manage additional player, session, and state information that is typically handled by Xbox Live. This requires additional title services/servers.

At a minimum, titles need to be able to manage the following through a title service/server:

  • Cross-network session

    A title service is needed to maintain the group of players across gaming networks that are playing together. Currently non-Xbox Live identities cannot be directly added as members to an Xbox Live multiplayer session.

  • Cross-network matchmaking service

    A title service is needed to provide matchmaking across different gaming networks.

  • Cross-network invite service

    A title service is needed to provide cross-network invites and/or join-in-progress.

In addition to these service requirements, a title has to handle the following functionality to ensure safe gameplay experiences for all players:

  • Cross-network privilege validation

    A title must validate privilege for cross-network play (privilege 185) before enabling any cross-network multiplayer mode. Without this privilege gameplay must be restricted to an Xbox Live-only experience.

  • Cross-network player identity

    To uniquely identify all players within a title service, a unique player identity needs to be available for players across all multiplayer networks. A title can use account linking (see the Account Linking Best Practices white paper) to link an Xbox Live account to a title-specific identity that can be used across networks.

  • Unique player names

    To uniquely identify all players in title UI, a unique player name has to be available. All Xbox Live and cross network players need to be uniquely identifiable. Xbox Live gamertags can be transmitted to players on other networks for the purpose of Xbox Live player identification during gameplay.

  • Communication privilege validation

    A title that desires in-game voice or text chat for cross-network experiences has to support this functionality through custom title servers/services. Xbox Live APIs for communication with other networks are not available. However, cross-network communication privacy settings can be specified by Xbox Live players and must be honored by cross-network experiences.

  • Premium virtual currency

    A title that desires to support cross-network premium virtual currency has to use a custom title service to track and maintain virtual currency balances for players. Note: limitations for this functionality apply. See Virtual currency and items for more information.

In addition to these unique requirements, all standard Xbox Live multiplayer and communication requirements (such as privilege checks, parental controls, session management, and UI requirements) apply.

Cross-device multiplayer

In contrast to cross-network multiplayer, cross-device multiplayer is a multiplayer experience within Xbox Live but across multiple different devices. Typically, this is a multiplayer experience between an Xbox One title and an Xbox Live-enabled Windows 10 title. Although these experiences span different device types, they are Xbox Live multiplayer experiences. Titles can choose to implement both cross-device and cross-network multiplayer at the same time.

Gameplay flow

Cross-network gameplay flow should be designed as an extension of a traditional Xbox Live multiplayer flow.

The recommended flow is as follows:

  1. Privilege validation

    For all multiplayer and matchmaking flows, the title is responsible for validating multiplayer, cross-network play and communication privileges of the current user(s). The title also must validate the cross-network communication privacy settings of the user and limit communication as indicated by the privacy setting.

  2. Cross-network invite, join-in-progress or matchmaking

    The title either provides functionality to invite, join or match into a new game. All options include non-Xbox Live players in gameplay. A custom title service has to be used to support invites, join-in-progress or matchmaking across networks (as needed).

  3. Cross-network session

    After a group of players across networks are identified, the title (or title service) maintains a cross-network player roster/gameplay session. This functionality has to be provided through a title service to support both Xbox Live and non-Xbox Live players in the same session.

  4. Xbox Live invites and join-in-progress

    Gameplay sessions that have open slots and allow new players based on game design must be marked joinable and allow invites through Xbox Live. This is best achieved through the Multiplayer Activity (MPA) service using direct calls for creating Xbox Live invites and setting player activity for Xbox Live join-in-progress support.

  5. Cross-network session clean-up and Xbox Live Recent Players

    After multiplayer gameplay is finished, gameplay sessions can be reused for further gameplay/matchmaking or discontinued. The correct activity state is set using MPA for any continuing flows. Titles are required to report information to populate the recent players lists of Xbox Live players. This is achieved through direct MPA calls to reflect recent player activity for all Xbox Live players. Recent player activity can also be updated during gameplay if appropriate.

The ability to block communication with a non-Xbox Live user for future game sessions must be available in the title.

Invites, join-in-progress and recent player support can also be achieved through the Multiplayer Session Directory (MPSD) Service. However, this solution is not recommended due to additional complexity. Titles that use the MPSD have to mirror player state into MPSD sessions and also mirror existing cross-network sessions.

Player privileges

Similar to Xbox Live multiplayer, a title has to validate multiplayer and chat privileges for voice and text chat prior to cross-network multiplayer gameplay. In addition to these privileges, a title has to validate the cross-network play privilege to enable cross-network functionality.

To preserve a safe experience, a title must always validate Xbox Live account privileges and restrict players from multiplayer or other features as appropriate..

Session and matchmaking flow

As of spring 2018 titles can enable cross-network gameplay as desired. This includes invites, join-in-progress and matchmaking flows.

Titles must still ensure to provide Xbox Live invite, join-in-progress and recent player support as applicable based on the flow:

  • Matchmaking/Session Browse

    To enable cross-network matchmaking/session browse, a custom title service has to be used.

  • Invites

    The Xbox Live invite system must be used to support out-of-game invites for Xbox Live players. For in-game invites from/to non-Xbox Live players a custom title service has to be used.

  • Join-in-progress

    For Xbox Live users player activity must be set to support join-in-progress scenarios. This enables out-of-game join-in-progress. For in-game join-in-progress from/to non-Xbox Live players a custom title service can be used.

In all of the above Xbox Live functionality is best implemented using the Multiplayer Activity (MPA) service through direct calls. Titles must support invite and join-in-progress of Xbox Live as applicable by title flow. See XR-067 and XR-124 for more information.

In-game chat

Titles may choose to support in-title voice chat and/or text chat, both for Xbox Live-only titles or cross-platform/cross-network titles.

  • Xbox Live voice chat

    Titles that support voice chat between Xbox Live players have the option of using solutions provided by Microsoft, studio-proprietary implementations or third-party middleware solutions.

    Regardless of which technology is leveraged to implement in-game chat, a title must ensure Xbox Live privileges, privacy settings and mute lists are honored. Microsoft offers two options for Xbox Live:

    • GameChat2
      • Handles Xbox Live privileges and privacy settings automatically.
        • Does not support cross-network or cross-platform scenarios.
      • PlayFab Party
        • Provides a simple model for applying privilege and privacy settings via the Xbox Live Helper Library, but does not handle them automatically.
        • Supports cross-network and cross-platform scenarios.
  • Cross-network voice/text chat

    A title that desires cross-network voice or text chat can support this functionality through Azure PlayFab Party APIs or through a custom solution by using a library/service/server that's provided by the title or middleware.

    All functionality has to honor privileges, the cross-network communication privacy settings, and mute lists for Xbox Live users.

    For a complete overview of the functionality offered by both GameChat2 and PlayFabParty, please refer to the "Azure PlayFab Party" and "Intro to Game Chat 2" documentation pages.

Network connectivity

We encourage titles to follow our best practices for network security when implementing network connectivity for cross-network multiplayer experiences. For more information on console network security best practices read Communication Security Overview (NDA topic)Необходима авторизация

Xbox Live connectivity

Similar to Xbox Live multiplayer, client connectivity to Xbox Live is required for cross-network multiplayer experiences. If connectivity is not available and service calls fail, a title has to show a connectivity error for Xbox Live services. However, a title can be tolerant to service interruptions for a specific time.

The recommended approach is to allow a player to finish the game round within a timeout window. The title should retry failed Xbox Live service calls during this period and fail after it.

Security requirements

To protect the Xbox Live service and device integrity, titles should harden and test protocols and parsers for all title communication.

For more information on console network security best practices read Communication Security Overview (NDA topic)Необходима авторизация

Cross-network game features

In addition to basic cross-network multiplayer functionality, titles have other features that can be impacted by cross-network players. Titles must take care to provide the correct behavior in gameplay modes with cross-network players.

User account privileges

Account privileges for Xbox Live players must be handled correctly when in cross-network multiplayer experiences. A title needs to validate all privileges that are needed for the experience and act on them accordingly. Relevant privileges include:

  • Multiplayer privilege (254)

    Used to validate access to multiplayer functionality. Titles must gate multiplayer functionality behind this privilege.

  • Cross-network play (185)

    Used to validate access to cross-network multiplayer functionality. Titles must gate cross-network functionality behind this privilege.

  • Communications privilege (252)

    Privilege for voice and text communication. Titles must restrict communication (voice and text) based on this privilege.

  • User generated content (UGC) privilege (247)

    Titles must restrict UGC access (browse and creation) based on this privileges.

More privileges may be applicable for a title depending on title features. For questions about privileges, contact your developer account manager (DAM).

Player communication blocking/reporting

Titles must adhere to communication block lists between Xbox Live players. A title can query permissions for different actions with another Xbox Live player through check_permission_with_target_user. Xbox Live players can block other Xbox Live players through platform UI and a block list (and permissions) stored on the Xbox Live service.

For cross-network communication a title must adhere to the cross-network communication privacy permissions (communicateUsingVoice with crossNetworkUser/crossNetworkFriend). These permissions indicate if the user allows cross-network communication, restricted communication to friends only, or blocks all cross-network communication.

Code Example:

std::vector<string_t> userList;
userList.push_back(L"crossNetworkUser");
userList.push_back(L"crossNetworkFriend");

std::vector<string_t> permissionList;
permissionList.push_back(L"communicateUsingVoice");

auto checkCrossCommunicationTask = liveContext->privacy_service().check_multiple_permissions_with_multiple_target_users(
    permissionList,
    userList);

create_task(checkCrossCommunicationTask)
    .then([this](xbox_live_result<std::vector<multiple_permissions_check_result>> permResult)
{
    if (!permResult.err())
    {
        auto& permissionResults = permResult.payload();

        if (permissionResults[0].items()[0].is_allowed())
        {
            // enable cross-network voice communication for all
        }
        else
        {
            if (permissionResults[1].items()[0].is_allowed())
            {
                // enable cross-network voice communication for friends only
            }
            else
            {
                // disable cross-network voice communication for all
            }
        }
    }
    else
    {
        // handle error
    }
});

crossNetworkUser and crossNetworkFriend permissions are only supported by batched calls through the check_multiple_permissions_with_multiple_target_users API or by performing POST request to the Xbox Live Privacy service (for service-to-service validation). Using these permissions with check_permission_with_target_user will result in an error.

A title is required to handle the communication restrictions correctly based on the title context of friend relationship:

  • Title friend list

    If the title only uses title-specific friend lists (that are not related to a specific network), then these friend relationships must be used to determine friend status between an Xbox Live player and non-Xbox Live player.

  • Non-Xbox Live network friend list

    If the title uses the friend list of another network, then this list must be used to determine the friend relationship between an Xbox Live player and non-Xbox Live player.

  • No friend concept

    If the title does not support a friend concept for cross-network users then cross-network communication that is restricted to friends must be interpreted as a blocked communication restriction.

In addition to these requirements it is best practice to provide per-player communication block functionality for non-Xbox Live users.

Cross-network block lists can be maintained in one of the following ways:

  • Connected Storage

    The cross-network block list is saved as part of a savegame/settings for the player. It is acceptable for the block list to be deleted when a player deletes local save game content.

  • Title Managed Storage (TMS)

    The cross-network block list is stored in TMS. This prevents players from accidentally removing the block list when local content is deleted.

  • _Custom Title Service _

    A custom title service, such as a title's cross-network matchmaking service, can also be used to store the block list.

Block functionality may vary for titles such as MMOs. If you have additional questions about your specific block list scenario, please contact your DAM.

Downloadable content

In most titles, additional content (permanent or consumable DLC) is available. Content use is restricted for cross-network experiences, and title configuration and matchmaking should filter on these restrictions:

  • Xbox Live DLC content only

    For cross-network experiences, permanent (traditional DLC) content acquired outside of the Xbox Live marketplace may not be extended to Xbox Live users. Cross-network content can only be used if all Xbox Live users and non-Xbox Live users own the same set of content (for example, an identical map pack).

  • Exclusive content

    Exclusive (network-specific) content may be shared with other multiplayer networks after review with your DAM. For more information, contact your DAM.

Free content (if available in all multiplayer networks) can be used across networks as long as all players have access to the content.

Virtual Currency and Items

With recent policy changes it is possible to include a single, unified virtual currency wallet across Xbox Live and other networks. Items purchased through virtual currency can also be shared in the same way.

A secure title service and account linking is needed to support a unified wallet and inventory across networks.

Durable Content Exception

Durable content (e.g. map packs) that is entitled through the Microsoft Store may not be shared across networks. Players must purchase durable content in the Microsoft Store to gain access to the associated functionality.

Titles must ensure to only enable purchases from the Microsoft Store on platforms where it is available. Marketplace flows may not be designed to steer players towards another store on other platforms.

Achievements

Multiplayer titles generally provide achievements for activities and need to consider cross-network gameplay in the following ways:

  • Cross-network achievement progression allowed

    Cross-network multiplayer experiences do not need to be treated differently from Xbox Live exclusive experiences for achievement progress. Gameplay actions (e.g. games won or other players defeated) within cross-network gameplay can be counted against the achievement as if they occurred in Xbox Live multiplayer experiences.

  • No exclusive cross-network achievements

    Titles must not provide exclusive achievements for cross-network multiplayer experiences. All multiplayer achievements must also only be obtainable within Xbox Live.

To preserve achievement integrity and quality, titles should protect against cheating and achievement boosting for cross-network multiplayer experiences.

Player progress

For titles that use account linking across networks and provide a unique title player identity across networks, it is possible to share player progress across networks.

Titles that track achievement progress on a title service can also share Achievement progress across networks as long as achievements do not require play using another platform.

Game DVR/broadcasting

Game DVR is available to players for recording gameplay (including cross-network gameplay) and capturing screenshots on Xbox One and Windows 10. Titles must ensure that recordings do not include any offensive strings (chat, UGC, or player identifiers) due to cross-network interactions. The same applies to game broadcasting through services or in-game functionality.

Leaderboards

The Xbox Live stats and leaderboard service only provides leaderboards for Xbox Live players, but titles may provide more complex leaderboards through their own services. For these leaderboards, special care must be taken to provide a consistent experience for Xbox Live players.

Titles should ensure that merged cross-network is only displayed if cross-network gameplay is enabled by the player. Internally, a title service can create different leaderboards for each multiplayer network as well as merged leaderboards as long as only the correct leaderboards are displayed to an Xbox Live player.

Titles and title services must ensure that the correct and current player identity is displayed for Xbox Live players. Player information may only be cached for up to 4 hours to avoid stale information.

User interface requirements

To preserve a coherent player experience for cross-network gameplay, titles are required to adhere to a set of user interface requirements for these gameplay scenarios. The following requirements and examples outline the most common UI scenarios.

Cross-network player representation

For Xbox Live players, titles use the gamertag as a player identifier across all experiences. It is unique in respect to other players but can be changed. It also adheres to well-defined string size and character limits. The same does not apply when merging Xbox Live gamertags with player identifiers from other multiplayer networks.

To avoid player confusion and ensure a coherent experience across all titles, the following requirements exist for displaying cross-network players:

  • Title/publisher identifier

    A title that has a unique title/publisher identifier can use this to identify a player. However, the Xbox Live gamertag must always be visible and accessible for Xbox Live players. For any player that has an Xbox Live identity linked to a title/publisher identifier, the gamertag must be displayed on all Xbox Live-enabled title versions, regardless of the platform the remote player is currently on.

  • Visually distinguishable Xbox Live players

    Xbox Live players have to be visually distinguishable from players on other networks. This can be done by providing a unique color and/or icon for an Xbox Live player. The recommended approach is to use the gamerpic of the player and highlight the gamertag in a unique color.

  • Approved network identifiers

    Titles must identify the multiplayer network of a non-Xbox Live player only through approved network identifiers or generic platform identifiers. Titles can also choose to use a single, generic identifier for all non-Xbox Live players.

  • Unique player identifiers

    The name of players in cross-network experiences all need to be uniquely identifiable. All Xbox Live players must be represented by gamertag. Players from other networks should be identified through the equivalent user identifier. In case of name collisions, postfixes such as "PlayerName (2)" should be used for non-Xbox Live players.

Cross-network friend lists

To avoid player confusion and ensure a coherent experience across all titles, the following requirements exist for displaying social relationship (friend) information for Xbox Live/non-Xbox Live players:

  • Xbox Live friend list

    A title can display an in-game Xbox Live friends list. This list must be obtained from Xbox Live and may not be cached on title servers.

  • Title/publisher social relationships

    A title can display title/publisher social relationships in in-game UI. If visible in-game, then this relationship must be clearly identified as that of a publisher or as an Xbox Live player identity. Players must be able distinguish between publisher and Xbox Live identity even if the name string is identical.

  • Non-Xbox Live social relationship

    A title can display the social relationship of an Xbox Live player's non-Xbox Live identity with that of a non-Xbox Live player. This relationship indication must be clearly identifiable as a non-Xbox player identity. Players must be able distinguish between non-Xbox Live and Xbox Live identity even if the name string is identical. Players must be able distinguish between Xbox Live and non-Xbox Live friend status.

Titles are strongly encouraged to include in-game UI to make it simple to add players to the Xbox Live friend list from the title/publisher/non-Xbox Live friend list (and vice versa). Titles can obtain the friend list on the client to identify players that are not yet in the Xbox Live friend list and use ShowAddRemoveFriendAsync to support a quick way to add friends through Xbox Live.

Implementation Examples

Xbox Live Cross Network Multiplayer Implementation Example: Multiplayer Game

Xbox Live Cross Network Multiplayer Implementation Example: MMO