Skip to main content
간단한 멀티플레이어 시나리오에서 게임의 플레이어는 친구와 온라인으로 게임을 플레이할 수 있습니다. 이 항목에서는 Multiplayer Manager를 사용하여 이 시나리오를 지원하는 데 필요한 기본 단계를 설명합니다.

초대를 보내고 수락하는 단계

다음 단계에서는 Multiplayer Manager를 사용하여 사용자의 친구에게 초대를 보내 해당 친구가 진행 중인 게임에 참여할 수 있도록 합니다.
  1. Multiplayer Manager 초기화
  2. 로컬 사용자를 추가하여 로비 세션 만들기
  3. 친구에게 초대 보내기
  4. 초대 수락
  5. 로비에서 게임 세션 참여
1, 2, 3, 5단계는 초대를 수행하는 디바이스에서 수행됩니다. 4단계는 일반적으로 프로토콜 활성화를 통해 앱이 시작된 후 초대받은 사람의 디바이스에서 시작됩니다. 자세한 내용은 친구와 게임 플레이(순서도)를 참조하세요.

Multiplayer Manager 초기화

로비 세션 객체는 유효한 세션 템플릿 이름으로 Multiplayer Manager가 초기화될 때 자동으로 생성됩니다. 세션 템플릿은 서비스 구성에 정의되어 있습니다.
서비스의 로비 세션 인스턴스는 사용자가 추가될 때까지 생성되지 않습니다.

Flat C API

자세한 내용은 XblMultiplayerManagerInitialize를 참조하세요. 이 항목의 맨 위로 돌아가기.

로컬 사용자를 추가하여 로비 세션 만들기

로컬로 로그인한 XBOX services 사용자를 로비 세션에 추가합니다. 첫 번째 사용자가 추가되면 새 로비가 호스팅됩니다. 다른 모든 사용자는 보조 사용자로 기존 로비에 추가됩니다. Multiplayer Manager는 친구가 참여할 수 있도록 쉘에서 로비를 광고합니다. 로컬 사용자를 추가한 후에만 lobby()를 통해 초대를 보내고, 로비 속성을 설정하고, 로비 멤버에 액세스할 수 있습니다. 로컬 사용자가 로비에 참여할 때 연결 주소와 사용자 지정 속성을 설정하는 것이 좋습니다. 로컬로 로그인한 모든 사용자에 대해 이 프로세스를 반복해야 합니다. 이 항목의 맨 위로 돌아가기.

단일 로컬 사용자 추가

Flat C API

자세한 내용은 다음을 참조하세요. 이 항목의 맨 위로 돌아가기.

여러 로컬 사용자 추가

Flat C API

자세한 내용은 다음을 참조하세요. 변경 사항은 다음 XblMultiplayerManagerDoWork 호출에서 일괄 처리됩니다. Multiplayer Manager는 사용자가 로비 세션에 추가될 때마다 XblMultiplayerEventType::UserAdded 이벤트를 발생시킵니다. 해당 사용자가 성공적으로 추가되었는지 확인하기 위해 이벤트의 오류 코드를 확인하는 것이 좋습니다. 실패한 경우 오류 메시지가 실패 이유에 대한 세부 정보를 제공합니다. Multiplayer Manager는 로컬 사용자를 추가하여 로비 세션을 만들기 위해 다음 기능을 수행합니다.
  • XBOX services 멀티플레이어 서비스에 Real-Time Activity 및 멀티플레이어 구독을 등록합니다.
  • 로비 세션을 만듭니다.
  • 모든 로컬 플레이어를 활성으로 참여시킵니다.
  • 보안 디바이스 주소(SDA)를 업로드합니다.
  • 멤버 속성을 설정합니다.
  • 세션 변경 이벤트를 등록합니다.
  • 로비 세션을 활성 세션으로 설정합니다.
이 항목의 맨 위로 돌아가기.

친구에게 초대 보내기

플레이어가 게임에 초대할 친구 또는 최근 플레이어를 선택할 수 있는 표준 XBOX UI를 표시합니다. 플레이어가 선택을 확인하면 Multiplayer Manager는 선택된 플레이어에게 초대를 보냅니다. 게임은 또한 XblMultiplayerManagerLobbySessionInviteUsers 메서드를 사용하여 XBOX services 사용자 ID로 정의된 사람들의 집합에 초대를 보낼 수 있습니다. 이 메서드는 표준 XBOX UI 대신 자체 게임 내 UI를 사용하는 경우 유용합니다.

