멀티플레이어 개념 개요
멀티 플레이어 시스템에는 멀티 플레이어 세션, MPSD(멀티 플레이어 세션 디렉터리), SmartMatch 매치 메이킹, 서비스 품질(QoS)이 포함되어 있습니다.
이 토픽에서는 Xbox 서비스 설명서에서 자주 사용되는 여러 가지 중요한 멀티 플레이 용어 및 개념에 대해 설명합니다. 이를 잘 파악하면 Xbox 서비스 멀티 플레이어의 작동 방식을 이해하는 데 도움이 됩니다.
멀티 플레이어 세션
멀티 플레이어 세션은 Xbox 서비스 플레이어 그룹 및 이들과 연결된 속성을 나타냅니다. 세션은 타이틀로 만들어 유지 관리합니다. Xbox 서비스 클라우드에 있는 보안 JSON 문서로 표시됩니다.
세션 문서 자체에는 세션에 연결된 Xbox 서비스 플레이어에 대한 정보, 사용 가능한 지점 수, 사용자 지정 메타데이터(세션 및 각 세션 멤버의 경우) 및 게임 세션과 관련된 기타 정보가 포함되어 있습니다.
각 세션은 새 세션 서식을 기반으로 합니다. 게임 개발자가 정의하고 타이틀 인스턴스에 대한 Xbox 서비스 구성에서 구성됩니다.
타이틀에서 세션을 생성 및 업데이트할 수는 있지만, 직접 세션을 삭제할 수는 없습니다. 대신, 모든 플레이어가 세션에서 제거된 후 Xbox 서비스 멀티 플레이어 서비스는 지정된 시간 제한 후에 자동으로 세션을 삭제합니다.
타이틀에서 세션 여러 개를 사용할 수 있지만, 일반적인 멀티 플레이어 구현 시 다음과 같은 세션 2개를 사용합니다.
로비 세션: 진행하는 동안 함께 모여 있기 원하는 친구 그룹을 나타내며, 여러 라운드, 수준 및 지도와 같은 예가 있습니다.
게임 세션: 라운드, 매치, 수준과 같은 게임의 특정 세션 인스턴스를 진행하는 사용자들을 나타냅니다. 이 세션에는 매칭 서비스를 통해 세션 인스턴스에 함께 참가한 여러 로비 세션의 구성원을 포함할 수 있습니다.
멀티 플레이어 세션에 대한 자세한 내용은 멀티 플레이어 세션 고급 항목에서 참고하세요.
예제 시나리오
예시 시나리오에서 Tereza는 친구인 Sergio 및 Alejandra와 멀티 플레이어 게임을 하려고 합니다.
- Tereza가 게임에 참여한 다음 Sergio와 Alejandra를 초대합니다.
- 두 사람이 참가한 이후 Tereza, Sergio, Alejandra는 모두 로비 세션에 있습니다.
- 이 세션에서 이들은 다른 사람과 온라인 매치를 플레이할지 결정합니다.
- 게임에서 게임 세션이 생성됩니다. Xbox 서비스 매치 메이킹 서비스를 사용하여 나머지 플레이어 슬롯을 다른 Xbox 서비스 플레이어로 채웁니다.
- Ermal과 Miguel이 매치업된 경우 5명이 함께 라운드를 플레이합니다.
- 라운드가 끝난 후 Tereza, Sergio, Alejandra는 게임 세션을 종료하지만 로비 세션(Ermal 및 Miguel 없이)에 계속 같이 있습니다. 친구 세 명은 다른 라운드를 선택하거나 다른 게임 모드로 전환할 수 있습니다.
세션 멤버
세션 멤버는 세션의 일부인 Xbox 서비스 플레이어입니다.
중재자
중재자는 게임에 대한 세션의 상태를 관리하는 본체 또는 장치입니다. 예를 들어 중재자에게는 매치 메이킹에 게임 세션을 알려 더 많은 플레이어를 찾아 매치 메이킹을 할 책임이 있습니다.
중재자는 타이틀별로 설정됩니다. 중재자와 경기 호스트는 동일할 수 있지만, 반드시 동일할 필요는 없습니다.
세션 호스트
세션 호스트는 호스트 기반 피어 투 피어 네트워크 아키텍처에서 빌드한 타이틀에 대한 게임 플레이 시뮬레이션을 실행하는 본체 또는 장치입니다. 이 콘솔 또는 장치는 일반적으로 중재자와 동일하지만 반드시 동일할 필요는 없습니다.
MPSD(멀티 플레이어 세션 디렉터리)
Xbox 서비스 멀티 플레이어 서비스는 Xbox 서비스 클라우드에서 작동합니다. 이 서비스는 여러 클라이언트에 걸친 게임의 멀티 플레이어 시스템 메타데이터를 중앙화합니다. 이 메타데이터를 추적하는 시스템을 멀티 플레이어 세션 디렉터리(MPSD)라 합니다.
MPSD를 활성 게임 세션의 라이브러리로 생각할 수 있습니다. 게임에서 타이틀과 관련이 있는 활성 세션을 추가, 검색, 수정 또는 제거할 수 있습니다. MPSD는 또한 세션 상태를 관리하고 필요한 경우 세션을 업데이트합니다.
MPSD를 통해 타이틀이 플레이어 그룹을 연결하는 데 필요한 기본 정보를 공유할 수 있습니다. MPSD는 세션 기능이 동기화되고 일관적인지 확인합니다. MPSD는 초대 보내기/수락 및 게이머 카드를 통한 참가에 있어 셸 및 Xbox One(또는 이상) 콘솔 운영 체제와 협력합니다.
세션 핸들
세션은 다음 데이터의 조합을 통해 MPSD에서 고유하게 식별됩니다. 다음과 같습니다.
- 타이틀의 SCID(서비스 구성 ID)
- 세션을 만드는 데 사용한 세션 템플릿의 이름
- 세션의 이름
세션 핸들은 MPSD 내에 존재하는 특정 세션에 대한 참조가 포함된 JSON 개체입니다. 세션 핸들을 사용하면 Xbox 서비스 멤버가 기존 세션에 참가할 수 있습니다.
각 세션 핸들에는 핸들을 고유하게 식별하는 GUID가 포함되며, 따라서 타이틀에서는 단일 GUID를 사용하여 세션을 참조할 수 있습니다.
세션 핸들은 다음과 같습니다.
초대 핸들
초대 핸들은 게임 참가 초대를 받은 멤버에게 전달됩니다. 초대 핸들에는 초대를 받은 멤버가 올바른 세션에 참가할 수 있게 하는 정보가 포함됩니다.
검색 핸들
검색 핸들에는 세션에 관한 추가 메타데이터가 포함되고, 이를 통해 타이틀에서 선택한 기준을 충족하는 세션을 검색할 수 있습니다.
활동 핸들
멤버는 활동 핸들을 통해 소셜 네트워크에 있는 다른 멤버가 무엇을 플레이하는 중인지 알 수 있습니다. 이 핸들을 친구의 게임에 참여하는 데 사용할 수 있습니다.
상관관계 핸들
상관관계 핸들은 세션에 대한 별칭으로, 효율성 있게 작동하여 게임이 상관관계 핸들의 ID만을 사용하여 세션을 참조할 수 있도록 합니다.
전송 핸들
전송 핸들은 플레이어를 한 세션에서 다른 세션으로 이동시키는 데 사용합니다.
초대
Xbox 서비스는 멀티 플레이어 서비스에서 지원하는 초대 시스템을 제공합니다. 플레이어는 이 서비스를 통해 게임 세션에 다른 플레이어를 초대할 수 있습니다. 초대받은 플레이어는 게임 초대를 수신하게 됩니다. 타이틀에서는 이 정보를 사용하여 기존 세션 및 멀티 플레이어 환경에 참가합니다.
타이틀은 초대 흐름 및 초대를 보낼 수 있는 시기를 제어합니다. 초대는 플레이어가 셸을 통해 또는 타이틀에서 직접적으로 보낼 수 있습니다.
초대에 대한 알림 텍스트는 타이틀에서 동적으로 설정되어 초대를 받은 플레이어에게 추가 정보를 제공할 수 있습니다. 또한 초대에는 플레이어에게 표시되지 않으며, 추가 정보 제공에 사용할 수 있는 타이틀 관련 추가 데이터가 포함될 수 있습니다.
진행 중 참가
초대 외에도 Xbox 서비스는 플레이어가 친구나 다른 알려진 플레이어의 활성 게임 플레이 세션에 참가할 수 있는 셸 옵션도 제공합니다. 활성 게임 세션에 대한 또 다른 경로가 활성화되고, 이는 MPSD를 기반으로 합니다.
타이틀에서는 세션에 참가 가능한 시기와 진행 중 참가로 노출될 세션을 제어합니다.
프로토콜 활성화
Tereza가 Alejandra에게 게임 참가 초대를 보내면 Alejandra는 장치에서 수락 또는 거부할 수 있는 알림을 수신합니다.
Alejandra가 초대를 수락하면 운영 체제에서 해당 게임을 아직 실행하고 있지 않은 경우 시작을 시도합니다. 운영 체제에서 게임이 활성화된 이유와 추가 세부 정보에 대한 정보가 포함된 정품 인증 이벤트를 트리거합니다. (예를 들어 초대의 경우 세부 정보에는 구성원을 초대한 플레이어의 ID와 구성원이 초대를 받은 세션이 포함됩니다.)
이 이벤트를 처리하는 프로세스를 프로토콜 활성화라고 합니다. 게임이 특정 상태로 자동 전환되어야 함을 나타내는데, 활성화 이벤트 인수에서 이를 자세히 설명합니다. 구성원이 멀티 플레이어 게임에 참가하는 경우 세션 핸들 ID는 인수 중 하나로 지정됩니다.
Alejandra의 경우 초대를 수락하면 자동으로 게임이 시작되고(필요한 경우), Tereza와 동일한 게임 세션에 Alejandra를 참가시킵니다. 이 작업은 Alejandra에서 추가 작업을 할 필요 없이 이루어집니다.
프로토콜 활성화는 초대 수락, 프로필 카드를 통한 다른 멤버의 게이머 참가 또는 딥 링크 도전 과제 선택을 통해 트리거될 수 있습니다.
SmartMatch 매치 메이킹
SmartMatch는 익명 매치 메이킹을 위한 Xbox 서비스 서비스의 이름입니다. 이 서비스는 구성 가능한 매치 규칙 집합을 기준으로 동일한 게임의 플레이어를 매칭합니다.
매치 메이킹 서비스는 MPSD와 밀접하게 작동하고 매치 메이킹 입력 및 출력에 대해 세션을 사용합니다. 매치 메이킹은 서비스에서 실행되어 이를 통해 타이틀은 쉽게 매치 메이킹 흐름 도중 다른 환경(예: 타이틀 내 싱글 플레이어)을 제공할 수 있습니다.
매치 메이킹에 진입하려는 개인 또는 그룹은 매치 티켓 세션을 생성한 후 매치 메이킹 서비스에 매치를 성사하려는 다른 플레이어들을 찾도록 요청합니다. 그러면 매치 메이킹 서비스 내에 잠시 상주하는 임시 ‘매치 티켓’이 생성됩니다.
매치 메이킹 서비스는 규칙 구성, 각 플레이어의 저장된 통계, 그리고 매치 요청 시 제공되는 추가 정보에 기초하여 함께 플레이할 세션을 선택합니다. 그리고 나서 서비스는 조건이 일치한 모든 플레이어들이 포함된 매치 대상 세션을 생성한 후 사용자들의 타이틀에 이 매치를 통보합니다.
대상 세션이 준비되면 타이틀에서 서비스 품질(QoS) 검사를 하여 그룹이 함께 플레이하거나 플레이어를 세션에 참가시켜 게임 플레이를 시작할 수 있는지 확인합니다. QoS 프로세스와 성사된 매치 게임의 플레이가 진행되는 동안 타이틀은 MPSD 내에서 세션 상태를 최신 상태로 유지하고, 세션의 변경 사항에 대해 MPSD로부터 알림을 받습니다. 이러한 변경 사항에는 참가하거나 나가는 플레이어, 세션 중재자의 변경 사항이 있습니다.
매치 티켓 세션
매치 티켓 세션은 매치를 성사시키려는 플레이어들의 클라이언트를 나타냅니다. 일반적으로 함께 로비에 있는 플레이어들의 그룹, 또는 기타 타이틀에서 정하는 플레이어들의 그룹을 기초로 하여 생성됩니다. 이 티켓 세션은 이미 진행 중이면서 더 많은 플레이어를 찾고 있는 게임 세션일 수도 있습니다.
매치 티켓
매치 메이킹에 티켓 세션을 제출하면 매치 메이킹 시도를 추적하는 매치 티켓이 생성됩니다. 티켓에 특성(예: 게임 맵 또는 플레이어 레벨)이 추가될 수 있습니다. 이 특성들은 티켓 세션의 플레이어 특성과 함께 매치 결정에 사용됩니다.
호퍼
호퍼는 매치 메이킹 시작 시 매치 티켓을 수집 및 지정하는 논리적 장소입니다. 동일한 호퍼 안에 있는 티켓들만 매치될 수 있습니다.
한 타이틀은 호퍼를 여러 개 가질 수 있습니다. 그러나 매치 메이킹은 한 번에 한 호퍼에서만 시작할 수 있습니다. 예를 들어 한 타이틀에서 플레이어 스킬이 매칭에 있어 가장 중요한 항목이라는 호퍼를 생성할 수 있습니다. 타이틀에서 동일한 다운로드 가능한 콘텐츠를 구입한 플레이어만 매칭되도록 하는 다른 호퍼를 사용할 수도 있습니다.
서비스 구성에서 매치 메이킹에 대한 호퍼를 구성합니다.
서비스 품질(QoS)
게이머가 온라인으로 멀티 플레이어 게임을 플레이할 때 게임의 품질은 게임을 호스팅하는 장치 간 네트워크 통신 품질의 영향을 받습니다. 네트워크 상태가 좋지 않으면 지연 시간 또는 충분하지 않은 대역폭으로 인해 랙 또는 연결 중단과 같은 원치 않는 게임 환경이 발생할 수 있습니다.
QoS는 플레이어 간 온라인 연결의 강도(지연 시간 및 대역폭) 측정을 참고하여 모든 플레이어의 연결 품질이 충분한지 확인합니다. 이는 매치 메이킹 중 매칭된 플레이어에게 네트워크 연결로 인한 좋은 환경을 보장하는 데 특히 중요합니다. QoS는 친구가 함께 플레이하고 좋지 않은 연결의 결과를 받아들일 수 있는 초대에는 덜 해당됩니다.
특정 기준에 따라 자동으로 QoS를 처리하도록 세션을 구성할 수 있습니다. 또는 게임에서 세션에 누군가 참가할 때마다 QoS 측정을 처리할 수도 있습니다.