대상 세션 초기화 및 QoS
이 항목에서는 타이틀이 충분한 플레이어가 참가했는지 확인하고 대상 세션에 일치할 때 연결할 수 있는지를 설명합니다.
SmartMatch 매치 메이킹을 통해 플레이어 그룹이 대상 세션에 매치됩니다. 타이틀은 플레이어들이 필요 시 서로 성공적으로 연결할 수 있도록 충분한 수의 플레이어가 참가했는지 확인하는 단계를 밟아야 합니다. 이 프로세스를 대상 세션 초기화라고 합니다.
피어 투 피어 네트워크 토폴로지를 사용하는 게임의 경우 대상 세션 초기화의 중요한 측면은 서비스 품질 (QoS) 측정 및 평가입니다. 관련 작업은 다음과 같습니다.
- Xbox One (또는 그 이상) 본체 간 또는 본체와 서버 간 대기 시간 및 대역폭 측정
- 노드 간의 네트워크 연결이 양호한 지 확인하기 위한 결과 측정 평가
다음 순서도는 대상 세션과 QoS 운영 초기화를 구현하는 메서드를 보여줍니다.
관리되는 초기화
MPSD(멀티플레이어 세션 디렉터리)는 관리되는 초기화라는 기능을 지원하여 이를 통해 특정 세션에 참여하는 클라이언트들에 걸쳐 대상 세션 초기화 프로세스를 조정합니다. MPSD는 자동으로 세션에 대한 초기화 단계와 관련 시간 제한을 추적합니다. MPSD는 또한 필요한 경우 클라이언트 간의 연결을 평가합니다. 관리되는 초기화는 XblMultiplayerInitializationStage 열거형으로 표시됩니다.
참고 항목
타이틀이 매치메이킹을 SmartMatch MPSD 관리 초기화 기능을 활용하는 것이 좋습니다.
관리되는 초기화의 에피소드 및 단계
대상 세션은 매치 메이킹이 세션에 새 플레이어를 추가할 때마다 관리되는 초기화를 거칩니다. SmartMatch는 사용자 상태가 Reserved인 세션 멤버를 추가하는데, 이는 각 멤버가 슬롯을 하나씩 차지하지만 아직 세션에 참가하지는 않았다는 뜻입니다. 새 플레이어들로 구성된 각 그룹은 새 초기화 에피소드를 트리거합니다.
초기화가 완료되면 각 플레이어가 프로세스를 성공하거나 실패합니다. 초기화에 성공하는 플레이어는 대상 세션을 사용하여 플레이할 수 있습니다. 실패하는 플레이어는 매치 메이킹에 다시 제출되어 다른 세션으로 매칭되어야 합니다.
세션이 preserveSession
매개 변수를 Always
(으)로 설정하여 매치 메이킹에 제출되는 경우, MPSD가 제대로 설정되었다고 가정하기 때문에 세션의 기존 멤버는 초기화를 거치지 않습니다.
각 관리되는 초기화 에피소드는 다음 단계로 구성됩니다.
-
가입: 세션 구성원은 자신의 사용자 상태를
Reserved
에서Active
(으)로 이동시키기 위해 세션에 기록합니다. 보안 장치 주소와 같은 기본 데이터를 업로드할 수 있습니다. - 측정 -- 피어 기반 토폴로지의 경우, 세션 멤버들이 서로 QoS를 측정하고 그 결과를 세션에 업로드합니다.
- 평가 -- MPSD가 앞의 두 단계의 결과를 평가하여 세션 또는 멤버들이 성공적으로 초기화되었는지 판단합니다.
타이틀 코드가 세션에서 작동하여 각 플레이어(그리고 세션)를 참가 단계와 측정 단계로 진행하게 합니다. 그리고 나서 타이틀은 평가 단계가 성공하거나 실패한 후 플레이를 시작하거나 다시 매치 메이킹으로 돌아갈 것입니다.
대상 세션의 초기화 구성
타이틀은 초기화되는 대상 세션의 상수를 사용하여 관리되는 초기화 프로세스를 구성할 수 있습니다. 이러한 상수는 버전 107의 세션 템플릿에서 상수/시스템에 설정됩니다. 이 템플릿 버전을 권장합니다.
다음 두 가지 유형의 구성 설정을 지정할 수 있습니다.
관리되는 초기화 프로세스를 전체적으로 구성하는 설정
QoS 요구 사항을 구성하는 설정
일반적인 타이틀 시나리오에 대한 세션 템플릿의 예시는 멀티플레이어 세션 템플릿 및 멀티플레이어 세션 디렉터리 개요를 참조하세요.
참고 사항
대상 세션 초기화 구성에서 QoS 요건을 정의하지 않으면 초기화 시 측정 단계를 건너뜁니다.
관리되는 초기화의 전체를 구성
관리되는 초기화를 전반적으로 제어하려면 다음 필드를 설정하세요.
관리되는 초기화를 제어하기 위해 설정할 필드는 /constants/system/memberInitialization
개체의 일부입니다.
joinTimeout
: 초기화 에피소드가 시작된 후 MPSD가 각 멤버가 참가할 때까지 얼마나 오래 대기할지를 지정합니다. 기본값은 10초입니다.measurementTimeout
: 측정 단계가 시작된 후 MPSD가 각 멤버가 QoS 측정 결과를 업로드할 때까지 얼마나 오래 대기할지를 지정합니다. 기본값은 30,000초입니다.membersNeededToStart
: 첫 번째 초기화 에피소드가 성공하려면 몇 명의 멤버가 초기화에 성공해야 하는지를 지정합니다. 기본값은 1입니다.
참고 항목
이 임계값이 충족되지 않으면 모든 멤버가 초기화에 실패합니다.
QoS 요구 사항 구성
QoS는 타이틀이 피어 투 피어나 피어 투 호스트 토폴로지를 사용하는 경우에만 초기화 시 필요합니다. 각 토폴로지는 /constants/system/에 있는 토폴로지별 상수에 매핑됩니다.
피어 투 피어 토폴로지에서 QoS 요건 구성하기
참고 항목
타이틀이 피어 투 피어 토폴로지에서 QoS 요건 설정을 하는 일은 드뭅니다. 이 설정은 구속력이 매우 커서 NAT(네트워크 주소 변환)가 엄격한 플레이어들의 경우 문제가 발생합니다.
peerToPeerRequirements
개체에서 피어 투 피어 토폴로지 QoS 요구 사항을 설정할 수 있습니다.
모든 클라이언트가 다른 모든 클라이언트와 연결할 수 있어야 합니다.
peerToPeerRequirements
개체에는 다음과 같은 관련 필드가 있습니다.
latencyMaximum
: 두 클라이언트 사이의 최대 지연 시간을 지정합니다.bandwidthMinimum
: 두 클라이언트 사이의 최소 대역폭을 지정합니다.
피어 투 호스트 토폴로지에서 QoS 요건 구성하기
peerToHostRequirements
개체에서 피어 투 호스트 토폴로지 QoS 요구 사항을 설정할 수 있습니다.
모든 클라이언트는 단일 공통 호스트에 연결할 수 있어야 합니다.
이 개체가 구성되고 초기화가 성공하면 MPSD는 호스트 후보로 알려진 잠재적인 호스트인 클라이언트의 초기 목록을 만듭니다.
다음 필드를 설정하세요.
latencyMaximum
: 각 피어와 호스트 사이의 최대 대기 시간을 지정합니다.bandwidthDownMinimum
: 각 피어와 호스트 간의 최소 다운 스트림 대역폭을 지정합니다.bandwidthUpMinimum
: 각 피어와 호스트 간의 최소 업스트림 대역폭을 지정합니다.hostSelectionMetric
: 호스트를 선택하는 데 사용된 메트릭을 지정합니다.