멀티플레이어 세션
멀티플레이어 세션은 XBOX services 플레이어 그룹과 그들과 관련된 속성을 나타냅니다. 세션은 타이틀에서 생성 및 유지되며, XBOX services 클라우드에 있는 안전한 JSON 문서로 표현됩니다. 세션 문서 자체에는 세션에 연결된 XBOX services 플레이어에 대한 정보, 사용 가능한 자리 수, (세션 및 각 세션 멤버에 대한) 사용자 지정 메타데이터 및 게임 세션과 관련된 기타 정보가 포함되어 있습니다. 각 세션은 세션 템플릿을 기반으로 합니다. 세션 템플릿은 게임 개발자가 정의하며 타이틀 인스턴스에 대한 XBOX services 구성에서 설정됩니다. 타이틀은 세션을 생성하고 업데이트할 수 있지만, 세션을 직접 삭제할 수는 없습니다. 대신, 모든 플레이어가 세션에서 제거된 후 XBOX services 멀티플레이어 서비스가 지정된 시간 초과 후 자동으로 세션을 삭제합니다. 타이틀은 여러 세션을 사용하도록 선택할 수 있지만, 일반적인 멀티플레이어 구현은 다음 두 가지 세션을 사용합니다.- 로비 세션(Lobby session): 여러 라운드, 레벨, 맵 등 게임 전반에 걸쳐 함께 있고 싶어하는 친구 그룹을 나타냅니다.
- 게임 세션(Game session): 라운드, 매치, 레벨과 같은 게임의 특정 세션 인스턴스에서 플레이 중인 사람들을 나타냅니다. 이 세션은 일반적으로 매치메이킹 서비스를 통해 함께 세션 인스턴스에 참여한 여러 로비 세션의 멤버를 포함할 수 있습니다.
예제 시나리오
이 예제 시나리오에서는 Tereza가 친구인 Sergio 및 Alejandra와 함께 멀티플레이어 게임을 하고 싶어합니다.- Tereza가 게임을 시작한 다음 Sergio와 Alejandra를 자신의 게임에 초대합니다.
- 그들이 참여한 후 Tereza, Sergio, Alejandra는 모두 로비 세션에 있습니다.
- 이 세션에서 그들은 다른 사람들과 온라인 매치를 하기로 결정합니다.
- 게임이 게임 세션을 생성합니다. 나머지 플레이어 슬롯을 다른 XBOX services 플레이어로 채우기 위해 XBOX services 매치메이킹 서비스를 사용합니다.
- Ermal과 Miguel이 그들과 매치되었다고 가정하면, 다섯 명이 함께 라운드를 플레이합니다.
- 라운드가 끝난 후 Tereza, Sergio, Alejandra는 게임 세션을 떠나지만 여전히 로비 세션(Ermal과 Miguel 없이)에 함께 있습니다. 세 친구는 다른 라운드를 플레이하거나 다른 게임 모드로 전환할 수 있습니다.
세션 멤버
세션 멤버는 세션의 일부인 XBOX services 플레이어입니다.아비터(Arbiter)
아비터는 게임의 세션 상태를 관리하는 콘솔 또는 디바이스입니다. 예를 들어 아비터는 더 많은 플레이어를 찾기 위해 매치메이킹에 게임 세션을 광고하는 역할을 담당합니다. 아비터는 타이틀이 설정합니다. 아비터와 게임 호스트는 동일할 수 있지만, 반드시 그럴 필요는 없습니다.세션 호스트
세션 호스트는 호스트 기반 P2P 네트워크 아키텍처에 기반한 타이틀에서 게임 플레이 시뮬레이션을 실행하는 콘솔 또는 디바이스입니다. 이 콘솔 또는 디바이스는 일반적으로 아비터와 동일하지만, 반드시 그럴 필요는 없습니다.MPSD(Multiplayer Session Directory)
XBOX services 멀티플레이어 서비스는 XBOX services 클라우드에서 작동합니다. 이 서비스는 여러 클라이언트에 걸쳐 게임의 멀티플레이어 시스템 메타데이터를 중앙 집중화합니다. 이 메타데이터를 추적하는 시스템을 *MPSD(Multiplayer Session Directory)*라고 합니다. MPSD는 활성 게임 세션의 라이브러리로 생각할 수 있습니다. 게임에서 타이틀과 관련된 활성 세션을 추가, 검색, 수정 또는 제거할 수 있습니다. MPSD는 또한 세션 상태를 관리하고 필요에 따라 세션을 업데이트합니다. MPSD를 사용하면 타이틀에서 플레이어 그룹을 연결하는 데 필요한 기본 정보를 공유할 수 있습니다. 세션 기능이 동기화되고 일관성이 유지되도록 보장합니다. MPSD는 초대 보내기/수락 및 게이머카드를 통한 참여에서 셸 및 XBOX One(또는 그 이상) 콘솔 OS와 조율됩니다.세션 핸들
세션은 MPSD에서 다음의 데이터 조각을 조합하여 고유하게 식별됩니다.- 타이틀의 서비스 구성 식별자(SCID)
- 세션 생성에 사용된 세션 템플릿의 이름
- 세션의 이름
