Pré-requisito
Para receber notificações de convite de jogo em um PC com Windows, instale a XBOX Game Bar. O aplicativo XBOX Game Bar é instalado por padrão no Windows 10, versão 1903 ou posterior do sistema operacional. Pressione tecla Windows+G para iniciar o aplicativo XBOX Game Bar e verificar se ele está instalado corretamente.Se a XBOX Game Bar não estiver instalada no seu PC com Windows, você pode instalá-la pela Microsoft Store.
Registrando o protocolo multiplayer
Registrar o protocolo multiplayer informa ao sistema como iniciar seu jogo quando o usuário aceita um convite de jogo multiplayer. Para registrar o protocolo multiplayer, você precisa adicionar um elementoMultiplayerProtocol ao arquivo MicrosoftGame.config, conforme mostrado no código a seguir.
Executable, conforme mostrado no código a seguir.
Registrando os retornos de chamada de convite de jogo multiplayer
As APIs
XGameInviteRegisterForEvent e XGameInviteUnregisterForEvent foram preteridas. Em vez delas, use XGameActivationRegisterForEvent e XGameActivationUnregisterForEvent. Para obter orientações sobre a migração, consulte XGameActivation.API C simples
inviteUri passado para o método manipulador OnActivation() no código de exemplo acima, proveniente do retorno de chamada de XGameActivationRegisterForEvent. Em seguida, o título deve aguardar a RegisterAppStateChangeNotification, que notifica quando o jogo foi totalmente retomado, antes de prosseguir com operações na sessão usando os detalhes fornecidos no inviteUri.
Para obter mais informações sobre RegisterAppStateChangeNotification, consulte Ciclo de vida de jogos do XBOX (tópico sob NDA).
Analisando o inviteUri de XGameActivationCallback
Quando seu jogo recebe o evento XGameActivationCallback com o tipo de ativaçãoAcceptedGameInvite, você pode acessar a cadeia de caracteres inviteUri na estrutura XGameActivationInfo. O inviteUri está em um dos formatos a seguir.
Para aceitar um convite de jogo
Quando o usuário aceita um convite de jogo, o jogo recebe o retorno de chamada de convite de jogo com uminviteUri, conforme mostrado no código a seguir.
inviteHandleAcceptindica que o retorno de chamada foi iniciado porque o usuário aceitou um convite de jogo.handleé o identificador de convite que você usa para ingressar na sessão multiplayer.invitedXuidé o ID do usuário dos serviços do XBOX que foi convidado para a sessão multiplayer.senderXuidé o ID do usuário dos serviços do XBOX que enviou o convite de jogo.contexté o contexto adicional (opcional) que o remetente pode ter incluído.
Para ingressar em uma sessão de jogo em andamento
Quando o usuário tenta ingressar em uma sessão multiplayer, o jogo recebe um retorno de chamada de convite com uminviteUri, conforme mostrado no código a seguir.
activityHandleJoinindica que o retorno de chamada foi iniciado porque o usuário aceitou um convite de jogo.handleé o identificador de atividade que você usa para ingressar na sessão multiplayer.joinerXuidé o ID do usuário dos serviços do XBOX que está tentando ingressar na sessão multiplayer.joineeXuidé o ID do usuário dos serviços do XBOX que está atualmente na sessão multiplayer.
Ingressando em uma sessão de jogo multiplayer com handleId
Usando o Multiplayer Manager
Se você estiver usando o Multiplayer Manager, poderá adicionar o usuário à sessão multiplayer usando a API XblMultiplayerManagerJoinLobby e passando ohandleId extraído do inviteUri. Você também pode usar o xblUserHandle para o invitedXuid, conforme mostrado no código a seguir.
API C simples
Usando a API Multiplayer diretamente
Se você estiver usando a API Multiplayer, siga as etapas a seguir para configurar sessões multiplayer e convites para o seu título.- Busque o documento da sessão multiplayer usando a API XblMultiplayerGetSessionByHandleAsync e passe o
handleIdpara ela. - Adicione o usuário local ao documento da sessão multiplayer usando a API XblMultiplayerSessionJoin.
- Grave o documento da sessão multiplayer no serviço para confirmar essa alteração usando a API XblMultiplayerWriteSessionByHandleAsync.