Flat C API

자세한 내용은 XblMultiplayerManagerLobbySessionInviteUsers를 참조하세요. Multiplayer Manager는 친구에게 초대를 보내기 위해 다음 기능을 수행합니다.
  • XBOX 표준 타이틀 호출 가능 UI(TCUI)를 표시합니다.
  • 선택된 플레이어에게 직접 초대를 보냅니다.
이 항목의 맨 위로 돌아가기.

초대 수락

초대된 플레이어가 게임 초대를 수락하거나 쉘 UI를 통해 친구의 게임에 참여하면 해당 디바이스에서 게임이 실행됩니다. Microsoft Game Development Kit(GDK) 기반 게임의 경우, 게임이 시작된 후 XGameActivationRegisterForEvent를 호출하여 초대 이벤트를 수신 대기합니다. XBOX One Software Development Kit 및 Universal Windows Platform(UWP) 기반 게임의 경우, 게임이 시작된 후 Multiplayer Manager는 프로토콜 활성화 이벤트 인수를 사용하여 로비에 참여할 수 있습니다. 초대된 사용자가 XblMultiplayerManagerLobbySessionAddLocalUser를 통해 추가되지 않은 경우, XblMultiplayerManagerJoinLobby는 실패하고 JoinLobbyCompleted 이벤트로 XblMultiplayerEventArgsXuid를 호출하여 초대가 전송된 xuid를 제공합니다. 로비에 참여한 후에는 로컬 멤버의 연결 주소와 멤버에 대한 사용자 지정 속성을 설정하는 것이 좋습니다. 호스트가 존재하지 않는 경우 XblMultiplayerManagerLobbySessionSetSynchronizedHost를 통해 호스트를 설정할 수도 있습니다. 마지막으로, 게임이 이미 진행 중이고 초대받은 사람을 위한 자리가 있다면 Multiplayer Manager가 사용자를 게임 세션에 자동으로 참여시킵니다. 타이틀은 JoinGameCompleted 이벤트를 통해 알림을 받으며, 적절한 오류 코드와 메시지를 제공합니다. 오류 또는 성공 결과는 JoinLobbyCompleted 이벤트를 통해 처리됩니다.

Flat C API

자세한 내용은 다음을 참조하세요. Multiplayer Manager는 초대를 수락하기 위해 다음 기능을 수행합니다.
  • Real-Time Activity 및 멀티플레이어 구독을 등록합니다.
  • 로비 세션에 참여합니다.
  • 기존 로비 상태 정리.
  • 모든 로컬 플레이어를 활성으로 참여시킵니다.
  • SDA를 업로드합니다.
  • 멤버 속성을 설정합니다.
  • 세션 변경 이벤트를 등록합니다.
  • 로비 세션을 활성 세션으로 설정합니다.
  • 게임 세션에 참여합니다(존재하는 경우).
  • 전송 핸들을 사용합니다.
이 항목의 맨 위로 돌아가기.

로비에서 게임 세션 참여

초대가 수락되고 호스트가 게임 플레이를 시작할 준비가 되면 XblMultiplayerManagerJoinGameFromLobby를 호출하여 로비 세션의 멤버가 포함된 새 게임을 시작할 수 있습니다. 오류 또는 성공 결과는 JoinGameCompleted 이벤트를 통해 처리됩니다.

Flat C API

자세한 내용은 XblMultiplayerManagerJoinGameFromLobby를 참조하세요. Multiplayer Manager는 로비에서 게임 세션에 참여하기 위해 다음 기능을 수행합니다.
  • 게임 세션을 만듭니다.
  • 모든 로컬 플레이어를 활성으로 참여시킵니다.
  • SDA를 업로드합니다.
  • 멤버 속성을 설정합니다.
  • 세션 변경 이벤트를 등록합니다.
  • 로비 세션을 통해 게임을 광고합니다.
이 항목의 맨 위로 돌아가기.
마지막 수정일 2026년 8월 25일