세션 템플릿 상수
이 항목에서는 세션 템플릿 버전 107을 기준으로 멀티 플레이어 세션 템플릿에서 미리 정의된 요소에 대해 설명합니다. 이러한 요소는 멀티 플레이어 세션에 대한 설정을 정의합니다.
목차
- 시스템
- capabilities
- 메트릭
- memberInitialization
- peerToPeerRequirements
- peerToHostRequirements
- measurementServerAddresses
- cloudComputePackage(사용되지 않음)
- 중재(사용되지 않음)
- broadcastViewerTitleIds
- ownershipPolicies
시스템
시스템 상수 | 설명 | 유효한 값 | 기본값 |
---|---|---|---|
version |
세션 템플릿의 버전입니다. | 1 - n | none |
maxMembersCount |
멀티 플레이어 활동에 지원되는 세션 멤버 슬롯의 총 수입니다. | 일반 세션의 경우 1 - 100, 대규모 세션의 경우 101 | 100 |
visibility |
다른 사용자가 세션을 보거나 세션에 참가할 수 있는지를 표시하는 세션의 가시성 상태입니다. | "private", "visible", "open" | "open" |
inviteProtocol |
이 상수를 "game"으로 설정하면 초대받은 사람이 세션에 초대될 때 알림을 받을 수 있습니다. | "game", "tournamentgame", "chat", "gameparty" | none |
reservedRemovalTimeout |
멤버 예약에 대한 제한 시간(밀리초)입니다. 값이 0이면 즉각적인 시간 초과를 나타냅니다. null 값은 무한으로 간주됩니다. |
0 - n, null |
30000 |
inactiveRemovalTimeout |
멤버가 비활성 상태로 간주될 때까지의 시간 초과(밀리초)입니다. 값이 0이면 즉각적인 시간 초과를 나타냅니다. null 값은 무한으로 간주됩니다. |
0 - n, null |
0 |
readyRemovalTimeout |
멤버가 준비 상태로 간주될 때까지의 시간 초과(밀리초)입니다. 값이 0이면 즉각적인 시간 초과를 나타냅니다. null 값은 무한으로 간주됩니다. |
0 - n, null |
180000 |
sessionEmptyTimeout |
빈 세션의 시간 초과(밀리초)입니다. 값이 0이면 즉각적인 시간 초과를 나타냅니다. null 값은 무한으로 간주됩니다. |
0 - n, null |
0 |
capabilities |
세션의 기능을 지정합니다. 자세한 내용은 이 항목의 후반부에 있는 기능 섹션을 참조하세요. | 적용할 수 없음 | 적용할 수 없음 |
metrics |
세션 멤버들이 만족해야 하는 지연 시간이나 대역폭 속도 등 타이틀이 정의하는 QoS(서비스 품질) 요구 사항 집합을 지정합니다. 자세한 내용은 이 항목의 후반부에 있는 메트릭 섹션을 참조하세요. | 적용할 수 없음 | 적용할 수 없음 |
memberInitialization |
세션에 새 멤버가 참가할 때 시행되는 시간 초과 및 초기화 요건을 지정합니다. 자세한 내용은 이 항목의 후반부에 있는 memberInitialization 섹션을 참조하세요. |
적용할 수 없음 | 적용할 수 없음 |
peerToPeerRequirements |
피어 투 피어 메시 연결의 네트워크 QoS 요구 사항을 지정합니다. 자세한 내용은 이 항목의 후반부에 있는 peerToPeerRequirements 섹션을 참조하세요. | 적용할 수 없음 | 적용할 수 없음 |
peerToHostRequirements |
피어 투 호스트 연결에 대한 네트워크 QoS 요구 사항을 지정합니다. 자세한 내용은 이 항목의 후반부에 있는 peerToHostRequirements 섹션을 참조하세요. | 적용할 수 없음 | 적용할 수 없음 |
measurementServerAddresses |
QoS 측정값을 결정하는 데 사용되는 잠재적 데이터 센터들의 컬렉션을 지정합니다. 자세한 내용은 이 항목의 후반부에 있는 measurementServerAddresses 섹션을 참조하세요. | 적용할 수 없음 | 적용할 수 없음 |
cloudComputePackage (더 이상 사용되지 않음) |
할당할 Xbox Live Compute 클라우드 패키지의 속성을 지정합니다. 자세한 내용은 이 항목의 후반부에 있는 cloudComputePackage 섹션을 참조하세요. | 적용할 수 없음 | 적용할 수 없음 |
arbitration (더 이상 사용되지 않음) |
멤버들이 토너먼트에서 중재 결과를 제출하는 데 있어서 시간 초과를 지정합니다. 자세한 내용은 이 항목의 후반부에 있는 arbitration(사용되지 않음) 섹션을 참조하세요. | 적용할 수 없음 | 적용할 수 없음 |
broadcastViewerTitleIds |
세션에 대한 읽기 액세스 권한이 항상 있어야 하는 타이틀 ID의 목록을 지정합니다. 자세한 내용은 이 항목의 후반부에 있는 broadcastViewerTitleIds 섹션을 참조하세요. | 적용할 수 없음 | 적용할 수 없음 |
ownershipPolicies |
세션 소유권에 관한 정책을 지정합니다. 자세한 내용은 이 항목의 후반부에 있는 ownershipPolicies 섹션을 참조하세요. | 적용할 수 없음 | 적용할 수 없음 |
capabilities
기능은 세션 템플릿에는 선택적으로 설정하는 부울 값입니다.
기능이 필요하지 않은 경우 타이틀에 동적 세션 기능이 필요한 경우가 아니면 세션 생성 시 기능이 지정되지 않도록 템플릿에 빈 capabilities
속성을 설정해야 합니다.
기능 | 설명 | 유효한 값 | 기본값 |
---|---|---|---|
connectivity |
세션이 피어 연결을 지원하는지 여부를 나타냅니다. 이 값이 false 이면 세션은 메트릭을 사용하도록 설정할 수 없으며 세션 멤버는 secureDeviceAddress 을(를) 설정할 수 없습니다. 이 기능은 대규모 세션에 설정할 수 없습니다. |
true , false |
false |
suppressPresenceActivityCheck |
true 인 경우, 현재 상태 확인을 해제합니다. |
true , false |
false |
gameplay |
로비 또는 매치 메이킹과 같은 설정/메뉴 시간과 반대로 세션이 실제 게임 플레이를 나타내는지 여부를 나타냅니다.
true 이면 세션이 게임 플레이 모드에 있습니다. |
true , false |
false |
large |
세션이 대규모 세션(멤버 100명 초과)인지 여부를 나타냅니다. 대규모 세션은 멀티 플레이어 관리자의 사용을 지원하지 않습니다. |
true , false |
false |
connectionRequiredForActiveMembers |
멤버를 활성화하기 위해 연결이 필요한지 여부를 나타냅니다. |
true , false |
false |
cloudCompute (더 이상 사용되지 않음) |
세션을 대신해서 클라우드 컴퓨팅 인스턴스를 할당하도록 클라이언트가 요청할 수 있습니다. Xbox Live Compute를 더 이상 서비스로 사용할 수 없으므로 사용되지 않습니다. |
true , false |
false |
autoPopulateServerCandidates |
serverMeasurements 에서 serverConnectionStringCandidates 을(를) 자동으로 계산하고 설정합니다. 이 기능은 대규모 세션에 설정할 수 없습니다. |
true , false |
false |
userAuthorizationStyle |
세션이 강력한 타이틀 ID 없이 플랫폼의 호출을 지원하는지 여부를 나타냅니다. 이 기능은 대규모 세션에 설정할 수 없습니다.userAuthorizationStyle 기능을 true (으)로 설정하면 readRestriction 및 joinRestriction 에 대한 세션 기본값이 none 대신 local (으)로 설정됩니다. 즉, 타이틀이 게임 세션에 참가하기 위해서는 검색 핸들 또는 전송 핸들을 사용해야 합니다. |
true , false |
false |
crossPlay |
세션에서 Windows PC, Xbox One 또는 Xbox Series 장치 사이의 크로스 플레이를 지원함을 의미합니다. |
true , false |
true |
broadcast |
세션이 브로드캐스트를 표시한다는 것을 나타냅니다. 세션의 이름이 브로드캐스터의 xuid여야 합니다.
large 기능이 필요합니다. |
true , false |
false |
team |
세션이 토너먼트 팀을 표시한다는 것을 나타냅니다.
large 또는 gameplay 세션에는 이 기능을 설정할 수 없습니다. |
true , false |
false |
arbitration |
arbitration 서버 항목을 추가하는 서비스 사용자가 세션을 생성해야 한다는 것을 나타냅니다.
gameplay 이(가) 필요하지만 large 세션에 대해 설정할 수 없습니다. |
true , false |
false |
hasOwners |
세션에 소유자인 특정 멤버들에 기초한 보안 정책이 있다는 것을 나타냅니다. |
true , false |
false |
searchable |
세션이 검색 핸들의 대상 세션이 될 수 있다는 것을 나타냅니다.
userAuthorizationStyle 및 searchable 기능이 설정된 경우 hasOwners 도 설정해야 합니다. |
true , false |
false |
예: 기능
"capabilities": {
"connectivity": true,
"suppressPresenceActivityCheck": true,
"gameplay": true,
"large": true,
"connectionRequiredForActiveMembers": true,
"cloudCompute": true,
"autoPopulateServerCandidates": true,
"userAuthorizationStyle": true,
"crossPlay": true,
"broadcast": true,
"team": true,
"arbitration": true,
"hasOwners": true,
"searchable": true
},
메트릭
metrics
속성을 지정하지 않으면 QoS 요건을 충족하는 데 필요한 값으로 기본 설정됩니다.
metrics
속성을 지정할 경우, 그 값이 QoS 요건을 충분히 만족시켜야 합니다.
이 요소는 세션에 connectivity
기능이 설정되었을 경우에만 유효합니다.
메트릭 | 설명 | 유효한 값 | 기본값 |
---|---|---|---|
latency |
latencyMaximum 이(가) 세션 템플릿에 지정되었는지 여부를 나타냅니다. |
true , false |
이 설명을 참조하세요. |
bandwidthDown |
bandwidthDownMinimum 이(가) 세션 템플릿에 지정되었는지 여부를 나타냅니다. |
true , false |
이 설명을 참조하세요. |
bandwidthUp |
bandwidthUpMinimum 이(가) 세션 템플릿에 지정되었는지 여부를 나타냅니다. |
true , false |
이 설명을 참조하세요. |
custom |
세션 템플릿에 사용자 지정 메트릭이 지정되었는지 여부를 나타냅니다. |
true , false |
이 설명을 참조하세요. |
예: 메트릭
"metrics": {
"latency": true,
"bandwidthDown": true,
"bandwidthUp": true,
"custom": true
},
memberInitialization
memberInitialization
속성이 설정된 경우 세션은 클라이언트 시스템 또는 타이틀이 세션 생성 후 또는 새 멤버가 세션에 참여할 때 초기화를 수행할 것으로 예상합니다.
시간 초과 및 초기화 단계는 QoS 측정을 포함하여(메트릭이 설정된 경우) 세션에서 자동으로 추적됩니다.
이러한 시간 제한은 initializationEpisode
이(가) 설정된 멤버에 대해 세션의 예약 및 준비 시간 초과를 재정의합니다.
대규모 세션에서는 memberInitialization
을(를) 지정할 수 없습니다.
요소 | 설명 | 유효한 값 | 기본값 |
---|---|---|---|
joinTimeout |
멤버가 세션에 참가해야 하는 밀리초 수를 나타냅니다. 참가에 실패하는 사용자의 예약은 삭제됩니다. 참고: 기본 시간은 일반 타이틀을 실행하는 데 있어서 충분하지만 MPSD(멀티 플레이어 세션 디렉터리) 흐름 진행 시 타이틀에 디버깅이 수행될 경우 참가 시간 초과가 발생할 수 있습니다. 디버깅하는 동안 세션의 이 기본값을 재정의하고 늘리세요. |
0 - n | 10000 |
measurementTimeout |
세션 멤버가 측정값을 업로드해야 하는 밀리초 수를 나타냅니다. 측정값을 업로드하지 못하는 멤버의 경우 "timeout"이라는 실패 이유가 표시됩니다. | 0 - n | 30000 |
evaluationTimeout |
외부 평가자가 측정값을 업로드해야 하는 밀리초 수를 나타냅니다. | 0 - n | 5000 |
externalEvaluation |
true 인 경우, 타이틀 코드가 QoS 측정값에 기초하여 누가 참가하는지를 평가한다는 것을 나타냅니다. 멀티 플레이어 서비스는 QoS 논리를 수행하지 않으며 타이틀은 초기화 단계를 실행해야 합니다. 일반적으로 타이틀에서는 이것이 필요하지 않습니다. |
true , false |
false |
membersNeededToStart |
세션을 시작하기 위해 필요한 멤버의 수로, 초기화 에피소드 0에만 해당됩니다. | 1 - maxMembersCount |
1 |
예: memberInitialization
"memberInitialization": {
"joinTimeout": 10000,
"measurementTimeout": 30000,
"evaluationTimeout": 5000,
"externalEvaluation": false,
"membersNeededToStart": 1
},
peerToPeerRequirements
피어 투 피어 네트워크 요건 | 설명 | 기본값 |
---|---|---|
latencyMaximum |
두 클라이언트 사이의 최대 지연 시간(밀리초)입니다. | 250 |
bandwidthMinimum |
두 클라이언트 사이의 최소 대역폭(초당 킬로비트)입니다. | 10000 |
예: peerToPeerRequirements
"peerToPeerRequirements": {
"latencyMaximum": 250,
"bandwidthMinimum": 10000
},
peerToHostRequirements
피어 투 호스트 네트워크 요건 | 설명 | 유효한 값 | 기본값 |
---|---|---|---|
latencyMaximum |
피어 투 호스트 연결에 대한 최대 지연 시간(밀리초)입니다. | 250 | |
bandwidthDownMinimum |
호스트에서 피어로 전송되는 정보에 대한 최소 대역폭(초당 킬로비트)입니다. | 100000 | |
bandwidthUpMinimum |
피어에서 호스트로 전송되는 정보에 대한 최소 대역폭(초당 킬로비트)입니다. | 1000 | |
hostSelectionMetric |
호스트 선택에 사용되는 메트릭을 나타냅니다. | "bandwidthup", "bandwidthdown", "bandwidth", "latency" | "latency" |
예: peerToHostRequirements
"peerToHostRequirements": {
"latencyMaximum": 250,
"bandwidthDownMinimum": 100000,
"bandwidthUpMinimum": 1000,
"hostSelectionMetric": "bandwidthup"
},
measurementServerAddresses
평가해야 하는 잠재적 서버 연결 문자열 집합입니다.
연결 문자열은 소문자여야 합니다.
대규모 세션에서는 measurementServerAddresses
을(를) 지정할 수 없습니다.
연결 문자열은 다음과 같은 형식으로 정의됩니다.
"<server name>": { "secureDeviceAddress": <device address> }
여기서 장치 주소는 서버의 base-64로 인코딩된 보안 장치 주소입니다.
예: measurementServerAddresses
"measurementServerAddresses": {
"server farm a": {
"secureDeviceAddress": "r5Y="
},
"datacenter b": {
"secureDeviceAddress": "rwY="
}
},
cloudComputePackage(사용되지 않음)
이 속성은 Xbox Live Compute 서비스를 더 이상 사용할 수 없고 중단되었으므로 더 이상 사용되지 않습니다. 할당할 클라우드 컴퓨팅 패키지의 속성을 지정합니다.
cloudCompute
기능이 설정되어 있어야 합니다.
속성 | 설명 |
---|---|
titleId |
할당할 클라우드 컴퓨팅 패키지의 타이틀 ID를 나타냅니다. |
gsiSet |
할당할 클라우드 컴퓨팅 패키지의 GSI(글로벌 보안 인프라) 집합을 나타냅니다. |
variant |
할당할 클라우드 컴퓨팅 패키지의 변형을 나타냅니다. |
예: cloudComputePackage
"cloudComputePackage": {
"titleId": "4567",
"gsiSet": "128ce92a-45d0-4319-8a7e-bd8e940114ec",
"variant": "30ebca60-d96e-4629-930b-6957aa6bfbfa"
},
중재(사용되지 않음)
이 속성은 Xbox Live Compute 서비스를 더 이상 사용할 수 없고 중단되었으므로 더 이상 사용되지 않습니다. 중재 프로세스에 대한 시간 초과를 지정합니다.
arbitration
기능이 설정되어 있어야 합니다.
중재 시작 시간은 세션의 /servers/arbitration/constants/system/startTime 요소에서 정의됩니다.
시간 제한 | 설명 | 유효한 값 | 기본값 |
---|---|---|---|
forfeitTimeout |
중재 시작 시간에서의 시간(밀리초)을 나타냅니다. | 0 - n | 60000 |
arbitrationTimeout |
중재 시작 시간을 기준으로 한 시간(밀리초)으로, 중재 결과가 시간 초과되는 시간입니다. 이 값이 forfeitTimeout 값보다 작으면 안 됩니다. |
0 - n | 300000 |
예: arbitration
"arbitration": {
"forfeitTimeout": 60000,
"arbitrationTimeout": 300000
},
broadcastViewerTitleIds
브로드캐스트 세션에 대한 읽기 액세스 권한이 항상 있어야 하는 타이틀들의 타이틀 ID 배열을 지정합니다.
예: broadcastViewerTitleIds
"broadcastViewerTitleIds" : ["34567", "8910"],
ownershipPolicies
마지막 소유자가 세션에서 나갈 때 세션을 어떻게 처리할지 지정합니다.
hasOwners
기능을 설정해야 합니다.
소유권 정책 | 설명 | 유효한 값 | 기본값 |
---|---|---|---|
migration |
마지막 소유자가 세션을 떠날 때 발생하는 상황을 나타냅니다. 이 마이그레이션 정책을 "endsession"으로 설정하면 세션이 종료됩니다. 마이그레이션 정책을 "oldest"로 설정하면 가장 먼저 참가한 멤버가 세션의 새 소유자가 됩니다. | "oldest", "endsession" | "endsession" |
allowNonOwnerInviteHandles |
소유자가 아닌 세션 멤버에 대한 초대 동작을 나타냅니다. 기본적으로 소유자가 아닌 사람은 세션에 대한 초대를 보낼 수 없습니다. |
true , false |
false |
nonOwnerModifiableSystemProperties |
비소유자가 hasOwners 기능이 true (으)로 설정된 세션에서 수정할 수 있는 시스템 속성 이름 목록입니다. |
시스템 속성 이름 목록 | 적용할 수 없음 |
예: ownershipPolicies
"ownershipPolicies": {
"migration": "oldest",
"allowNonOwnerInviteHandles": true,
"nonOwnerModifiableSystemProperties": ["joinRestriction", "closed"]
}